Обработка заполнения: открыть документ, если документ основания уже существует

1. Arkadag 06.12.20 18:06 Сейчас в теме
Приветствую, Форумчане!
1с8.3.12, самопис, УФ

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


Из документа "КомплектацияЗаказов" идет программное заполнение документа "ПеремещениеПаллет"
В документе "КомплектацияЗаказов" есть реквизит "ПеремещенияПаллет" (документ основание) типа признака, что перемещение уже создано.

Пытаюсь сделать следующее, если в "КомплектацияЗаказов" заполнен реквизит "ПеремещенияПаллет", то не создавать новое перемещение, а открыть существующий документ.

Подскажите как правильно это сделать. Перепробовал несколько вариантов, но выдает различные ошибки.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. DanDy 57 07.12.20 12:49 Сейчас в теме
(1) А зачем вам получать объект? Достаточно же ссылку на документ поместить в "Ключ" и всё.
2. spec8s 850 06.12.20 18:30 Сейчас в теме
У вас не получится открыть форму документа на сервере, вместо этого нужно:
1. Создать свою команду для документа КомплектацияЗаказов, тип параметра команды ДокументСсылка.КомплектацияЗаказов, назвать ее допустим "Создать перемещение паллет"
2. В модуле команды первым делом проверять заполнен ли реквизит ПеремещенияПаллет у документа КомплектацияЗаказов. Если заполнен открывать форму документа перемещения палллет с параметром Ключ=ссылка на ПеремещенияПаллет, иначе открывать форму с параметром Основание=ссылка на Комплектация заказов
3. Из формы списка, объекта комплектация заказов убрать видимость для сгенированной платформой команды создать на основании для перемещения паллет
3. Art39_ 07.12.20 01:18 Сейчас в теме
Эту проверку можно перенести в событие формы "ПриОткрытии".
То есть на этапе заполнения в модуле объекта мы сохраняем документ основание в реквизите документа.
А в процедуре "ПриОткрытии" для условия "Объект.Ссылка.Пустая()" (новый объект) уже выполняем анализ документа основания и его открытие при необходимости.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот