Не заполняется поле ввода формы

1. Scar_rus 14.07.23 13:47 Сейчас в теме
Есть пф СП-32 (не уверен, что вы с ней знакомы), которая являет собой ТТН и используется в документе забоя скота. Попросили присоединить эту пф еще и к РТУ.

У данной пф есть, если так можно сказать, особенность. Перед ее печатью открывается форма с автоматически заполненной информацией по грузоперевозке.

Прикручивая код для печати РТУ решил отладить запуск печати, чтоб посмотреть корректно ли идет заполнение этой самой формы с данными о перевозке. И код не отработал, потому что Документ был не определен. Стал разбираться

Код который хотел отладить и его вызов (находятся в форме с данными о грузоперевозке)

Процедура ПриОткрытии()
	
	ЗаполнитьДанныеПечати();
	
КонецПроцедуры

Процедура ЗаполнитьДанныеПечати()
	
	Если ТипЗнч(Документ) = Тип("ДокументСсылка.МК_ПоставкаИУбойСкота") Тогда
		МаркаАвтомобиля = Документ.Машина;
		ГосНомерАвтомобиля = Документ.Машина.ГосударственныйНомер; 
		МаркаПрицепа =""; 
		ГосНомерПрицепа = "";
		Водитель = Документ.Водитель;
		ВодительскоеУдостоверение = "";
		//\/Горбунов ДС 030920
		Перевозчик = ПолучитьЗначениеСвойства(Документ.Водитель,"Перевозчик");
		Если Перевозчик= "" И НЕ ПустаяСтрока(Водитель) Тогда 		
			Перевозчик = Документ.Организация; 
		КонецЕсли;
		///\Горбунов ДС 030920

		Заказчик = "";
		ПунктРазгрузки = Документ.Склад; 
		ПунктПогрузки = Документ.СкладСвинокомплекса;
		ВидПеревозки =  "Автотранспортный";
		ВетеринарноеСвидетельство = "";
		ВетеринарноеСвидетельствоДата = "";
		ВетеринарноеСвидетельствоВыданное = "";
		ОтпускРазрешил = Документ.Разрешил; 
		ЖивотныхПередал = Документ.МОЛОтправитель;	
	ИначеЕсли ТипЗнч(Документ) = Тип("ДокументСсылка.АУ_ПеремещениеЖивотных") Тогда
		МаркаАвтомобиля = Документ.Автомобиль;
		ГосНомерАвтомобиля = Документ.Автомобиль.ГосударственныйНомер; 
		МаркаПрицепа = ""; 
		ГосНомерПрицепа = "";
		Водитель = Документ.Водитель;
		ВодительскоеУдостоверение = "";
		//\/Горбунов ДС 030920
		Перевозчик = ПолучитьЗначениеСвойства(Документ.Водитель,"Перевозчик");
		Если Перевозчик= "" И НЕ ПустаяСтрока(Водитель) Тогда 	
			Перевозчик = Документ.Организация; 
		КонецЕсли;
		///\Горбунов ДС 030920

		Заказчик = "";
		ПунктРазгрузки = Документ.СкладПолучатель; 
		ПунктПогрузки = Документ.СкладОтправитель;
		ВидПеревозки =  "Автотранспортный";
		ВетеринарноеСвидетельство = "";
		ВетеринарноеСвидетельствоДата = "";
		ВетеринарноеСвидетельствоВыданное = "";
		ОтпускРазрешил = Документ.Разрешил; 
		//07072020
		Если Документ.СкладОтправитель = Справочники.Склады.НайтиПоНаименованию("Цех племферма ТМА (Свиньи)") Тогда
			ЖивотныхПередал = Справочники.ФизическиеЛица.НайтиПоНаименованию("Пушина Маргарита Александровна");
		Иначе	
			ЖивотныхПередал = Документ.МОЛОтправитель;	
		КонецЕсли;
		//07072020
		//СМ_ШРС++
	ИначеЕсли ТипЗнч(Документ) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
		МаркаАвтомобиля = Документ.Машина;
		ГосНомерАвтомобиля = Документ.Машина.ГосударственныйНомер; 
		МаркаПрицепа =""; 
		ГосНомерПрицепа = "";
		Водитель = Документ.Водитель;
		ВодительскоеУдостоверение = "";
		//\/Горбунов ДС 030920
		Перевозчик = ПолучитьЗначениеСвойства(Документ.Водитель,"Перевозчик");
		Если Перевозчик= "" И НЕ ПустаяСтрока(Водитель) Тогда 		
			Перевозчик = Документ.Организация; 
		КонецЕсли;
		///\Горбунов ДС 030920

		Заказчик = "";
		ПунктРазгрузки = Документ.Склад; 
		ПунктПогрузки = Документ.СкладСвинокомплекса;
		ВидПеревозки =  "Автотранспортный";
		ВетеринарноеСвидетельство = "";
		ВетеринарноеСвидетельствоДата = "";
		ВетеринарноеСвидетельствоВыданное = "";
		ОтпускРазрешил = Документ.Разрешил; 
		ЖивотныхПередал = Документ.МОЛОтправитель;
		//СМ_ШРС--
	Иначе
		возврат;
	КонецЕсли;
