Почему не выводятся изменения в макете печатной формы Т-9 в 1С:ЗУП 3.1 и как исправить обрезание номера документа?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При работе с кадровым учетом в программе 1С:Зарплата и управление персоналом (ЗУП) 3.1 пользователи и разработчики часто сталкиваются с необходимостью кастомизации унифицированных печатных форм. Типичный пример — изменение формата даты ознакомления сотрудника или вывод сложных номеров приказов в форме Т-9 (Приказ о направлении в командировку). Однако на практике часто возникают две неприятные проблемы: внесенные изменения в макет упорно не выводятся на печать, а сложные номера документов со слэшами и дефисами некорректно усекаются программой.

В этой статье мы подробно разберем, почему возникают эти сложности, как очистить кэш для применения изменений, в чем разница настройки макетов в версиях ПРОФ и КОРП, а также как победить механизм префиксации БСП, который обрезает номера ваших документов.

---

Часть 1. Почему измененный макет Т-9 не выводится на печать?

Рассмотрим ситуацию: вы открыли макет печатной формы Т-9, изменили текстовое поле или формат даты (например, превратили стандартное "01 Апреля 2019г." в аккуратное "_____ апреля 2019г."), сохранили изменения и включили опцию «Использовать измененный макет». Однако при формировании печатной формы из документа «Командировка» конфигурация продолжает выводить старый вариант.

Выясним основные причины такого поведения платформы и разберем способы их устранения.

Решение 1. Очистка локального кэша платформы 1С

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

Способ А. Добавление параметра запуска (самый простой метод):

  1. Откройте окно запуска 1С:Предприятия.
  2. Выберите нужную информационную базу и нажмите кнопку «Изменить».
  3. Перейдите на последнюю вкладку настроек (параметры запуска).
  4. В поле «Дополнительные параметры запуска» введите команду: /ClearCache.
  5. Запустите базу. Платформа принудительно очистит кэш метаданных. После успешного запуска этот параметр рекомендуется удалить, чтобы не замедлять последующие сеансы работы.

Способ Б. Ручное удаление временных файлов:

  1. Закройте программу 1С.
  2. Нажмите комбинацию клавиш Win + R, введите %appdata% и нажмите Enter. Вы попадете в папку Roaming.
  3. Перейдите в каталог 1C\1Cv8. Там вы увидите множество папок с длинными буквенно-цифровыми именами (например, 8e4b17f5-7b56-...). Это и есть папки кэша.
  4. Удалите эти папки. Не бойтесь, настройки пользователей при этом не пострадают, а платформа при следующем запуске создаст актуальные кэш-файлы.
  5. Аналогичную процедуру проделайте в папке Local (перейдите по пути %localappdata%\1C\1Cv8 и также очистите содержимое).

Решение 2. Проверка дублирующихся макетов (Ошибка платформы 10203256)

В некоторых релизах ветки 1С:ЗУП 3.1.8 и выше наблюдался неприятный системный баг. В списке доступных макетов присутствовало сразу два элемента: один с наименованием «Приказ о направлении в командировку (Т-9)», а второй — лаконичное «Т-9».

Проанализируем эту ситуацию: пользователь заходит в настройки, открывает макет «Т-9», вносит правки и сохраняет его. Но сама кнопка «Печать» в документе «Командировка» программно привязана к макету «Приказ о направлении в командировку (Т-9)». В результате система берет стандартный системный шаблон, игнорируя ваши изменения.

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

Решение 3. Конфликт приоритетов между Конфигуратором и Режимом Предприятия

Если вы пытаетесь отредактировать печатную форму в Конфигураторе или через механизм Расширений, но в режиме «1С:Предприятие» изменения не применяются, обязательно проверьте регистр сведений Пользовательские макеты печати.

Платформа 1С работает по жесткому правилу приоритетов: пользовательский макет (созданный в режиме Предприятия) всегда приоритетнее макета из Конфигуратора или Расширения.

Для исправления ситуации выполните следующие действия:

  1. Перейдите в меню Администрирование — Печатные формы, отчеты и обработки — Макеты печатных форм.
  2. Найдите макет Т-9. Если рядом с ним стоит значок измененного макета (синий карандаш), это значит, что у вас сохранен пользовательский вариант.
  3. Выделите макет и нажмите кнопку «Использовать стандартный макет» (или полностью удалите пользовательское изменение, выбрав пункт «Очистить»). После этого система начнет считывать код и разметку напрямую из Конфигуратора или вашего Расширения.

---

Часть 2. Почему в интерфейсе ЗУП нет пункта «Настраиваемые печатные формы»?

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

Давайте разберем причину этого явления. Дело в том, что данный функционал имеет жесткое лицензионное ограничение:

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

---

Часть 3. Проблема с обрезанием номера документа (превращение 03-01/04-19 в 01/04-19)

