Как исправить ошибку «Таблица не найдена "ПолученияПериодическихДанныхСотрудников"» в 1С:ЗУП

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

При работе в программе «1С:Зарплата и управление персоналом 3.1» пользователи и администраторы могут столкнуться с критической ошибкой при попытке пересчета начислений сотрудников или проведении документов «Начисление зарплаты и взносов». Ошибка сопровождается системным сообщением, указывающим на отсутствие временной таблицы ПолученияПериодическихДанныхСотрудников в общем модуле ЗарплатаКадрыПериодическиеРегистры. Разберем подробно причины возникновения этой проблемы и эффективные методы ее решения.

Анализ программного механизма ошибки

Для начала проанализируем, почему возникает данная ошибка. В конфигурации ЗУП 3.1 расчет зарплаты опирается на сложные механизмы получения среза данных из периодических регистров сведений (например, плановые начисления, графики работы, данные о позициях штатного расписания). Для оптимизации производительности разработчики 1С используют механизм Менеджера временных таблиц (МВТ).

Таблица ПолученияПериодическихДанныхСотрудников не является реальным объектом метаданных в базе данных. Это временная таблица, которая создается «на лету» программным кодом перед выполнением основного запроса. Ошибка Таблица не найдена означает, что в цепочке вызовов процедур общего модуля ЗарплатаКадрыПериодическиеРегистры произошел разрыв: либо таблица не была создана из-за исключительной ситуации в коде, либо менеджер временных таблиц был очищен или переинициализирован до момента обращения к нему.

Выясним причину сбоя в контексте метода Запрос.Выполнить(). Когда основной запрос пытается обратиться к ИзмеренияДаты (псевдоним для искомой временной таблицы), платформа проверяет наличие этой таблицы в текущем МВТ. Если код формирования данных «проскочил» или завершился некорректно без генерации таблицы, выполнение прерывается с ошибкой конфигурации.

Специфика релиза 3.1.10.135 и «ловушка» НДФЛ

Проанализируем конкретную ситуацию, описанную пользователями. Проблема часто проявляется на релизе 3.1.10.135. В этом обновлении компания 1С внедрила изменения в алгоритмы перерасчетов, связанные с возвратами НДФЛ. Если в информационной базе есть сотрудники, у которых в периоде расчета присутствуют документы возврата налога или специфические корректировки налогового учета, старый алгоритм формирования временных таблиц может давать сбой.

Рассмотрим по шагам, как это происходит:

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

Решение 1: Обновление конфигурации (Приоритетный метод)

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

Во-первых, проверьте текущую версию вашей конфигурации. Если вы используете релиз ниже 3.1.10.223 (или аналогичной ветки 3.1.14+), обновление необходимо. В новых версиях в общий модуль ЗарплатаКадрыПериодическиеРегистры были добавлены дополнительные проверки на существование менеджера временных таблиц и корректность инициализации структур перед выполнением запросов.

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

Решение 2: Проверка целостности данных и дублей

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

  1. Поиск дублей: Проверьте регистры сведений, связанные с сотрудниками (например, ДанныеСотрудников, КадроваяИсторияСотрудников). Наличие двух записей по одному сотруднику на одну и ту же дату (период) может привести к тому, что запрос на формирование временной таблицы вернет ошибку или пустой результат.
  2. Проверка «битых» ссылок: Используйте стандартную обработку «Тестирование и исправление информационной базы». Обязательно выберите пункты «Проверка логической целостности» и «Проверка ссылочной целостности». Если в списке сотрудников на расчет есть объект со статусом <Объект не найден>, алгоритм не сможет корректно сформировать временную таблицу.
  3. Анализ возвратов НДФЛ: Выясним, были ли в расчетном периоде документы «Возврат НДФЛ». Попробуйте временно пометить их на удаление и запустить пересчет. Если ошибка исчезнет, значит, проблема именно в данных этих документов или в их взаимодействии с алгоритмом расчета.

Решение 3: Очистка кэша и работа с платформой

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

Проанализируем версию платформы. Если вы используете старые версии (например, 8.3.12–8.3.15), в них наблюдались баги при работе с Менеджером Временных Таблиц в фоновых заданиях. Рекомендуется обновить платформу до актуальной стабильной версии (например, 8.3.21 или выше).

Обязательно выполните очистку кэша на локальном компьютере пользователя и на сервере (если база клиент-серверная). Старый кэш метаданных может содержать неверные описания типов временных таблиц, что приводит к ошибке Таблица не найдена даже на исправном коде.

Решение 4: Диагностика расширений конфигурации

Если у вас установлены расширения, они могут напрямую влиять на возникновение ошибки. Разберем, как проверить этот фактор:

Часто программисты в расширениях переопределяют методы расчета или добавляют свои условия в запросы. Если расширение модифицирует процедуры в модуле ЗарплатаКадрыПериодическиеРегистры, оно может «забывать» передавать менеджер временных таблиц в вызываемые функции. Попробуйте временно отключить все активные расширения и проверить работу документа. Если ошибка пропала — проблему нужно искать в коде расширения, обеспечив корректную передачу параметра МенеджерВременныхТаблиц.

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


МенеджерВТ = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;

// Здесь должен быть код формирования таблицы "ПолученияПериодическихДанныхСотрудников"
// Если его нет или он не отработал, следующий запрос упадет:

Запрос.Текст = "ВЫБРАТЬ * ИЗ ПолученияПериодическихДанныхСотрудников КАК ИзмеренияДаты";
РезультатЗапроса = Запрос.Выполнить();

Рекомендации по исправлению «вручную» (для разработчиков)

Если вы опытный разработчик и вам нужно устранить ошибку немедленно без полного обновления, проанализируйте текст запроса в функции ВыполнитьЗапросПолученияДвиженийРегистра. Можно добавить проверку перед выполнением:


ТаблицыМенеджера = МенеджерВТ.Таблицы;
Если ТаблицыМенеджера.Найти("ПолученияПериодическихДанныхСотрудников") = Неопределено Тогда
    // Вызов процедуры инициализации таблицы или логирование ошибки для анализа данных
    ВызватьИсключение "Ошибка инициализации данных сотрудников: таблица не сформирована.";
КонецЕсли;

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

Подведем итог: ошибка Таблица не найдена "ПолученияПериодическихДанныхСотрудников" — это следствие несовершенства алгоритмов в переходных релизах ЗУП 3.1. Основной путь исправления — обновление конфигурации, дополнительный — аудит кадровых данных и регистров НДФЛ на предмет логических несоответствий.

← На главную