Почему в печатной форме табеля Т-13 в 1С:ЗУП 2.5 отображаются сверхурочные часы и как это исправить?

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

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

Причина расхождения данных в документе и печатной форме

Проанализируем архитектуру работы типового механизма формирования отчетности в ЗУП 2.5. В конфигурации печатная форма Т-13, вызываемая из документа «Табель», работает по принципу отчета. Она извлекает информацию не напрямую из табличных частей текущего документа, а собирает данные из учетных регистров накопления и расчета (в частности, по фактически зарегистрированным начислениям и отклонениям).

Если в расчетном периоде уже проведен документ «Оплата сверхурочных часов», то процедура печати автоматически подтягивает зарегистрированные часы сверхурочной работы из расчетного контура. В результате возникает рассинхронизация: пользователь редактирует строки табеля вручную, но на печать выводятся сводные данные из регистров программы.

Способ 1. Проверка и корректировка расчетных документов

Разберем первый вариант устранения проблемы без вмешательства в программный код. Если вывод сверхурочных часов в табеле является ошибочным с точки зрения кадрового или бухгалтерского учета, выполним следующие шаги:

  1. Найдем в журнале документов документ «Оплата сверхурочных часов» за проверяемый расчетный месяц.
  2. Проверим корректность внесенных в него данных. Если начисление сверхурочных производиться не должно, отменим проведение документа.
  3. Вернемся в документ «Табель учета рабочего времени в орг.» и выполним команду «Заполнить» для актуализации данных.
  4. Повторно сформируем печатную форму Т-13 и убедимся, что код «С» больше не выводится.

Способ 2. Ручная корректировка сформированной печатной формы

Если требуется разово распечатать табель без сверхурочных часов, не меняя при этом проведенные расчеты в базе, воспользуемся штатной возможностью редактирования табличного документа:

  1. Сформируем форму Т-13 по кнопке «Печать».
  2. В главном меню перейдем в пункт «Таблица» — «Вид» — «Редактирование» (или нажмем соответствующую пиктограмму на панели инструментов).
  3. Вручную удалим лишние буквенные обозначения «С» и скорректируем количество отработанных часов непосредственно в ячейках бланка перед отправкой на принтер.

Способ 3. Создание внешней печатной формы по данным табличной части

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

Разберем по шагам алгоритм создания доработки:

  1. Возьмем типовую процедуру формирования макета из отчета «Унифицированная форма Т-13».
  2. Сохраним код вывода табличного документа без изменений, но заменим текст исходного запроса.
  3. Вместо выборки из регистров расчета настроим обращение к табличным частям самого документа ТабельУчетаРабочегоВремени.
  4. Учтем режим заполнения документа: при вводе данных по дням периода считывание выполняется из колонок ПервоеЧисло, ВтороеЧисло и далее до конца месяца.
  5. Зарегистрируем готовую внешнюю обработку в системе через меню «Сервис» — «Дополнительные отчеты и обработки» — «Дополнительные внешние печатные формы».

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


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

Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаДокумент);
РезультатЗапроса = Запрос.Выполнить();

После подключения такой обработки при нажатии кнопки печати система будет формировать унифицированную форму Т-13 исключительно на основании строк самого документа, полностью игнорируя начисления сверхурочных из параллельных расчетных документов.

← На главную