Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как открыть не основную форму в 1с (УФ)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
Said
Добрый день, есть некий бизнес-процесс (конфа самописная) в нем задача, в зависимости от этапа выполнения БП нужно создавать необходимые задачи, для каждой задачи я прорисовал свою форму, пока их 3. Вот собственно и проблема в том что никак не могу добиться того что бы открывать нужную форму для нужной задачи.
Использую метод
ПолучитьФорму("Задача.Задача.Форма.ФормаТестированияПАТ")
но он возвращает мне пустую форму, думал в пустую форму присвоить основной реквизит из Основной формы (которая задана по умолчанию), но выдает ошибку. Пытался и крутил разные комбинации в событиях ПриСозданииНаСервере и ПриОткрытии. Пока без результатно.
Подскажите, как правильно реализовать ?
Заранее большое спасибо!
logist
Вы когда форму создавали, надо было выбирать Форма задачи, а не Произвольная форма.
Said
Цитата(logist @ 26.10.13, 22:09) необходимо зарегистрироваться для просмотра ссылки
Вы когда форму создавали, надо было выбирать Форма задачи, а не Произвольная форма.

Пробовал писать как Вы говорите.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Объект.ТестироватьВПАТ Тогда
        ОбъектЗадача = Объект.Ссылка.ПолучитьОбъект();
        Форма = ОбъектЗадача.ПолучитьФорму("Задача.Задача.Форма.ФормаЗадачи");
    ИначеЕсли Объект.ВернутьНаДоработку Тогда
        //Форма = Задачи.Задача.ПолучитьФорму("ФормаЗадачи");
        //Форма.Открыть();
    Иначе
        //Форма = Задачи.Задача.ПолучитьФорму("ФормаРелиз");
        //Форма.Открыть();
    КонецЕсли
КонецПроцедуры

Если писать так:
Если Объект.ТестироватьВПАТ Тогда 
        Форма = ПолучитьФорму("Задача.Задача.Форма.ФормаЗадачи");
    ИначеЕсли Объект.ВернутьНаДоработку Тогда

Ошибка "Процедура или функция с указанным именем не определена"
Если пишу через получение объекта то переменная Фомра = Неопределенно.
Уж как то закручено тут с УФ формами. Что делаю не так? Подскажите.

Еще пробую писать уже на клиенте.
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Если Объект.ТестироватьВПАТ Тогда
        Форма = ПолучитьФорму("Задача.Задача.Форма.ФормаТестированияПАТ");
        Форма.Объект = ЭтаФорма.Объект;
        Форма.Открыть();
    ИначеЕсли Объект.ВернутьНаДоработку Тогда
        //Форма = Задачи.Задача.ПолучитьФорму("ФормаЗадачи");
        //Форма.Открыть();
    Иначе
        //Форма = Задачи.Задача.ПолучитьФорму("ФормаРелиз");
        //Форма.Открыть();
    КонецЕсли
КонецПроцедуры

Идея присвоить основной реквизит другой форме, пишет ошибку: "Нельзя изменять поле, содержащее объект данных формы"
Said
Отвечу сам себе: Если надо открыть не основную форму с уже заполненными данными
ОткрытьФорму("Задача.Задача.Форма.ФормаТестированияПАТ", Новый Структура("Ключ", Объект.Ссылка));

где ФормаТестированияПАТ - имя не основной формы, В структуре мы передаем ссылку на тот элемент который хотим открыть, еще хотел обратить внимание что это конструкция для существующей формы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.