Рассмотрим ситуацию, с которой столкнулись многие пользователи конфигурации 1С:Бухгалтерия 3.0. При попытке сформировать Книгу продаж или Книгу покупок за 3 или 4 квартал 2021 года, программа внезапно прерывает работу и выдает ошибку. При этом за 1 и 2 квартал, а также за следующие годы отчет может формироваться корректно (хоть и пустым). Разберем по шагам, из-за чего возникает эта проблема и как ее правильно устранить.
Проанализируем текст ошибки, который выводится в служебном сообщении платформы:
Поле объекта не обнаружено (МассивСвРегНом)
{ОбщийМодуль.УчетНДС.Модуль(22914)}: Если Не ЗначениеЗаполнено(СтруктураПараметров.МассивСвРегНом)
{Отчет.КнигаПродаж.МодульМенеджера(1717)}: УчетНДС.ВывестиГраницуСтроки(СтруктураПараметров, СтруктураСекций);
{EF_10234446 Отчет.КнигаПродаж.МодульМенеджера(135)}: ?(СтруктураПараметров.Свойство("ТабличнаяЧасть"),СтруктураПараметров.ТабличнаяЧасть, Неопределено));
Посмотрим на стек вызовов более детально. Мы видим, что ошибка возникает при попытке обращения к свойству МассивСвРегНом. Эта переменная расшифровывается как «Массив сведений регистрационных номеров» и напрямую связана с учетом прослеживаемых товаров (РНПТ).
Начиная с 3 квартала 2021 года, согласно Приказу ФНС России от 08.06.2021 № ЕД-7-26/547@, начали действовать новые формы Книг покупок и продаж. В них добавили специальные графы для реквизитов прослеживаемости. Летом 2021 года фирма «1С» выпустила оперативное исправление — патч EF_10234446, который должен был исправлять алгоритмы вывода этих данных. Однако, когда конфигурацию (например, до релиза 3.0.103.21) обновили, разработчики встроили новые механизмы прослеживаемости уже в основной код. Старый патч EF_10234446 остался в системе и начал конфликтовать с обновленными общими модулями, вызывая ошибку «Поле объекта не обнаружено», особенно если организация вообще не вела учет прослеживаемых товаров.
Выясним причину окончательно: проблема заключается в устаревшем расширении. Нам необходимо его удалить. Разберем несколько способов, как это сделать в зависимости от вашей версии 1С.
Для ПРОФ и КОРП версий:
EF_10234446.Также удаление можно произвести через Конфигуратор:
EF_10234446, выделите его и удалите (клавиша Delete).Для Базовых версий:
Так как Конфигуратор в базовых версиях имеет ограничения, а патчи иногда блокируются для удаления через пользовательский интерфейс, удаляйте их через командную строку пакетного запуска 1С (используя параметр запуска конфигуратора /DeletePatch), либо скачайте специальную обработку от 1С для управления исправлениями.
Рассмотрим ситуацию: вы удалили патч, но ошибка всё равно сохраняется. Это классическая проблема «залипшего» кэша 1С. Пользователи на форумах часто советуют просто удалить базу из списка при запуске и добавить ее заново. Проанализируем этот метод: он действительно обновляет путь, но старые временные файлы остаются на жестком диске мертвым грузом.
Сделаем очистку кэша правильно:
/ClearCache и запустите базу один раз.%AppData%\1C\1cv8 и %LocalAppData%\1C\1cv8.a1b2c3d4-0000...). Внимание: не удаляйте файл ibases.v8i, так как в нем хранится список ваших баз.После удаления конфликтных данных, обязательно загрузите новые официальные исправления. Законодательство по НДС часто меняется, и в 1С регулярно корректируют контрольные соотношения.
В некоторых случаях (как отметил один из участников обсуждения), если стандартные методы недоступны прямо сейчас, программист 1С может временно написать собственное расширение конфигурации, в котором принудительно обходит проблемный участок кода в модуле УчетНДСПереопределяемый или Отчет.КнигаПродаж.МодульМенеджера, подставляя значение Неопределено вместо несуществующей структуры прослеживаемости. Однако мы настоятельно рекомендуем использовать штатный механизм удаления сбойного патча, описанный выше, чтобы избежать накопления программных «костылей» в базе.
Выполнив все описанные шаги, вы полностью избавитесь от ошибки при обращении к МассивСвРегНом, и ваша Книга продаж за 3 и 4 квартал будет формироваться без ошибок, корректно обрабатывая как обычные, так и прослеживаемые товары.