При работе с типовыми конфигурациями «1С:Предприятие 8.3» часто возникает ситуация, когда в печатной форме (например, ОС-1) необходимо изменить текст в шапке документа. Часто этот текст касается постановлений Госкомстата или внутренних приказов об учетной политике организации. Сложность заключается в том, что в Конфигураторе макет выглядит как стандартный, а при печати в пользовательском режиме выводятся измененные данные. В этой статье мы разберем, как найти источник этих изменений и как правильно отредактировать форму, не нарушая логику обновлений программы.
Разберем ситуацию, с которой сталкиваются многие специалисты: при открытии макета ОС1 в дереве метаданных мы видим стандартный текст «Унифицированная форма №ОС-1. Утверждена постановлением Госкомстата России от 21.01.2003 №7». Однако на предварительном просмотре печати текст заменен на данные об учетной политике 2020 года. Почему так происходит?
Проанализируем архитектуру современных решений 1С. В конфигурациях, построенных на базе БСП (Библиотеки стандартных подсистем), реализован механизм подмены макетов. Программа сначала проверяет наличие «Пользовательского макета» в базе данных, и если он существует, использует его вместо того, который жестко прописан в конфигурации. Именно поэтому отладка может приводить вас к стандартному макету, но на экран выводится модифицированный вариант.
Это самый простой и правильный метод, который не требует навыков программирования и не мешает дальнейшим обновлениям конфигурации. Рассмотрим пошагово, как найти и изменить такой макет:
В открывшемся табличном документе мы увидим ту самую версию макета, которая выводится на печать. Здесь текст в шапке обычно является статичным. Мы можем просто выделить ячейку, нажать F2 и вписать актуальную дату учетной политики. После внесения правок нажмем Записать и закрыть.
Если в справочнике «Макеты печатных форм» все макеты выглядят как стандартные, выясним, не используется ли внешняя обработка. Для этого:
Если такая обработка найдена, необходимо выгрузить ее на диск, открыть в Конфигураторе и изменить макет внутри файла .epf.
Если макет в базе типовой, а внешней обработки нет, проанализируем список расширений. Расширения могут программно перехватывать процедуру печати. Проверим это в разделе Администрирование — Печатные формы, отчеты и обработки — Расширения.
Программист может использовать процедуру ПередПечатью или переопределить формирование табличного документа. В таком случае в коде расширения может встретиться подобный фрагмент:
&Вместо("СформироватьПечатнуюФормуОС1")
Процедура Расш1_СформироватьПечатнуюФормуОС1(ПараметрыПечати, ТабличныйДокумент)
// Вызов стандартного формирования
ПродолжитьВызов(ПараметрыПечати, ТабличныйДокумент);
// Поиск и замена текста в уже сформированном документе
Область = ТабличныйДокумент.НайтиТекст("21.01.2003 №7");
Если Область <> Неопределено Тогда
Область.Текст = "Утверждена приказом об учетной политике от 01.01.2020 №123";
КонецЕсли;
КонецПроцедуры
Если вы обнаружили подобный код, менять текст нужно именно в расширении.
Выясним, насколько законно менять шапку унифицированной формы. Согласно законодательству РФ (ФЗ-402 «О бухгалтерском учете»), с 2013 года коммерческие организации не обязаны строго следовать альбомам унифицированных форм Госкомстата. Вы имеете право утвердить в своей Учетной политике модифицированную форму ОС-1.
Поэтому замена ссылки на постановление Госкомстата №7 от 2003 года на ссылку на ваш внутренний приказ является абсолютно легитимной практикой. Главное — убедиться, что все обязательные реквизиты первичного документа сохранены в макете.
Чтобы ваши правки не «слетели» после очередного обновления конфигурации от 1С, придерживайтесь следующих правил:
ПользовательскиеМакетыПечати.Таким образом, мы проанализировали основные места хранения изменений макетов. Чаще всего решение кроется в механизме БСП, который позволяет менять текст шапки формы ОС-1 без вмешательства в программный код конфигурации.