После обновления на последние релизы, во многих типовых конфигурациях (например: в бухгалтерии 3.0.143 или в ЗУП 3.1.27) перестали формироваться внешние печатные формы, которые используют формы настроек, такие как "выбор подписантов", "номер приказа" и т.п.
В основном, такие печатные формы использовали ОткрытьФорму("ОбщаяФорма.ПечатьДокументов"...
При нажатии на кнопку "печать" теперь ничего не происходит.
Причина: изменения в БСП 3.1.9.
Предлагаю учебный пример внешней печатной формы справочника "контрагенты" с выводом формы настроек перед печатью, который позволит вам:
1) Быстро "починить" любую внешнюю печатную форму с выводом формы настроек перед печатью или быстро создать с нуля новую.
2) Разобраться в новом механизме на примере простой внешней печатной формы справочника контрагентов.
Я сделал 2 варианта:
1) "Контрагент с подписантами" - "классический вариант", когда в модуле объекта есть стандартная процедура "Печать".
2) "Контрагент с подписантами 2" - в модуле объекта содержатся только параметры регистрации, весь код содержится только в модуле формы.
Каким вариантом пользоваться ? - это по желанию, если у вас обработка "стандартная", через "печать" в модуле объекта (без предварительной формы настроек перед печатью), то её проще и быстрей будет переделать с использованием 1го варианта. Если вы делаете новую печатную форму - тогда второй вариант.
Обе печатные формы подключаются к базе стандартным способом:
Администрирование -> Печатные формы, отчеты и обработки - > Дополнительные отчеты и обработки -> Добавить из файла. Далее выбрать назначение - справочник "контрагенты". Записываем и закрываем.
Для того, чтобы сформировать печатную форму, нужно зайти в справочник "контрагенты", открыть карточку контрагента, нажать кнопку печать и выбрать одну из добавленных внешних печатных форм:
Далее нужно указать подписанта:
Табличный документ формируется очень простой - название контрагента и ФИО подписанта, которое вы указываете на форме настроек - для того, чтобы не перегружать пример излишними данными и не запутывать вас:
Краткая инструкция по изменению:
Я постарался максимально комментировать код.
При отладке на форме выводится ссылка на объект, при формировании из конфигурации - нет, что бы не мешало пользователю.
Ссылка на объект передаётся форме настройки через ключевой параметр формы "ОбъектыНазначения", обратите на это внимание, не забывайте про этот параметр.
Оба примера имеют режим отладки, ставите точку останова, запускаете 1С в режиме отладки, открываете внешнюю печатную форму через "файл - открыть", выбираете ссылку на элемент справочника и отлаживаете.
Реквизит на форме настройки "СсылкаДляОтладки" используется для указания ссылки объекта, который будет распечатан в режиме отладки. Если вы переделываете на другой тип данных - не забывайте поменять тип данных у этого реквизита. Можно использовать справочники, документы и т.п.
Не забывайте, что идентификатор нужно использовать один и тот же, иначе не заработает. Как пример = "КонтрагентСПодписантами", можно посмотреть через поиск в модуле объекта и в модуле формы, и заменить на свой.
Основные изменения, которые нужно будет делать:
1) Макет.
2) Процедура формирования табличного документа.
3) Реквизиты на форме настроек и передача их в структуре.
Используемые функции в печатной форме (для поиска):
УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм
ОбщегоНазначения.ТаблицаЗначенийВМассив
УправлениеПечатьюКлиент.ПечатьДокументов
УправлениеПечатью.НужноПечататьМакет
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию
Тестировалось на релизах:
- Зарплата и управление персоналом, редакция 3.1 (3.1.27.23)
- Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.143.42)
Тестировалось на платформах:
- 1С:Предприятие 8.3 (8.3.23.1865)
- 1С:Предприятие 8.3 (8.3.22.2239)
- 1С:Предприятие 8.3 (8.3.23.1912)