В 1С базе создается новый/нетиповой документ «Новый документ».
Необходимо создать для него печатную форму (внешнюю печатную форму).
После создания внешней печатной формы, при попытке подключения, документ размещения будет «Не определено» и в списке выбора его так же не будет.
Этот новый/нетиповой документ, к которому пытаетесь подключить внешнюю печатную форму, не подключен к подсистеме «печать».
Подсистема «Печать» предназначена для формирования печатных форм объектов
на основе табличных макетов (формат MXL) или макетов офисных документов в
форматах Microsoft Word и OpenOffice.org Writer.
Подсистема предоставляет инструменты для размещения команд печати на формах в
подменю Печать, форму предпросмотра печатных форм, а также различные сервисные
возможности по сохранению печатных форм в файлы, отправке по электронной почте.
Для того чтобы подключиться к подсистеме «Печать» документ необходимо доработать.
На первом этапе нужно внедрить подсистему в те объекты, в которых предполагается использовать команды печати:
1. В формах каждого объекта, где необходимо разместить команду печати, в процедуре ПриСозданииНаСервере() добавить следующий код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.Печать
УправлениеПечатью.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.Печать
КонецПроцедуры
По умолчанию команды печати располагаются на командной панели формы, но размещение можно переопределить, указав второй параметр в вызовеУправлениеПечатью.ПриСозданииНаСервере:
УправлениеПечатью.ПриСозданииНаСервере(ЭтотОбъект, Элементы.ГруппаКомандПечати);
Динамическое создание команд печати на форме может замедлять ее открытие, поэтому размещать команды печати рекомендуется в статической группе команд вида Подменю.
2. В формах объекта, куда размещается команда печати (кроме форм списков), добавить код подключаемого обработчика команды:
// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать
3. В формах списка объекта, куда размещается команда печати, добавить код подключаемого обработчика команды:
// СтандартныеПодсистемы.Печать
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)
УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.Печать
Важно!
Поле Ссылка динамического списка формы должно быть доступно в обработчике команды. Для этого необходимо у реквизита формы, содержащего динамический список, у поля Ссылка поставить флажок Использовать всегда.
4. Добавить экспортную процедуру ДобавитьКомандыПечати в модуль менеджера:
// Заполняет список команд печати.
//
// Параметры:
// КомандыПечати – ТаблицаЗначений – состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
//
КонецПроцедуры
5. Добавить выбранные объекты в СписокОбъектов в процедуре ПриОпределенииОбъектовСКомандамиПечати общего модуляУправлениеПечатьюПереопределяемый:
// Определяет объекты, в которых есть процедура ДобавитьКомандыПечати().
//
// Параметры:
// СписокОбъектов — Массив — список менеджеров объектов.
//
Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт СписокОбъектов.Добавить(Справочники._ДемоКонтактныеЛицаПартнеров);
СписокОбъектов.Добавить(Справочники._ДемоКонтрагенты);
СписокОбъектов.Добавить(Справочники._ДемоПартнеры);
СписокОбъектов.Добавить(Справочники._ДемоФизическиеЛица);
СписокОбъектов.Добавить(Справочники.Организации);
СписокОбъектов.Добавить(Документы._ДемоОприходованиеТоваров);
СписокОбъектов.Добавить(Документы._ДемоПеремещениеТоваров);
СписокОбъектов.Добавить(Документы._ДемоСписаниеТоваров); СписокОбъектов.Добавить(Документы._ДемоСчетНаОплатуПокупателю);
КонецПроцедуры