В современных конфигурациях «1С:Предприятие 8.3» (таких как «Бухгалтерия предприятия 3.0», «ERP Управление предприятием» или «Управление торговлей 11») процесс формирования печатных форм существенно отличается от старых редакций. Часто программисты сталкиваются с тем, что в самом документе РеализацияТоваровУслуг макет счета-фактуры попросту отсутствует. Давайте разберем, где спрятаны эти макеты, почему в них «мало параметров» и как найти нужный фрагмент кода с помощью отладки.
Первое, что нам необходимо усвоить: в современных решениях на базе БСП (Библиотеки стандартных подсистем) макеты первичных документов, регулируемых законодательством, вынесены в общий доступ. Проанализируем ветку конфигурации Общие -> Общие макеты. Именно там сосредоточены все версии счетов-фактур, отвечающие разным постановлениям правительства.
Рассмотрим наиболее актуальные имена макетов, которые вы можете встретить:
Важный нюанс: если вы ищете макет в документе РеализацияТоваровУслуг, вы его там не найдете. Даже если печать инициируется из реализации, система чаще всего обращается к объекту-основанию или программно вызывает функции из модуля менеджера документа СчетФактураВыданный.
Часто при открытии общего макета программист видит пустые области или минимальное количество параметров (например, только ТекстСтроки или Номер). Выясним причину этого явления. В новых конфигурациях используется механизм динамического формирования областей.
Это означает, что программа не просто берет готовый «рисунок» и заполняет в нем поля. Она собирает макет как конструктор:
Поэтому не стоит пугаться, если в ПФ_MXL_СчетФактура вы не видите параметров для всех 13 колонок. Большинство из них формируется кодом в процессе компоновки табличного документа.
Если визуальный поиск в конфигураторе не приносит результатов, воспользуемся проверенным методом отладки. Это позволит нам точно определить, какой макет система выбирает в конкретный момент времени для конкретного документа. Разберем этот процесс по шагам:
Реализация) и подготовим форму к печати.УправлениеПечатью или в модуле менеджера документа СчетФактураВыданный, в процедуре Печать.ИмяМакета или поле структуры ПараметрыПечати.Посмотрим на пример кода, который обычно отвечает за выбор макета в модуле менеджера:
// Пример логики выбора макета в зависимости от даты
Если ДатаДокумента < ДатаНачалаДействияПостановления Тогда
ИмяМакета = "ПФ_MXL_СчетФактура981";
Иначе
ИмяМакета = "ПФ_MXL_СчетФактура1137_1351";
КонецЕсли;
Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет." + ИмяМакета);
Проанализировав этот участок кода, вы точно поймете, какой именно файл из ветки «Общие макеты» редактирует система.
Если ваша задача — не просто изменить шрифт или логотип, а изменить логику вывода данных (например, алгоритм расчета суммы НДС), вам нужно искать не макет, а Модуль менеджера.
Основные места сосредоточения логики:
ПечатьСчетаФактуры.Рассмотрим подробнее, как происходит заполнение данных. Система формирует запрос к базе данных, получает результат, а затем в цикле обходит строки, заполняя параметры областей макета. Если вам нужно добавить свое поле, вам придется:
Параметры.Заполнить() или где параметры присваиваются явно.Перед тем как вносить изменения в конфигураторе, обязательно проверим, не используется ли в базе Пользовательский макет. В режиме «1С:Предприятие» перейдем в раздел Администрирование -> Печатные формы, отчеты и обработки -> Макеты печатных форм.
Найдем в списке «Счет-фактура». Если рядом с названием стоит пиктограмма синего карандаша, значит, стандартный макет переопределен пользователем. В этом случае правки в конфигураторе не вступят в силу, пока вы не удалите или не обновите этот пользовательский макет.
Вы упоминали, что скриншот был сделан из базы КОРП, а у вас обычная версия. Проанализируем ситуацию: в версии КОРП могут быть включены специфические настройки (например, работа с обособленными подразделениями или сложный учет НДС). Однако структура макетов в БСП унифицирована.
Если на вашем образце есть колонки для РНПТ (прослеживаемость), убедитесь, что в вашей базе в Настройках налогов и отчетов включена опция «Учет прослеживаемых товаров». Без этой галочки система программно будет скрывать секции макета, отвечающие за прослеживаемость, даже если они физически присутствуют в общем макете ПФ_MXL_СчетФактура1137_1351.
Если конфигурация находится на поддержке, крайне не рекомендуется менять «Общие макеты» напрямую. Правильным подходом будет использование Расширений конфигурации. Рассмотрим алгоритм действий:
Это позволит вам безболезненно обновлять программу, сохраняя при этом все ваши индивидуальные доработки печатной формы счета-фактуры.