Как подключить внешнюю печатную форму в конфигурации Астор «Торговый дом»?

Программист 1С v8.3 (Обычные формы) Управленческий учет Торговля и дистрибуция
← На главную

Работа с отраслевыми решениями, такими как «Астор: Торговый дом» (особенно версии 7 SE), часто ставит перед разработчиком нестандартные задачи. В отличие от типовых конфигураций фирмы «1С», где механизмы подключения внешних печатных форм (ВПФ) стандартизированы через Библиотеку стандартных подсистем (БСП) или справочник ВнешниеОбработки, в решениях от «Астор» используются собственные механизмы. Рассмотрим подробно, как правильно зарегистрировать и отладить внешнюю печатную форму в этой системе.

Поиск места регистрации: Справочник «Имена печатных форм»

Проанализируем структуру конфигурации. В «Астор: Торговый дом» вы не найдете привычного раздела в меню «Сервис», ведущего к списку дополнительных отчетов и обработок. Вместо этого ключевым узлом управления печатью является справочник «Имена печатных форм». Именно в нем прописываются связи между объектами метаданных (документами, справочниками) и файлами печатных форм.

Разберем по шагам процесс регистрации:

  1. Откроем справочник «Имена печатных форм». Найти его можно через интерфейс или через «Операции» — «Справочники».
  2. Создадим новый элемент. В поле «Объект» выберем тип документа, для которого создается форма (например, РеализацияТоваров или ПоступлениеТоваров).
  3. В карточке настройки необходимо найти переключатель типа формы. В конфигурациях Астор предусмотрено два варианта: «Встроенная» и «Внешняя». Установим значение «Внешняя».
  4. После выбора внешнего типа появится поле для указания пути к файлу .epf. Важный нюанс: если база работает в клиент-серверном или многопользовательском режиме, путь к файлу должен быть сетевым (UNC-путь), например: \\ServerName\1C_Reports\MyPrintForm.epf. Это гарантирует, что форма будет доступна всем пользователям системы.

Особенности программного кода внешней обработки

Даже если форма успешно зарегистрирована в справочнике и появилась в меню «Печать» нужного документа, она может «не срабатывать» — то есть при нажатии на кнопку ничего не происходит. Выясним причину такого поведения. В стандартных конфигурациях 1С система ожидает, что функция Печать() вернет объект типа ТабличныйДокумент, который система сама выведет на экран. В Асторе логика иная.

Рассмотрим пример кода, который часто используется в типовых решениях, но не будет работать в Асторе без доработки:


Функция Печать() Экспорт
    ТабДок = Новый ТабличныйДокумент;
    // ... здесь идет формирование макета и заполнение данными ...
    Возврат ТабДок; 
КонецФункции

В конфигурации «Торговый дом 7 SE» механизм вызова реализован упрощенно: система просто создает объект обработки и запускает его экспортный метод. Она не обрабатывает возвращаемое значение. Поэтому за вывод результата на экран отвечает сама обработка. Исправим код, добавив явный вызов метода Показать().

Правильный вариант реализации функции в модуле обработки:


Процедура Печать(ОбъектСсылка = Неопределено) Экспорт
    ТабДок = Новый ТабличныйДокумент;
    // Заполняем табличный документ данными из ОбъектСсылка
    // ...
    // Обязательно выводим на экран самостоятельно:
    ТабДок.Показать("Печать: " + Строка(ОбъектСсылка));
КонецПроцедуры

Проверка параметров функции Печать

Проанализируем еще один критически важный момент — параметры функции. В зависимости от конкретной версии Астор, вызывающий код в модуле менеджера документа может передавать в функцию Печать разные параметры. Чаще всего это ссылка на текущий документ (ОбъектСсылка) или массив ссылок при групповой печати.

Если количество параметров в вашей функции не совпадает с тем, что передает система, возникнет ошибка выполнения, которая в некоторых режимах работы может просто «проглатываться» системой. Чтобы избежать этого, рекомендуется делать параметры необязательными или использовать проверку типа:


// Универсальный заголовок функции для Астор
Процедура Печать(Параметр1 = Неопределено, Параметр2 = Неопределено) Экспорт
    // Если Параметр1 — это ссылка на документ
    Если ТипЗнч(Параметр1) = Тип("ДокументСсылка.РеализацияТоваров") Тогда
        СсылкаНаОбъект = Параметр1;
    КонецЕсли;
    
    // Формируем и выводим документ
    ТабДок = СформироватьПечатнуюФорму(СсылкаНаОбъект);
    ТабДок.Показать();
КонецПроцедуры

Почему справочник «Внешние обработки» отсутствует?

Многие программисты, привыкшие к БСП, пытаются найти справочник ДополнительныеОтчетыИОбработки. Выясним, почему его нет. Конфигурация «Торговый дом 7 SE» разрабатывалась в период, когда БСП еще не была внедрена повсеместно. Весь функционал по работе с внешними файлами в ней является «самописным» со стороны разработчиков Астор.

Если вы столкнулись с ситуацией, когда печать всё равно не вызывается, рекомендуем выполнить следующие действия:

Таким образом, успех подключения внешней печатной формы в «Астор: Торговый дом» зависит от правильной связки в справочнике «Имена печатных форм» и обязательного использования метода Показать() внутри программного кода обработки.

← На главную