Как вывести внешнюю печатную форму в список документов в 1С:Бухгалтерия 3.0 и настроить групповую печать

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При разработке внешних печатных форм (ВПФ) для конфигураций на базе Библиотеки стандартных подсистем (БСП), таких как 1С:Бухгалтерия предприятия 3.0, часто возникает ситуация: кнопка печати успешно появляется внутри документа, но отсутствует в форме списка. Это ограничивает возможности пользователя, лишая его функции групповой печати (печати "пачкой"). В данной статье мы подробно разберем, как обеспечить появление команды в списке и как правильно обработать массив выбранных документов.

Механизм работы подключаемых команд

Для начала проанализируем, как БСП управляет выводом кнопок. В современных типовых конфигурациях меню "Печать" формируется динамически при создании формы. Программа обращается к справочнику Дополнительные отчеты и обработки, ищет подходящие формы для текущего типа объекта и выводит их. Если форма списка является типовой, в ней уже прописаны все необходимые механизмы взаимодействия с БСП.

Рассмотрим, какие условия должны быть соблюдены в модуле объекта вашей внешней печатной формы, чтобы она стала доступна в списке.

Настройка функции СведенияОВнешнейОбработке

Первым делом проверим функцию СведенияОВнешнейОбработке. Именно здесь мы указываем платформе, для каких объектов предназначена печатная форма и как её следует вызывать. Выясним, на что нужно обратить внимание:

  1. Назначение: Убедимся, что в массив назначений добавлен нужный тип документа (например, Документ.РеализацияТоваровУслуг).
  2. Использование: Для печатных форм в колонке "Использование" таблицы команд следует указывать ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода() или ТипКомандыВызовКлиентскогоМетода().

Посмотрим на пример заполнения таблицы команд:


Команда = ТаблицаКоманд.Добавить();
Команда.Представление = "Моя печатная форма (групповая)";
Команда.Идентификатор = "ОсновныеПараметрыПечати";
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
Команда.ПоказыватьОповещение = Истина;
Команда.Модификатор = "ПечатьMXL"; // Важно для корректной интеграции

Реализация групповой печати в процедуре Печать

Если мы хотим, чтобы пользователь мог выделить несколько строк в списке и распечатать их одним нажатием, процедура Печать в модуле объекта должна быть готова к приему массива ссылок. Рассмотрим типичную структуру такой процедуры:


Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    // Проверяем наличие нашей команды в коллекции
    ПечатнаяФорма = УправлениеПечатью.СведенияОПечатнойФорме(КоллекцияПечатныхФорм, "ОсновныеПараметрыПечати");
    Если ПечатнаяФорма <> Неопределено Тогда
        
        // МассивОбъектов содержит ссылки на все выделенные документы в списке
        ПечатнаяФорма.ТабличныйДокумент = СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати);
        ПечатнаяФорма.СинонимМакета = "Моя печатная форма";
        
    КонецЕсли;

КонецПроцедуры

Внутри функции СформироватьПечатнуюФорму крайне важно обходить МассивОбъектов в цикле. Если код написан в расчете только на один документ, групповая печать работать не будет или выдаст ошибку при попытке распечатать более одного объекта.

Почему кнопка не появляется: проверяем форму списка

Если ваша конфигурация типовая на 100%, кнопки в списках должны появляться автоматически. Однако, если форма списка была изменена или вы создаете свою форму, проанализируем наличие в ней следующих вызовов БСП:

Как правило, в типовых решениях (БП 3.0, УТ 11) эти вызовы уже есть, и проблема кроется в другом.

Регистрация изменений и кэширование интерфейса

Одной из самых частых причин отсутствия кнопки в списке является механизм кэширования команд в БСП. Разберем по шагам, что нужно сделать после внесения изменений в код ВПФ:

  1. Зайдите в раздел Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки.
  2. Найдите вашу обработку в списке.
  3. Нажмите кнопку Обновить из файла и выберите ваш обновленный файл .epf.
  4. Нажмите Записать и закрыть.

Важный нюанс: Платформа 1С часто кэширует состав команд открытых форм. Как отметил автор исходной темы, иногда достаточно просто закрыть и заново открыть форму списка документов, чтобы изменения вступили в силу. Если это не помогло, попробуйте полностью перезапустить сеанс пользователя.

Настройка видимости команд

Если программных ошибок нет, но кнопка всё равно отсутствует, выясним причину в настройках интерфейса. В управляемых формах пользователь может самостоятельно скрывать пункты меню. Проверьте:

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

← На главную