Многие пользователи и разработчики, работающие в ЗУП 2.5, сталкиваются с необходимостью изменить порядок вывода сотрудников в печатной форме Т-7. Типовой механизм системы настроен так, что данные в печатной форме группируются и сортируются по полю Сотрудник, игнорируя настройки сортировки, которые вы можете задать непосредственно в табличной части документа. Давайте разберем, почему так происходит и как решить эту задачу, не внося изменений в саму конфигурацию.
В старых редакциях, таких как ЗУП 2.5, алгоритм формирования печатных форм жестко прописан в модулях конфигурации. Когда вы нажимаете кнопку печати, система обращается к программному коду, который считывает данные из табличной части документа в определенном порядке. В типовой реализации этот запрос не учитывает визуальный порядок строк, который вы установили в интерфейсе (например, через кнопку Сортировать по возрастанию), а принудительно выводит сотрудников в алфавитном порядке или по иным внутренним правилам модуля.
Попытки найти «галочку» или настройку в интерфейсе программы, подобную тем, что появились в более новых версиях (например, в ЗУП 3.1), не увенчаются успехом. В ЗУП 2.5 такой возможности нет, поэтому программный код всегда будет перекрывать ваши пользовательские настройки сортировки при выводе на печать.
Чтобы выполнить требование пользователей и при этом не снимать конфигурацию с поддержки (что крайне важно для возможности последующего обновления), единственным правильным решением является разработка внешней печатной формы (ВПФ). Рассмотрим этот процесс по шагам.
Т-7 как шаблон. Скопируйте его из конфигуратора во внешнюю обработку. Это сэкономит время на верстке и сохранит привычный вид документа.ГрафикОтпусков. Именно на этом этапе мы и «обманем» систему. Вместо того чтобы просто перебирать строки табличной части, мы используем конструктор запроса, где явно укажем правило сортировки.Пример логики запроса, который нужно реализовать в модуле объекта внешней печатной формы:
ВЫБРАТЬ
ГрафикОтпусков.Сотрудник КАК Сотрудник,
ГрафикОтпусков.ДатаНачала КАК ДатаНачала,
ГрафикОтпусков.ДатаОкончания КАК ДатаОкончания
ИЗ
Документ.ГрафикОтпусков.Работники КАК ГрафикОтпусков
ГДЕ
ГрафикОтпусков.Ссылка = &СсылкаНаДокумент
УПОРЯДОЧИТЬ ПО
ДатаНачала ВОЗР
После того как вы написали код, сохраните файл обработки. В ЗУП 2.5 предусмотрен механизм подключения внешних печатных форм через справочник Дополнительные отчеты и обработки. Это позволит добавить новую кнопку График отпусков (по дате начала) непосредственно в командную панель документа График отпусков.
Преимущества такого подхода:
Таким образом, проанализировав ситуацию, мы пришли к выводу, что затраты на написание внешней печатной формы минимальны по сравнению с попытками редактирования кода самой конфигурации. Это профессиональный подход к сопровождению старых версий 1С, обеспечивающий стабильность и предсказуемость работы системы в будущем.