При работе с кадровым учетом в программе 1С:Зарплата и управление персоналом (ЗУП) 3.1 пользователи и разработчики часто сталкиваются с необходимостью кастомизации унифицированных печатных форм. Типичный пример — изменение формата даты ознакомления сотрудника или вывод сложных номеров приказов в форме Т-9 (Приказ о направлении в командировку). Однако на практике часто возникают две неприятные проблемы: внесенные изменения в макет упорно не выводятся на печать, а сложные номера документов со слэшами и дефисами некорректно усекаются программой.
В этой статье мы подробно разберем, почему возникают эти сложности, как очистить кэш для применения изменений, в чем разница настройки макетов в версиях ПРОФ и КОРП, а также как победить механизм префиксации БСП, который обрезает номера ваших документов.
---
Рассмотрим ситуацию: вы открыли макет печатной формы Т-9, изменили текстовое поле или формат даты (например, превратили стандартное "01 Апреля 2019г." в аккуратное "_____ апреля 2019г."), сохранили изменения и включили опцию «Использовать измененный макет». Однако при формировании печатной формы из документа «Командировка» конфигурация продолжает выводить старый вариант.
Выясним основные причины такого поведения платформы и разберем способы их устранения.
Самая частая причина, по которой изменения «застревают» — это кэширование временных файлов платформой 1С:Предприятие. Локальный кэш сохраняет графическое отображение табличных документов для ускорения работы, игнорируя свежие изменения в базе данных. Для решения этой проблемы выполним очистку кэша.
Способ А. Добавление параметра запуска (самый простой метод):
/ClearCache.Способ Б. Ручное удаление временных файлов:
Win + R, введите %appdata% и нажмите Enter. Вы попадете в папку Roaming.1C\1Cv8. Там вы увидите множество папок с длинными буквенно-цифровыми именами (например, 8e4b17f5-7b56-...). Это и есть папки кэша.Local (перейдите по пути %localappdata%\1C\1Cv8 и также очистите содержимое).В некоторых релизах ветки 1С:ЗУП 3.1.8 и выше наблюдался неприятный системный баг. В списке доступных макетов присутствовало сразу два элемента: один с наименованием «Приказ о направлении в командировку (Т-9)», а второй — лаконичное «Т-9».
Проанализируем эту ситуацию: пользователь заходит в настройки, открывает макет «Т-9», вносит правки и сохраняет его. Но сама кнопка «Печать» в документе «Командировка» программно привязана к макету «Приказ о направлении в командировку (Т-9)». В результате система берет стандартный системный шаблон, игнорируя ваши изменения.
Чтобы это исправить, найдите в списке макетов печатных форм вторую вариацию шаблона и продублируйте ваши изменения там.
Если вы пытаетесь отредактировать печатную форму в Конфигураторе или через механизм Расширений, но в режиме «1С:Предприятие» изменения не применяются, обязательно проверьте регистр сведений Пользовательские макеты печати.
Платформа 1С работает по жесткому правилу приоритетов: пользовательский макет (созданный в режиме Предприятия) всегда приоритетнее макета из Конфигуратора или Расширения.
Для исправления ситуации выполните следующие действия:
---
Часто на форумах советуют настраивать шаблоны документов через удобный конструктор по пути: «Настройка» — «Сервис» — «Настраиваемые печатные формы». Однако многие пользователи с удивлением обнаруживают, что этого пункта меню у них просто нет, и его невозможно добавить даже через настройку панели действий.
Давайте разберем причину этого явления. Дело в том, что данный функционал имеет жесткое лицензионное ограничение:
Альтернативное решение для версии ПРОФ:
Пользователям версии ПРОФ не стоит расстраиваться. Изменять макеты можно (и нужно) через стандартный функционал Библиотеки стандартных подсистем (БСП). Для этого перейдите в раздел: Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм. Здесь вы можете выбрать любой макет (включая Т-9), нажать кнопку «Изменить», отредактировать его в стандартном табличном редакторе 1С и сохранить.
---
Перейдем ко второму важнейшему вопросу: почему при выводе приказа Т-9 на печать программа самовольно модифицирует и обрезает сложный номер документа? Например, вместо красивого и утвержденного в вашей организации делопроизводственного номера 03-01/04-19 на печать выводится куцый вариант 01/04-19.
Рассмотрим природу этого поведения. Виновником является встроенная функция общего модуля БСП — ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(). При выводе регламентированных кадровых отчетов программа пытается «очистить» технические данные номера: убрать префиксы организации, префиксы узлов распределенной информационной базы (РИБ) и лидирующие нули.
Однако сложный номер с дефисами алгоритм ошибочно принимает за комбинацию префиксов (воспринимая часть 03- как префикс базы или организации) и безжалостно удаляет её. Исправить это стандартными пользовательскими настройками невозможно — придется прибегнуть к программированию.
Рассмотрим два профессиональных пути решения этой задачи.
Чтобы не снимать базу с поддержки и сохранить возможность простого обновления программы, мы создадим небольшое расширение и перехватим управление формированием номера.
Давайте по шагам разберем процесс создания такого решения:
ИсправлениеНомераПечати) и снимите с него флажок «Безопасный режим».НомерНаПечать).
// Стандартный вызов БСП, который обрезает номер:
ОбластьМакета.Параметры.НомерДокумента = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДанныеПечати.Номер, Истина, Истина);
&Вместо или &ИзменениеИВопреки) и перепишите заполнение параметра номера. Нам нужно передать параметры удаления префиксов как Ложь, либо вывести исходное значение реквизита напрямую:
&Вместо("ЗаполнитьПараметрыПечатиТ9")
Процедура ИНП_ЗаполнитьПараметрыПечатиТ9(ДанныеПечати, ОбластьМакета)
// Вызываем оригинальное заполнение параметров, чтобы не дублировать код
ПродолжитьВызов(ДанныеПечати, ОбластьМакета);
// Перезаписываем параметр номера БЕЗ удаления префиксов и очистки
// Вместо обрезания выводим чистый номер из реквизита документа "Командировка"
ОбластьМакета.Параметры.НомерДокумента = ДанныеПечати.Номер;
КонецПроцедуры
Такой подход гарантирует, что на печать попадет абсолютно идентичный строковый номер, который бухгалтер ввел в поле ввода документа в интерфейсе программы.
Если у вас нет прав на создание расширений или ваша база работает в облачном сервисе (например, 1С:Фреш в базовом тарифе, где расширения проходят строгий аудит), отличной альтернативой станет использование внешней печатной формы.
Для реализации этого метода выполним следующие шаги:
.epf (или скачайте готовый шаблон ВПФ Т-9 для ЗУП 3.1 из надежных профессиональных сообществ).НомерДокумента.ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(...) на простое присвоение Шапка.Номер (где Шапка — структура или выборка с реквизитами документа).Теперь при нажатии на кнопку печати у пользователей появится дополнительный пункт меню (с именем вашей внешней печатной формы), при выборе которого номер 03-01/04-19 будет выводиться в исходном, необрезанном виде.
---
Мы детально изучили механизмы управления печатными формами в 1С:ЗУП 3.1. Подведем краткие итоги нашей совместной работы:
/ClearCache) и проверки приоритетов в регистре Пользовательские макеты печати.