Есть пф СП-32 (не уверен, что вы с ней знакомы), которая являет собой ТТН и используется в документе забоя скота. Попросили присоединить эту пф еще и к РТУ.
У данной пф есть, если так можно сказать, особенность. Перед ее печатью открывается форма с автоматически заполненной информацией по грузоперевозке.
Прикручивая код для печати РТУ решил отладить запуск печати, чтоб посмотреть корректно ли идет заполнение этой самой формы с данными о перевозке. И код не отработал, потому что Документ был не определен. Стал разбираться
Код который хотел отладить и его вызов (находятся в форме с данными о грузоперевозке)
Вызов открытия Формы с данными о перевозке (находится в модуле объекта)
Собственно здесь и происходит основная проблема.
Если запускать пф с печатью убоя скота, то строка
отработает и поле ввода на форме вместе с реквизитом заполнится.
А вот если запустить печать по РТУ которую я прикручиваю, то несмотря на наличие ссылки на выбранную РТУ в СсылкаНаОбъект, поле ввода как и, ожидаемо, реквизит не заполнятся. И вот почему так происходит я не могу понять.
Код который работает при открытии пф через файл-открыть и при нажатии запуска печати (вдруг понадобиться)
Помогите, пожалуйста, если можете
У данной пф есть, если так можно сказать, особенность. Перед ее печатью открывается форма с автоматически заполненной информацией по грузоперевозке.
Прикручивая код для печати РТУ решил отладить запуск печати, чтоб посмотреть корректно ли идет заполнение этой самой формы с данными о перевозке. И код не отработал, потому что Документ был не определен. Стал разбираться
Код который хотел отладить и его вызов (находятся в форме с данными о грузоперевозке)
Процедура ПриОткрытии()
ЗаполнитьДанныеПечати();
КонецПроцедуры
Процедура ЗаполнитьДанныеПечати()
Если ТипЗнч(Документ) = Тип("ДокументСсылка.МК_ПоставкаИУбойСкота") Тогда
МаркаАвтомобиля = Документ.Машина;
ГосНомерАвтомобиля = Документ.Машина.ГосударственныйНомер;
МаркаПрицепа ="";
ГосНомерПрицепа = "";
Водитель = Документ.Водитель;
ВодительскоеУдостоверение = "";
//\/Горбунов ДС 030920
Перевозчик = ПолучитьЗначениеСвойства(Документ.Водитель,"Перевозчик");
Если Перевозчик= "" И НЕ ПустаяСтрока(Водитель) Тогда
Перевозчик = Документ.Организация;
КонецЕсли;
///\Горбунов ДС 030920
Заказчик = "";
ПунктРазгрузки = Документ.Склад;
ПунктПогрузки = Документ.СкладСвинокомплекса;
ВидПеревозки = "Автотранспортный";
ВетеринарноеСвидетельство = "";
ВетеринарноеСвидетельствоДата = "";
ВетеринарноеСвидетельствоВыданное = "";
ОтпускРазрешил = Документ.Разрешил;
ЖивотныхПередал = Документ.МОЛОтправитель;
ИначеЕсли ТипЗнч(Документ) = Тип("ДокументСсылка.АУ_ПеремещениеЖивотных") Тогда
МаркаАвтомобиля = Документ.Автомобиль;
ГосНомерАвтомобиля = Документ.Автомобиль.ГосударственныйНомер;
МаркаПрицепа = "";
ГосНомерПрицепа = "";
Водитель = Документ.Водитель;
ВодительскоеУдостоверение = "";
//\/Горбунов ДС 030920
Перевозчик = ПолучитьЗначениеСвойства(Документ.Водитель,"Перевозчик");
Если Перевозчик= "" И НЕ ПустаяСтрока(Водитель) Тогда
Перевозчик = Документ.Организация;
КонецЕсли;
///\Горбунов ДС 030920
Заказчик = "";
ПунктРазгрузки = Документ.СкладПолучатель;
ПунктПогрузки = Документ.СкладОтправитель;
ВидПеревозки = "Автотранспортный";
ВетеринарноеСвидетельство = "";
ВетеринарноеСвидетельствоДата = "";
ВетеринарноеСвидетельствоВыданное = "";
ОтпускРазрешил = Документ.Разрешил;
//07072020
Если Документ.СкладОтправитель = Справочники.Склады.НайтиПоНаименованию("Цех племферма ТМА (Свиньи)") Тогда
ЖивотныхПередал = Справочники.ФизическиеЛица.НайтиПоНаименованию("Пушина Маргарита Александровна");
Иначе
ЖивотныхПередал = Документ.МОЛОтправитель;
КонецЕсли;
//07072020
//СМ_ШРС++
ИначеЕсли ТипЗнч(Документ) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
МаркаАвтомобиля = Документ.Машина;
ГосНомерАвтомобиля = Документ.Машина.ГосударственныйНомер;
МаркаПрицепа ="";
ГосНомерПрицепа = "";
Водитель = Документ.Водитель;
ВодительскоеУдостоверение = "";
//\/Горбунов ДС 030920
Перевозчик = ПолучитьЗначениеСвойства(Документ.Водитель,"Перевозчик");
Если Перевозчик= "" И НЕ ПустаяСтрока(Водитель) Тогда
Перевозчик = Документ.Организация;
КонецЕсли;
///\Горбунов ДС 030920
Заказчик = "";
ПунктРазгрузки = Документ.Склад;
ПунктПогрузки = Документ.СкладСвинокомплекса;
ВидПеревозки = "Автотранспортный";
ВетеринарноеСвидетельство = "";
ВетеринарноеСвидетельствоДата = "";
ВетеринарноеСвидетельствоВыданное = "";
ОтпускРазрешил = Документ.Разрешил;
ЖивотныхПередал = Документ.МОЛОтправитель;
//СМ_ШРС--
Иначе
возврат;
КонецЕсли;
КонецПроцедуры
ПоказатьВызов открытия Формы с данными о перевозке (находится в модуле объекта)
Функция Печать() Экспорт
Если Не УправлениеДопПравамиПользователей.РазрешитьПечатьНепроведенныхДокументов(СсылкаНаОбъект.Проведен) Тогда
Предупреждение(НСтр("ru = Недостаточно полномочий для печати непроведенного документа!'"));
Возврат Неопределено;
КонецЕсли;
ОбработкаПечати = ПолучитьФорму("Форма");
ОбработкаПечати.Документ = СсылкаНаОбъект;
Если ОбработкаПечати.Открыта() Тогда
ОбработкаПечати.Активизировать();
Иначе
ОбработкаПечати.Открыть();
КонецЕсли;
Возврат Неопределено;
КонецФункции
ПоказатьСобственно здесь и происходит основная проблема.
Если запускать пф с печатью убоя скота, то строка
ОбработкаПечати.Документ = СсылкаНаОбъект;
отработает и поле ввода на форме вместе с реквизитом заполнится.
А вот если запустить печать по РТУ которую я прикручиваю, то несмотря на наличие ссылки на выбранную РТУ в СсылкаНаОбъект, поле ввода как и, ожидаемо, реквизит не заполнятся. И вот почему так происходит я не могу понять.
Код который работает при открытии пф через файл-открыть и при нажатии запуска печати (вдруг понадобиться)
Процедура КнопкаВыполнитьНажатие(Кнопка)
ТабДок = Печать();
Если ТабДок<> Неопределено Тогда
ТабДок.ОтображатьСетку = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.Показать(СсылкаНаОбъект);
КонецЕсли;
КонецПроцедуры
Процедура ПриОткрытии()
Макет = ПолучитьМакет("Параметры_Авторегистрации");
ВидОбъектаСтр = Макет.Область(2, 1, 2, 1).Текст; //поменять 4 на 2
Попытка
ИмяОбъекта = Сред(ВидОбъектаСтр, Найти(ВидОбъектаСтр, ".")+1);
КлассОбъекта = НРег(Лев(ВидОбъектаСтр, Найти(ВидОбъектаСтр, ".")-1));
Если КлассОбъекта = "документы" Тогда
ТипОбъекта = "ДокументСсылка";
ИначеЕсли КлассОбъекта = "справочники" Тогда
ТипОбъекта = "СправочникСсылка";
Иначе
ВызватьИсключение "";
КонецЕсли;
Выполнить("СсылкаНаОбъект = "+КлассОбъекта+"."+ИмяОбъекта+".ПустаяСсылка();");
ЭлементыФормы.СсылкаНаОбъект.ОграничениеТипа = Новый ОписаниеТипов(ТипОбъекта+"."+ИмяОбъекта);
ЭлементыФормы.СсылкаНаОбъект.ВыбиратьТип = Ложь;
ЭлементыФормы.НадписьСсылкаНаОбъект.Заголовок = Лев(Трег(КлассОбъекта),СтрДлина(КлассОбъекта)-1)+" - "+Метаданные[КлассОбъекта][ИмяОбъекта].Синоним+":";
Исключение
Предупреждение("В макете ""Параметры_Авторегистрации"" неверно указан объект печати.",,"Ошибка");
Закрыть();
КонецПопытки;
КонецПроцедуры
ПоказатьПомогите, пожалуйста, если можете
По теме из базы знаний
- Универсальное сохранение элементов форм (Поле ввода, флажок, табличное поле) для 8.х
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Голосовой ввод в 1С (Asterisk + Yandex speechkit + php)
- Автоматическое заполнение статистической формы учета перемещения товаров при ЭКСПОРТЕ (ФТС) в государства ЕАЭС (Беларусь, Казахстан, Армения и Кыргызская Республика)
- Заполнение категорий статистического учета для формы ЗП-Образование, пр-366 от 8 марта 2021
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот