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