Перейдем ко второму важнейшему вопросу: почему при выводе приказа Т-9 на печать программа самовольно модифицирует и обрезает сложный номер документа? Например, вместо красивого и утвержденного в вашей организации делопроизводственного номера 03-01/04-19 на печать выводится куцый вариант 01/04-19.

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

Однако сложный номер с дефисами алгоритм ошибочно принимает за комбинацию префиксов (воспринимая часть 03- как префикс базы или организации) и безжалостно удаляет её. Исправить это стандартными пользовательскими настройками невозможно — придется прибегнуть к программированию.

Рассмотрим два профессиональных пути решения этой задачи.

Способ 1. Исправление через Расширение конфигурации (Рекомендуемый метод)

Чтобы не снимать базу с поддержки и сохранить возможность простого обновления программы, мы создадим небольшое расширение и перехватим управление формированием номера.

Давайте по шагам разберем процесс создания такого решения:

  1. Откройте базу в режиме Конфигуратор.
  2. Перейдите в меню Конфигурация — Управление расширениями. Нажмите кнопку «Добавить», создайте новое расширение (например, с именем ИсправлениеНомераПечати) и снимите с него флажок «Безопасный режим».
  3. В дереве основной конфигурации найдите менеджер документа Командировка.
  4. Найдите процедуру, отвечающую за подготовку данных для печати (обычно это экспортная процедура формирования коллекций печатных форм, обращающаяся к функции НомерНаПечать).
  5. В коде БСП вызов этой функции выглядит следующим образом:

// Стандартный вызов БСП, который обрезает номер:
ОбластьМакета.Параметры.НомерДокумента = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(ДанныеПечати.Номер, Истина, Истина);
  1. В созданное расширение добавьте перехватчик этой процедуры (используя аннотацию &Вместо или &ИзменениеИВопреки) и перепишите заполнение параметра номера. Нам нужно передать параметры удаления префиксов как Ложь, либо вывести исходное значение реквизита напрямую:

&Вместо("ЗаполнитьПараметрыПечатиТ9")
Процедура ИНП_ЗаполнитьПараметрыПечатиТ9(ДанныеПечати, ОбластьМакета)
    // Вызываем оригинальное заполнение параметров, чтобы не дублировать код
    ПродолжитьВызов(ДанныеПечати, ОбластьМакета);
    
    // Перезаписываем параметр номера БЕЗ удаления префиксов и очистки
    // Вместо обрезания выводим чистый номер из реквизита документа "Командировка"
    ОбластьМакета.Параметры.НомерДокумента = ДанныеПечати.Номер; 
КонецПроцедуры

Такой подход гарантирует, что на печать попадет абсолютно идентичный строковый номер, который бухгалтер ввел в поле ввода документа в интерфейсе программы.

Способ 2. Подключение внешней печатной формы (ВПФ)

Если у вас нет прав на создание расширений или ваша база работает в облачном сервисе (например, 1С:Фреш в базовом тарифе, где расширения проходят строгий аудит), отличной альтернативой станет использование внешней печатной формы.

Для реализации этого метода выполним следующие шаги:

  1. Выгрузите стандартную обработку печати Т-9 из конфигурации во внешний файл .epf (или скачайте готовый шаблон ВПФ Т-9 для ЗУП 3.1 из надежных профессиональных сообществ).
  2. Откройте модуль объекта внешней печатной формы в Конфигураторе.
  3. Найдите код заполнения параметра макета НомерДокумента.
  4. Замените вызов функции форматирования БСП прямой передачей значения номера: замените строчку ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(...) на простое присвоение Шапка.Номер (где Шапка — структура или выборка с реквизитами документа).
  5. Сохраните внешнюю печатную форму.
  6. Зарегистрируйте её в базе данных: перейдите в раздел Администрирование — Печатные формы, отчеты и обработки — Дополнительные отчеты и обработки, нажмите кнопку «Добавить из файла» и укажите вашу ВПФ.
  7. Настройте размещение для документа «Командировка». Нажмите кнопку «Записать и закрыть».

Теперь при нажатии на кнопку печати у пользователей появится дополнительный пункт меню (с именем вашей внешней печатной формы), при выборе которого номер 03-01/04-19 будет выводиться в исходном, необрезанном виде.

---

Резюме

Мы детально изучили механизмы управления печатными формами в 1С:ЗУП 3.1. Подведем краткие итоги нашей совместной работы:

  1. Если ваши изменения в макетах не отображаются на экране — всегда начинайте с очистки кэша (через ключ запуска /ClearCache) и проверки приоритетов в регистре Пользовательские макеты печати.
  2. Раздел «Настраиваемые печатные формы» — это прерогатива дорогостоящей версии КОРП. В версии ПРОФ используйте стандартное меню редактирования макетов в разделе Администрирование.
  3. Для предотвращения порчи и усечения сложных номеров документов со слэшами отключайте функции очистки префиксов БСП с помощью Расширений конфигурации или разработки Внешних печатных форм.
← На главную