Как правильно подключить внешнюю печатную форму для нескольких документов в 1С КА 2?

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Управленческий учет Промышленность, строительство и АПК
← На главную

Разработка внешних печатных форм в конфигурациях на базе Библиотеки стандартных подсистем (БСП), таких как 1С:Комплексная автоматизация 2, требует строгого соблюдения регламента регистрации. Часто разработчики сталкиваются с тем, что кнопка «Печать» не появляется в документе, даже если код самой процедуры вывода табличного документа написан верно. Давайте разберем эту задачу по шагам.

Шаг 1: Правильная регистрация типов документов

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

Рассмотрим пример правильного заполнения:


Функция СведенияОВнешнейОбработке Экспорт
    ПараметрыРегистрации = Новый Структура;
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ЗаказПереработчику2_5");
    МассивНазначений.Добавить("Документ.ВозвратТоваровПоставщику");
    
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    // ... остальная часть регистрации
    Возврат ПараметрыРегистрации;
КонецФункции

Шаг 2: Настройка в режиме «1С:Предприятие»

После того как вы изменили код модуля объекта, необходимо переподключить обработку в справочнике «Дополнительные отчеты и обработки». Если форма не появляется:

  1. Откройте раздел НСИ и администрирование — Печатные формы, отчеты и обработки.
  2. Перейдите в список Дополнительные отчеты и обработки.
  3. Найдите вашу обработку и откройте ее карточку.
  4. Проверьте поле Размещение: в нем должны быть указаны разделы подсистемы, где должны отображаться документы, для которых вы создаете печатную форму.
  5. Нажмите на гиперссылку Быстрый доступ и убедитесь, что документы добавлены в список пользователей, которым доступна эта кнопка.
  6. Важный момент: если документ не отображается в списке «Назначение», попробуйте перевыбрать файл внешней обработки, чтобы система обновила метаданные.

Шаг 3: Работа с данными нескольких документов

Когда стоит задача собрать информацию из разных документов в одну таблицу, важно понимать, как работает параметр МассивОбъектов в процедуре Печать. Система 1С передает в этот параметр ссылки на все объекты, выделенные пользователем. Чтобы реализовать сложную логику, мы должны анализировать типы этих объектов с помощью функции ТипЗнч().

Разберем, как правильно организовать формирование данных:


Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    // Проверяем тип объекта перед выполнением запроса
    Для Каждого СсылкаНаОбъект Из МассивОбъектов Цикл
        Если ТипЗнч(СсылкаНаОбъект) = Тип("ДокументСсылка.ЗаказПереработчику2_5") Тогда
            // Вызываем процедуру формирования для конкретного типа
            СформироватьПечатнуюФормуЗаказ(СсылкаНаОбъект, КоллекцияПечатныхФорм, ОбъектыПечати);
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Рекомендации по оптимизации запросов

В коде, который вы приводите, часто встречается ошибка выполнения запросов внутри цикла Пока Выборка.Следующий. Это критически снижает производительность системы. Проанализируем, как это исправить:

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

← На главную