При работе в программе 1С:Зарплата и управление персоналом (редакция 3.1) пользователи иногда сталкиваются с крайне неприятной ситуацией: при выводе на печать унифицированной формы Т-13 из документа Табель в графе 10 (и некоторых других) откуда-то появляются «фантомные» записи об отсутствиях, неявках или командировках сотрудников. При этом в самом документе Табель на экране всё заполнено абсолютно корректно, и никаких лишних записей нет. Более того, эта проблема начинает проявляться даже в старых, давно проведенных документах за прошлые периоды.
В этой статье мы подробно разберем, почему возникает данная ошибка, проанализируем её технические причины, а также рассмотрим по шагам все возможные способы решения и обхода этой проблемы.
Описанное поведение программы не является следствием неправильных действий пользователя или повреждения базы данных. Это официальный зарегистрированный баг фирмы «1С» под номером 10202188 (код публикации — 000047702).
Давайте проанализируем, почему это происходит. Ошибка впервые массово проявилась в релизе 3.1.8.113 конфигураций «1С:Зарплата и управление персоналом» и «1С:Зарплата и кадры государственного учреждения». Сбой кроется в логике работы модуля менеджера документа Табель.
Когда мы нажимаем кнопку Печать -> Т-13 непосредственно внутри формы документа Табель, программа обращается к специальному запросу в модуле менеджера. В релизе 3.1.8.113 в этом запросе была допущена ошибка в наложении фильтров по периоду и физическим лицам при обращении к регистрам сведений учета времени. В результате алгоритм печати начинает захватывать «чужие» интервалы отсутствий других сотрудников или данные из смежных периодов. Это также приводит к тому, что у сотрудников, принятых на работу не с первого числа месяца, в печатной форме Т-13 могут ошибочно заполняться рабочие дни за даты, когда они еще даже не числились в штате организации.
Поскольку алгоритм печати является общим для всей конфигурации, ошибка начинает воспроизводиться и при открытии старых («исторических») документов Табель, которые были созданы и проведены еще до обновления программы.
Если у вас нет возможности прямо сейчас обновить конфигурацию или привлечь программиста для исправления кода, вы можете воспользоваться официальным обходным путем, который рекомендует техническая поддержка фирмы «1С». Данный способ позволяет получить абсолютно корректную и чистую форму Т-13 без лишних фантомных записей.
Секрет заключается в том, чтобы формировать печатную форму Т-13 не из самого документа Табель, а через специализированный отчет по зарплате. Давайте разберем этот процесс по шагам:
Почему этот способ работает? При формировании табеля через панель отчетов программа использует совершенно другие алгоритмы, построенные на Системе компоновки данных (СКД). Эти алгоритмы напрямую обращаются к регистрам накопления и сведений по учету рабочего времени и не задействуют ошибочный код из модуля менеджера документа Табель. В результате форма Т-13 формируется корректно и без ошибок.
Поскольку ошибка 10202188 является критической для регламентированного кадрового учета, разработчики «1С» оперативно выпустили исправление. Если вы столкнулись с этой проблемой, наиболее правильным и долгосрочным решением будет обновление программы до актуальной версии.
Рассмотрим, как правильно обновить конфигурацию, чтобы решить проблему:
Конфигуратор, выберем пункт меню Администрирование -> Выгрузить информационную базу и сохраним файл резервной копии.1С:Предприятие, дождемся завершения процедур обновления данных и проверим печать Т-13 из документа Табель — фантомные отсутствия должны исчезнуть.В случаях, когда оперативное обновление всей конфигурации невозможно (например, база сильно кастомизирована, находится на поддержке с изменениями, а регламентированную отчетность нужно сдавать срочно), проблему можно решить точечно. Для этого программисты используют механизм расширений конфигурации.
Механизм расширений позволяет переопределить поведение ошибочного метода без изменения основной конфигурации, что сохраняет базу на автоматическом обновлении.
Проанализируем, как это можно реализовать:
Конфигуратор.Табель и его модуль менеджера.&Вместо для корректировки запроса. В самом запросе необходимо исправить условия соединения таблиц и наложить жесткие отборы по сотрудникам и периоду (чтобы исключить попадание записей по незанятым датам для сотрудников, принятых не с начала месяца, и исключить пересечение интервалов других физлиц).Такой подход позволяет мгновенно восстановить работоспособность печати Т-13 непосредственно из документов для всех пользователей, не прибегая к глобальному обновлению программного продукта.
Мы подробно разобрали неприятную ошибку с выводом ложных отсутствий в табеле Т-13 в 1С:ЗУП 3.1.8. Если вы столкнулись с этим багом, не стоит паниковать и пытаться вручную перебивать документы. Достаточно использовать стандартный отчет Табель учета рабочего времени (Т-13) из раздела «Отчеты по зарплате» в качестве временной меры, а при первой возможности — обновить программу до актуального стабильного релиза.