Почему не формируется табель рабочего времени Т-13 в 1С:Бухгалтерия и как исправить ошибку преобразования даты

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

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

Анализ технической причины ошибки

Ошибка «Преобразование значения к типу дата не может быть выполнено» в контексте формирования отчетов на базе Системы компоновки данных (СКД) обычно указывает на то, что в программном коде или в запросе происходит попытка выполнить операцию над пустым значением (NULL) или значением, которое не является датой, там, где ожидается тип Дата.

Рассмотрим подробнее механизм работы отчета Т-13. В конфигурации «Бухгалтерия предприятия» (в отличие от «Зарплата и управление персоналом») табель формируется не на основании документов «Табель», а расчетным путем на основе кадровых данных: графиков работы, документов приема, переводов и состояний сотрудников (больничные, отпуска). Программа выполняет сложный пакетный запрос к нескольким регистрам сведений. Если в одном из этих регистров у сотрудника стоит «битая» дата (например, 01.01.0001) или запись о состоянии сотрудника обрывается некорректно, СКД «спотыкается» при попытке сопоставить периоды работы с календарем.

Шаг 1. Локализация проблемы через отборы

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

  1. Формирование по организации в целом. Если отчет выдает ошибку, попробуем сузить область поиска.
  2. Формирование по подразделениям. Выясним, возникает ли ошибка при выборе каждого подразделения по отдельности. Как показывает практика, часто отчет корректно строится по всем отделам, кроме одного конкретного. Это сужает круг «подозреваемых» сотрудников.
  3. Индивидуальная проверка сотрудников. Если мы нашли «проблемное» подразделение, попробуем сформировать отчет по каждому сотруднику этого отдела отдельно. Если по каждому сотруднику в отдельности отчет строится, а по списку подразделения — нет, это верный признак того, что ошибка кроется в механизме подбора сотрудников или в связях между ними в регистрах.

Шаг 2. Проверка кадровой истории и «невидимых» сотрудников

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

Проанализируем регистр сведений Кадровая история сотрудников. Для этого можно воспользоваться функцией «Функции для технического специалиста» (или «Все функции»). Нам нужно проверить записи по тем сотрудникам, которые «пропадают» из отчета. Особое внимание уделим полям Период, Дата приема и Организация. Если сотрудник был перенесен из другой программы или создан обработкой, дата в этих полях может быть пустой или иметь некорректное значение.

Также важно проверить регистр Данные состояний сотрудников. Именно из него Т-13 берет информацию о том, работал человек в конкретный день или находился в отпуске/на больничном. Если по сотруднику введен документ (например, «Больничный лист»), но запись в регистр состояний не попала (произошел программный сбой при проведении), отчет не сможет корректно вычислить количество отработанных дней и выдаст ошибку преобразования типа.

Шаг 3. Устранение ошибок в данных (Перепроведение)

Самый эффективный и быстрый способ исправить «кривые» записи в регистрах без прямого редактирования — это перепроведение кадровых документов. Проделаем следующие действия:

  1. Найдем документы Прием на работу и Кадровый перевод по тем сотрудникам, которые вызывают подозрение.
  2. Отменим проведение документа и проведем его заново. При этом система заново сформирует движения по всем необходимым регистрам (Кадровая история сотрудников, Данные состояний сотрудников, Плановые начисления).
  3. Проверим, нет ли по данным сотрудникам «наслаивающихся» документов. Например, два кадровых перевода одной датой или перевод, дата которого меньше даты приема. Такие логические ошибки часто приводят к тому, что запрос СКД возвращает NULL в поле даты.

Шаг 4. Очистка пользовательских настроек отчета

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

Воспользуемся кнопкой Еще — Установить стандартные настройки в форме самого отчета. Если это не помогло, перейдем в раздел Администрирование — Настройки пользователей и прав — Очистка настроек. Выберем нашего пользователя и найдем в списке отчет «Табель учета рабочего времени (Т-13)». Удалим все сохраненные настройки для этого отчета. Это заставит систему инициализировать схему компоновки данных «с нуля».

Шаг 5. Работа с патчами и версиями конфигурации

Если вы используете версию 3.0.78.69 или близкие к ней, помните, что в этот период в 1С активно вносились изменения, связанные с нерабочими днями и специфическими кодами в табеле. Зачастую ошибки преобразования даты были связаны с недоработками в типовом коде самой фирмы 1С.

Проанализируем раздел Администрирование — Обслуживание — Обновление программы — Установленные исправления (патчи). Если в списке есть патчи, касающиеся кадрового учета или расчета зарплаты, попробуйте их обновить или временно отключить для проверки. Если же патчей нет, рекомендуется обновить конфигурацию до актуального релиза, так как в последующих версиях (3.0.79+) большинство ошибок в запросах Т-13 были исправлены разработчиками.

Пример анализа в конфигураторе (для программистов)

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


ВЫБРАТЬ
    СведенияОСотрудниках.Сотрудник КАК Сотрудник,
    ВЫБОР
        КОГДА СведенияОСотрудниках.ДатаПриема > &НачалоПериода
            ТОГДА СведенияОСотрудниках.ДатаПриема
        ИНАЧЕ &НачалоПериода
    КОНЕЦ КАК ДатаНачалаПериода
ИЗ
    РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&КонецПериода, ) КАК СведенияОСотрудниках

Если поле ДатаПриема у сотрудника не заполнено, то результат выражения будет неопределенным в некоторых СУБД или приведет к ошибке при попытке сравнения с параметром &НачалоПериода. Проанализируем запрос и убедимся, что все входящие даты проходят проверку функцией ЕСТЬNULL или ВЫБОР КОГДА ... ЕСТЬ NULL.

Резюме и рекомендации

Для успешного формирования табеля Т-13 в 1С:Бухгалтерия при возникновении ошибок с датами, придерживайтесь следующего алгоритма:

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

← На главную