Как исправить ошибку «Поле объекта не обнаружено (УчетнаяПолитикаПоНДФЛ)» в 1С:Бухгалтерия 2.0?

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

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

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

Выясняем причину: почему возникает ошибка?

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

Давайте заглянем «под капот» конфигурации и разберем технические детали. Ошибка возникает в общем модуле менеджера регистра накопления НДФЛРасчетыСБюджетом. Платформа спотыкается на следующей строке кода:


ЗаполнитьЗначенияСвойств(СчитатьНерабочиеДниКарантинаРабочими,
    РегистрыСведений.УчетнаяПолитикаПоНДФЛ.Получить('20200101', Новый Структура("Организация", Организация)));

В чем же здесь кроется подвох? Дело в том, что весной 2020 года в связи с пандемией COVID-19 и указами Президента РФ о введении нерабочих дней возникла необходимость особого учета этих периодов для расчета НДФЛ и заполнения регламентированной отчетности (в частности, формы 6-НДФЛ). Для реализации этого функционала в современной редакции «Бухгалтерия предприятия» 3.0 был добавлен новый регистр сведений УчетнаяПолитикаПоНДФЛ.

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

Способ 1. Официальное обновление конфигурации (Рекомендуемый)

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

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

  1. Выполните резервное копирование (создайте резервную копию базы данных .dt или скопируйте файл 1Cv8.1CD). Это обязательное правило перед любым обновлением.
  2. Скачайте дистрибутив обновления для конфигурации «Бухгалтерия предприятия» редакции 2.0 версии 2.0.66.112 (или любого более позднего актуального релиза).
  3. Запустите базу данных в режиме Конфигуратор.
  4. Перейдите в меню Конфигурация -> Поддержка -> Обновить конфигурацию.
  5. Укажите путь к файлу обновления (обычно это файл 1cv8.upd в каталоге шаблонов) и завершите процесс обновления конфигурации.
  6. Примите изменения в структуре базы данных (клавиша F7 или синяя бочка на панели инструментов).

После обновления до версии 2.0.66.112 обращение к несуществующему регистру в модуле менеджера регистра накопления НДФЛРасчетыСБюджетом будет устранено, и документы начнут проводиться в штатном режиме.

Способ 2. Временное исправление кода вручную (Hotfix)

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

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

  1. Запустите базу данных в режиме Конфигуратор.
  2. Если конфигурация находится на поддержке, включите возможность редактирования. Для этого перейдите в Конфигурация -> Поддержка -> Настройка поддержки и нажмите кнопку Включить возможность изменения. Установите правила поддержки «Объект поставщика редактируется с сохранением поддержки» для корня конфигурации.
  3. В дереве метаданных найдите ветку Регистры накопления и разверните ее.
  4. Найдите регистр НДФЛРасчетыСБюджетом, нажмите на него правой кнопкой мыши и выберите пункт Открыть модуль менеджера.
  5. Используя поиск по тексту (сочетание клавиш Ctrl + F), найдите строку, содержащую обращение к УчетнаяПолитикаПоНДФЛ.
  6. Закомментируйте эту строку, добавив в ее начало два слеша //.
  7. Ниже добавьте инициализацию переменной, чтобы алгоритм не вызывал ошибок при дальнейшем чтении свойств. Напишите следующий код:

// Закомментировано из-за отсутствия регистра в БП 2.0
// ЗаполнитьЗначенияСвойств(СчитатьНерабочиеДниКарантинаРабочими, РегистрыСведений.УчетнаяПолитикаПоНДФЛ.Получить('20200101', Новый Структура("Организация", Организация)));

// Вставляем заглушку структуры, определяющую рабочие/нерабочие дни
СчитатьНерабочиеДниКарантинаРабочими = Новый Структура("СчитатьНерабочиеДниКарантинаРабочими", Ложь);

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

После изменения кода сохраните конфигурацию базы данных (клавиша F7) и запустите сеанс в режиме предприятия. Проблема с проведением кассовых и банковских документов будет успешно решена.

← На главную