Как исправить ошибку «значение не является значением объектного типа (КодПоОКТМО)» при выплате отпусков в 1С:Бухгалтерия 3.0

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

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

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

Суть проблемы и причины возникновения

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


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

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

Решение 1: Проверка заполнения ОКТМО и ОКАТО

Первым делом проверим справочник регистраций в налоговых органах. Несмотря на то, что код ОКАТО считается устаревшим с 2014 года и заменен на ОКТМО, программные механизмы «1С:Бухгалтерии» в некоторых модулях (особенно в старых блоках кода или при проверке прошлых периодов) до сих пор могут обращаться к полю ОКАТО.

  1. Перейдем в раздел Главное — Организации.
  2. Откроем карточку нашей организации и перейдем по гиперссылке Регистрации в налоговых органах.
  3. Откроем текущую основную регистрацию.
  4. Убедимся, что поле ОКТМО заполнено корректно (обычно это 8 или 11 знаков).
  5. Важно: Проверим поле ОКАТО. Если оно пустое, его необходимо заполнить, даже если вы считаете, что оно не используется. Как показывает практика, именно отсутствие ОКАТО часто становится причиной ошибки при обращении к объектному типу данных ИФНС.
  6. Нажмем Записать и закрыть.

Решение 2: Проверка истории регистраций в регистрах сведений

Если в самой карточке регистрации все данные заполнены, проблема может крыться в истории изменений. Программа ищет данные на дату документа (дату выплаты отпуска). Если в регистре сведений есть записи с пустыми датами или «битыми» ссылками, это вызовет ошибку.

Рассмотрим подробнее, как проверить эти данные:

  1. Нажмем «Сервис и настройки» (три полоски в верхнем правом углу) — Функции для технического специалиста (если режим не включен, его нужно активировать в настройках параметров).
  2. Найдем в списке регистры сведений:
    • История регистраций в налоговом органе
    • История регистраций в налоговом органе вторичный
  3. Проанализируем записи. Выясним, нет ли там строк с пустым периодом или периодом, который конфликтует с датой начисления отпуска.
  4. Если вы редактировали регистрацию недавно, убедитесь, что не создалось несколько записей на одну и ту же дату с противоречивыми данными.

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

Решение 3: Очистка кэша и тестирование базы данных

Если данные в порядке, но ошибка сохраняется, проанализируем состояние самой информационной базы. Ошибка «объектного типа» может быть следствием некорректного кэширования метаданных после обновления платформы или конфигурации.

Выполним следующие шаги:

  1. Очистка кэша: Удалим базу из списка запуска 1С и добавим ее заново. Это самый простой способ принудительно обновить локальный кэш пользователя.
  2. Тестирование и исправление (ТиИ):
    • Запустим базу в режиме Конфигуратор.
    • Обязательно сделаем резервную копию (Администрирование — Выгрузить информационную базу).
    • Перейдем в меню Администрирование — Тестирование и исправление.
    • Выберем пункты «Реиндексация таблиц» и «Проверка логической целостности».

Дополнительные факторы влияния

Посмотрим на ситуацию шире. Помимо кодов ИФНС, на процесс выплаты влияют производственные календари и графики работы. Рассмотрим их:

Если в программе не заполнен ПроизводственныйКалендарь на текущий или будущий год (в котором происходит выплата), механизмы расчета НДФЛ и определения сроков перечисления налога могут давать сбой. Проверьте:

Также проверьте документ «Начисление отпуска». Если в нем не указан способ выплаты (например, «В межрасчетный период»), ведомость может формироваться некорректно, пытаясь обратиться к объектам, которые еще не инициализированы в памяти программы.

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

← На главную