Как изменить сортировку в печатной форме «График отпусков» (Т-7) в ЗУП 2.5?

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

Многие пользователи и разработчики, работающие в ЗУП 2.5, сталкиваются с необходимостью изменить порядок вывода сотрудников в печатной форме Т-7. Типовой механизм системы настроен так, что данные в печатной форме группируются и сортируются по полю Сотрудник, игнорируя настройки сортировки, которые вы можете задать непосредственно в табличной части документа. Давайте разберем, почему так происходит и как решить эту задачу, не внося изменений в саму конфигурацию.

Почему не работает сортировка в документе?

В старых редакциях, таких как ЗУП 2.5, алгоритм формирования печатных форм жестко прописан в модулях конфигурации. Когда вы нажимаете кнопку печати, система обращается к программному коду, который считывает данные из табличной части документа в определенном порядке. В типовой реализации этот запрос не учитывает визуальный порядок строк, который вы установили в интерфейсе (например, через кнопку Сортировать по возрастанию), а принудительно выводит сотрудников в алфавитном порядке или по иным внутренним правилам модуля.

Попытки найти «галочку» или настройку в интерфейсе программы, подобную тем, что появились в более новых версиях (например, в ЗУП 3.1), не увенчаются успехом. В ЗУП 2.5 такой возможности нет, поэтому программный код всегда будет перекрывать ваши пользовательские настройки сортировки при выводе на печать.

Решение задачи: создание внешней печатной формы

Чтобы выполнить требование пользователей и при этом не снимать конфигурацию с поддержки (что крайне важно для возможности последующего обновления), единственным правильным решением является разработка внешней печатной формы (ВПФ). Рассмотрим этот процесс по шагам.

  1. Подготовка макета: Вы можете использовать существующий типовой макет Т-7 как шаблон. Скопируйте его из конфигуратора во внешнюю обработку. Это сэкономит время на верстке и сохранит привычный вид документа.
  2. Программная реализация: В коде внешней обработки необходимо создать запрос к данным документа ГрафикОтпусков. Именно на этом этапе мы и «обманем» систему. Вместо того чтобы просто перебирать строки табличной части, мы используем конструктор запроса, где явно укажем правило сортировки.

Пример логики запроса, который нужно реализовать в модуле объекта внешней печатной формы:


ВЫБРАТЬ
    ГрафикОтпусков.Сотрудник КАК Сотрудник,
    ГрафикОтпусков.ДатаНачала КАК ДатаНачала,
    ГрафикОтпусков.ДатаОкончания КАК ДатаОкончания
ИЗ
    Документ.ГрафикОтпусков.Работники КАК ГрафикОтпусков
ГДЕ
    ГрафикОтпусков.Ссылка = &СсылкаНаДокумент
УПОРЯДОЧИТЬ ПО
    ДатаНачала ВОЗР

Интеграция в систему

После того как вы написали код, сохраните файл обработки. В ЗУП 2.5 предусмотрен механизм подключения внешних печатных форм через справочник Дополнительные отчеты и обработки. Это позволит добавить новую кнопку График отпусков (по дате начала) непосредственно в командную панель документа График отпусков.

Преимущества такого подхода:

Таким образом, проанализировав ситуацию, мы пришли к выводу, что затраты на написание внешней печатной формы минимальны по сравнению с попытками редактирования кода самой конфигурации. Это профессиональный подход к сопровождению старых версий 1С, обеспечивающий стабильность и предсказуемость работы системы в будущем.

← На главную