Как открыть не типовую форму (УФ) #686168


#0 by said52
Добрый день, есть некий бизнес-процесс (конфа самописная) в нем задача, в зависимости от этапа выполнения БП нужно создавать необходимые задачи, для каждой задачи я прорисовал свою форму, пока их 3. Вот собственно и проблема в том что никак не могу добиться того что бы открывать нужную форму для нужной задачи. Использую метод ПолучитьФорму("Задача.Задача.Форма.ФормаТестированияПАТ") но он возвращает мне пустую форму, думал в пустую форму присвоить основной реквизит из Основной формы (которая задана по умолчанию), но выдает ошибку. Пытался и крутил разные комбинации в событиях ПриСозданииНаСервере и ПриОткрытии. Пока без результатно. Подскажите, как правильно реализовать ? Заранее большое спасибо!
#1 by said52
Пробовал писать так. &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) КонецПроцедуры Если пишу через получение объекта то переменная Фомра = Неопределенно. Если писать так: &НаСервере Если Объект.ТестироватьВПАТ Тогда     ИначеЕсли Объект.ВернутьНаДоработку Тогда Ошибка "Процедура или функция с указанным именем не определена"
#2 by Euguln
Обычное приложение?
#3 by banco
посмотри обработчик ОбработкаПолученияФормы
#4 by Euguln
Что в СП непонятного написано? ПолучитьФорму (GetForm) Синтаксис: Тип: Структура. Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры. Доступность: Тонкий клиент, веб-клиент, толстый клиент.
#5 by said52
Еще пробую писать уже на клиенте. &НаКлиенте Процедура ПриОткрытии(Отказ) КонецПроцедуры Идея присвоить основной реквизит другой форме, пишет ошибку: "Нельзя изменять поле, содержащее объект данных формы" Еще были мысли получить нужную пустую форму, и потом обойти реквизиты формы и заполнить их, На сервере пишу стандартная обработка = Ложь, но всеравно открывает мне 2 формы одну основную и ту которую получил и заполнил реквизиты.
#6 by Dethmont
Ключевое слово - <Параметры>
#7 by said52
Приложение управляемое. СП читал, но не могу понять что имеется в виду под параметрами, что там должно быть, можешь написать?
#8 by Euguln
Что непонятного в этой конструкции: А?
#9 by said52
Если параметр необязательный, для чего он используется, имя ключа должно равнятся какому реквизиту формы, или чеу оно должно быть равно? Какое значение должно быть в "Поставщик" ?
#10 by Euguln
#11 by said52
За подсказку спасибо а ответ на вопрос для чего структура я так и не увидел.
#12 by Euguln
OMG Чтобы параметры в форму передавать ... ть.
#13 by said52
КонецЕсли что еще можно попробовать?
#14 by olegves
посмотри, как в документообороте реализовано у 1С
#15 by olegves
+ а вообще идея такая: 1. передаешь нужные параметры в команду открытия формы 2. в самой форме в процедуре ПриСозданииНаСервере обрабатываешь эти параметры и заполняешь форму, как тебе надо
#16 by said52
Попробую ответить, может еще кому будет полезно. Если надо открыть не основную форму с уже заполненными данными пишите:           ОткрытьФорму("Задача.Задача.Форма.ФормаТестированияПАТ", Новый Структура("Ключ", Объект.Ссылка)); где ФормаТестированияПАТ - имя не основной формы, В структуре мы передаем ссылку на тот элемент который хотим открыть, еще хотел обратить внимание что это конструкция для существующей формы. Теперь возникла проблема, открываются сразу 2 формы. Основная и дополнительная. Пробовал писать: &НаСервере КонецПроцедуры но ничего не помогло. Как избавиться от открытия основной формы?
#17 by olegves
получить форму не используй - вместо этого - Открыть форму. Когда ты получаешь форму, у тебя еще до получения выполняется процедура ПриСозданииНаСервере, поэтому в полученной форме трудно что-то менять
#18 by grayshadow
йоптель, так же и убить можно:)))
#19 by grayshadow
а по теме - имеет место глобальное непонимание: у бизнес-процесса в конфигураторе указывается ОДНА задача, каким образом ТС собрался вязать 3?
#20 by said52
Задача то одна, но в определенных местах выполнения БП нужно показывать форму только с определенными реквизитами. А что не так с: ОбъектЗадача = Объект.Ссылка.ПолучитьОбъект; ?? )))))))
#21 by said52
кажись дошло чего открывается 2 формы сразу, надо писать проверку в событии "Выбор" формы списка задач, там анализировать какой реквизит заполнен и какую форму надо открывать, а не в событии при открытии основной формы. Как проверю - отпишусь.
#22 by grayshadow
ОбъектЗадача = Объект.Ссылка.ПолучитьОбъект - получает НОВЫЙ объект, ни фига не тождественный ОбъектЗадача
#23 by grayshadow
* то есть не тождественный Объекту
#24 by grayshadow
так да, если вы из ПрисозданииНасервере звали другую форму, то откроется и вызванная, и основная
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С