В процессе разработки или доработки печатных форм в современных конфигурациях 1С, таких как Комплексная автоматизация 2 (КА 2), разработчики часто сталкиваются с вопросом поиска типового кода. Архитектура БСП (Библиотеки подключаемых печатных форм) существенно отличается от старых конфигураций, что вызывает закономерные трудности.
Если вам необходимо найти логику формирования печатной формы ТОРГ-12, не стоит искать её непосредственно в модуле объекта документа. В современных конфигурациях на управляемых формах используется механизм Библиотеки подключаемых печатных форм.
Рассмотрим по шагам, где скрыта эта логика:
КА 2.Общие -> Обработки.ПечатьОбщихФорм.Именно в методе СформироватьПечатнуюФормуТОРГ12 сосредоточена вся основная логика обработки данных перед выводом их в макет. Именно туда обращается система, когда пользователь нажимает кнопку «Печать» в документе Реализация товаров и услуг.
Часто возникает соблазн скопировать вызовы методов, которые используются в ПечатьОбщихФорм, чтобы «быстро» получить данные о номерах ГТД. Однако, как показал анализ, при попытке передачи параметров (массивов и структур) вы сталкиваетесь с тем, что система ожидает сложные типы данных, которые сложно воспроизвести вручную.
В типовых конфигурациях данные для печати — это сложная коллекция, которая собирается на основе «черного ящика» (менеджеров объекта). Попытки вручную сформировать такую структуру, как в коде:
ДанныеДляПечати = МенеджерОбъекта.ПолучитьДанныеДляПечатнойФормыТОРГ12(ПараметрыПечати, СтруктураОбъектов.Значение);
часто приводят к ошибкам приведения типов или неверным результатам, так как методы ожидают строго типизированные коллекции, инициализированные в рамках жизненного цикла печатной формы.
Вместо того чтобы «взламывать» или имитировать внутренние механизмы печатных форм, разберем более надежный и профессиональный способ получения номеров ГТД — запрос к регистрам накопления.
Проанализируем ситуацию: данные о ГТД в КА 2 не всегда хранятся непосредственно в табличной части Товары документа реализации, чтобы не перегружать основной объект. Информация о движении номенклатуры в разрезе ГТД фиксируется в регистрах накопления.
Рекомендуемый алгоритм действий:
Реализация товаров и услуг.Номера ГТД.Такой подход обеспечивает несколько преимуществ:
1С, которые могут произойти после обновления конфигурации.1С:Предприятия гораздо проще отлаживать и поддерживать.Посмотрим, как может выглядеть базовая структура запроса (условно):
ВЫБРАТЬ
Рег.Номенклатура,
Рег.НомерГТД,
Рег.Количество
ИЗ
РегистрНакопления.ТоварыОрганизаций КАК Рег
ГДЕ
Рег.Регистратор = &СсылкаНаДокумент
Использование этого метода позволит вам получить необходимые сведения о ГТД максимально прозрачным способом. Если вы новичок в КА 2, запомните золотое правило: если типовой механизм кажется слишком сложным для внешнего использования, значит, существует более прямое обращение к данным через регистры накопления или виртуальные таблицы.