КонецПроцедуры 
Показать


Вызов открытия Формы с данными о перевозке (находится в модуле объекта)

Функция Печать() Экспорт

	Если Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(СсылкаНаОбъект.Проведен) Тогда
		Предупреждение(НСтр("ru = Недостаточно полномочий для печати непроведенного документа!'"));
		Возврат Неопределено;
	КонецЕсли;
	
	ОбработкаПечати = ПолучитьФорму("Форма");
	
	ОбработкаПечати.Документ = СсылкаНаОбъект;
	
	Если ОбработкаПечати.Открыта() Тогда
		ОбработкаПечати.Активизировать();
	Иначе
	    ОбработкаПечати.Открыть();
	КонецЕсли;
	
	Возврат Неопределено;

КонецФункции
Показать


Собственно здесь и происходит основная проблема.

Если запускать пф с печатью убоя скота, то строка
ОбработкаПечати.Документ = СсылкаНаОбъект;

отработает и поле ввода на форме вместе с реквизитом заполнится.

А вот если запустить печать по РТУ которую я прикручиваю, то несмотря на наличие ссылки на выбранную РТУ в СсылкаНаОбъект, поле ввода как и, ожидаемо, реквизит не заполнятся. И вот почему так происходит я не могу понять.


Код который работает при открытии пф через файл-открыть и при нажатии запуска печати (вдруг понадобиться)

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	ТабДок = Печать();
	
	Если ТабДок<> Неопределено Тогда
	
		ТабДок.ОтображатьСетку = Ложь;
		ТабДок.ОтображатьЗаголовки = Ложь;
		ТабДок.ТолькоПросмотр = Ложь;
		ТабДок.Показать(СсылкаНаОбъект);
	
	КонецЕсли;
	
КонецПроцедуры

Процедура ПриОткрытии()
	
	Макет = ПолучитьМакет("Параметры_Авторегистрации");
	
	ВидОбъектаСтр = Макет.Область(2, 1, 2, 1).Текст;  //поменять 4 на 2
	
	Попытка
		ИмяОбъекта = Сред(ВидОбъектаСтр, Найти(ВидОбъектаСтр, ".")+1);
		КлассОбъекта = НРег(Лев(ВидОбъектаСтр, Найти(ВидОбъектаСтр, ".")-1));
		
		Если КлассОбъекта = "документы" Тогда
			ТипОбъекта = "ДокументСсылка";
		ИначеЕсли КлассОбъекта = "справочники" Тогда
			ТипОбъекта = "СправочникСсылка";
		Иначе
			ВызватьИсключение "";
		КонецЕсли;
		
		Выполнить("СсылкаНаОбъект = "+КлассОбъекта+"."+ИмяОбъекта+".ПустаяСсылка();"); 
		
		ЭлементыФормы.СсылкаНаОбъект.ОграничениеТипа = Новый ОписаниеТипов(ТипОбъекта+"."+ИмяОбъекта);
		ЭлементыФормы.СсылкаНаОбъект.ВыбиратьТип = Ложь;
		
		ЭлементыФормы.НадписьСсылкаНаОбъект.Заголовок = Лев(Трег(КлассОбъекта),СтрДлина(КлассОбъекта)-1)+" - "+Метаданные[КлассОбъекта][ИмяОбъекта].Синоним+":";
		
	Исключение
		Предупреждение("В макете ""Параметры_Авторегистрации"" неверно указан объект печати.",,"Ошибка");
		Закрыть();
	КонецПопытки;
	
КонецПроцедуры
Показать


Помогите, пожалуйста, если можете
По теме из базы знаний
Найденные решения
2. Sashares 35 14.07.23 14:09 Сейчас в теме
(1)
отработает и поле ввода на форме вместе с реквизитом заполнится.

Тип значения реквизита надо исправить.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Sashares 35 14.07.23 14:09 Сейчас в теме
(1)
отработает и поле ввода на форме вместе с реквизитом заполнится.

Тип значения реквизита надо исправить.
Оставьте свое сообщение

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