При работе с программными продуктами 1С, особенно в связке с торговыми конфигурациями, такими как "Штрих-М: Торговое предприятие 7" или "1С:Управление торговлей", пользователи могут столкнуться с ошибкой "Поле не найдено 'ТаблицаТовары.ПрослеживаемыйКомплект'" во время проведения документа "Отчет о розничных продажах". Эта проблема часто проявляется после обмена данными и может быть довольно сложной для диагностики, так как затрагивает функционал прослеживаемости товаров, введенный в законодательство РФ для контроля за импортными товарами.
Давайте разберем эту ситуацию подробнее и рассмотрим комплексные шаги по ее устранению, опираясь на опыт других пользователей и официальную информацию.
Ошибка "Поле не найдено 'ТаблицаТовары.ПрослеживаемыйКомплект'" прямо указывает на то, что система 1С:Бухгалтерия 3.0 пытается получить доступ к полю ПрослеживаемыйКомплект во временной таблице ТаблицаТовары, но это поле отсутствует. Появление этого поля напрямую связано с внедрением Национальной системы прослеживаемости товаров. Это означает, что конфигурация 1С:Бухгалтерия ожидает обработки данных, относящихся к прослеживаемым товарам, которые могли быть импортированы и попадают под требования законодательства. Отсутствие этого поля может быть вызвано несколькими факторами: либо в системе 1С:Бухгалтерия не активирован соответствующий функционал, либо версия программы устарела, либо данные поступают из внешней системы без необходимой информации о прослеживаемости, либо есть проблемы с режимом совместимости.
Для эффективного решения данной проблемы мы предлагаем пройти по нескольким ключевым пунктам, которые могут быть причиной возникновения ошибки.
Прежде всего, крайне важно убедиться, что ваша конфигурация 1С:Бухгалтерия 3.0 обновлена до последней актуальной версии. Функционал прослеживаемости товаров был добавлен в 1С:Бухгалтерию 8, начиная с версии 3.0.95 (в соответствии с Федеральным законом от 09.11.2020 № 371-ФЗ). Если версия вашей Бухгалтерии ниже, то поле ПрослеживаемыйКомплект может просто отсутствовать в структуре данных, что и вызывает ошибку. Мы рекомендуем регулярно обновлять конфигурации 1С, чтобы использовать все актуальные возможности и соответствовать изменениям законодательства.
Даже если у вас установлена актуальная версия программы, функционал прослеживаемости может быть отключен в настройках. Чтобы его активировать, выполните следующие шаги:
Включение этой опции позволяет системе корректно обрабатывать все данные, связанные с прослеживаемыми товарами.
Для товаров, которые подлежат прослеживаемости, необходимо корректно настроить их карточки номенклатуры. Мы рекомендуем проверить следующее:
Как было замечено на форуме, в некоторых случаях проблема могла быть связана с некорректной настройкой валюты регламентированного учета. Несмотря на то, что это не напрямую относится к прослеживаемости, это базовая настройка, которая может влиять на проведение многих документов. Убедитесь, что в константе Константа.ВалютаРегламентированногоУчета установлена правильная валюта (например, Российский рубль).
При обмене между "Штрих-М: Торговое предприятие 7" (или УТ 11.5) и 1С:Бухгалтерией 3.0 используются планы обмена и правила конвертации данных. Если эти правила устарели и не учитывают новые поля, связанные с прослеживаемостью, то данные могут загружаться некорректно, что приведет к ошибке. Мы советуем проверить актуальность используемых правил обмена. В некоторых случаях может потребоваться запросить обновленный комплект правил обмена у разработчиков "Штрих-М" или фирмы 1С, если обмен ведется через типовые механизмы.
Это один из ключевых моментов, который, по всей видимости, помог пользователям форума. Режим совместимости определяет, с какой версией платформы 1С:Предприятие конфигурация или расширение должно быть совместимо. Если основная конфигурация или какое-либо расширение работает в режиме совместимости, который ниже, чем требуется для функционала прослеживаемости (например, 8.3.10, а функционал требует 8.3.16 или выше), это может привести к тому, что новые поля будут невидимы для кода, работающего в более старом режиме.
Чтобы проверить и, при необходимости, изменить режим совместимости:
Например, если в вашей системе есть расширение, которое было разработано для более старой версии платформы и его режим совместимости установлен, скажем, на 8.3.10, оно может игнорировать или некорректно обрабатывать поля, введенные в более поздних версиях, что потенциально приводит к ошибке "Поле не найдено". Мы должны синхронизировать режимы совместимости, чтобы избежать таких конфликтов.
Ошибки могут возникать из-за несоответствия реквизитов прослеживаемости (РНПТ, количество, стоимость, единица измерения) между данными, поступающими из "Штрих-М", и ожиданиями 1С:Бухгалтерии, или данными Национальной системы прослеживаемости. Мы тщательно проверяем, что в исходной системе ("Штрих-М") учет прослеживаемости ведется корректно и что все необходимые данные передаются в 1С:Бухгалтерию.
Если в "Отчете о розничных продажах" фигурируют комплекты, содержащие прослеживаемые товары, для них также требуется специальная настройка и указание РНПТ (регистрационный номер партии товара) входящих в комплект прослеживаемых товаров. Мы проверяем, что все компоненты комплекта правильно учтены и имеют необходимые реквизиты прослеживаемости.
В редких случаях после обновления могли "слететь" настройки формы документа. Мы можем попробовать проверить и вернуть видимость полей, связанных с прослеживаемостью, через меню "Еще" -> "Изменить форму" непосредственно в документе "Отчет о розничных продажах".
Для более глубокого понимания проблемы, особенно если предыдущие шаги не помогли, мы можем прибегнуть к отладке. Сообщение об ошибке указывает на конкретную строку кода: {Документ.ОтчетОРозничныхПродажах.МодульМенеджера(3192)}: Ошибка при вызове метода контекста (ВыполнитьПакет) Результат = Запрос.ВыполнитьПакет;. Это означает, что ошибка происходит при выполнении пакета запросов, формируемых в модуле менеджера документа.
Мы рассмотрим следующий алгоритм отладки:
Запрос.ВыполнитьПакет();).Запрос. Особое внимание уделим свойству Запрос.Текст, которое содержит текст выполняемого SQL-запроса. Именно здесь мы сможем увидеть, где формируется временная таблица ТаблицаТовары и почему в ней отсутствует поле ПрослеживаемыйКомплект.Примерная структура кода, которую мы будем искать и анализировать:
// ...
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ИдентификаторДокумента", Документ.Ссылка);
// ... здесь формируется текст запроса, возможно, с использованием временных таблиц
Запрос.Текст = "
|ВЫБРАТЬ
| Товары.Ссылка КАК Товар,
| Товары.Количество КАК Количество,
| // ... другие поля
| ТОГДА ТаблицаТовары.ПрослеживаемыйКомплект // <--- Ожидается это поле
|ИЗ
| Документ.ОтчетОРозничныхПродажах.Товары КАК Товары
| // ... возможно, здесь создается или заполняется временная таблица ТаблицаТовары
|;
// ... далее пакет запросов
|ВЫБРАТЬ
| ТаблицаТовары.Товар,
| ТаблицаТовары.Количество,
| ТаблицаТовары.ПрослеживаемыйКомплект // <--- Здесь происходит обращение к полю, которого нет
|ИЗ
| #ВТ_ТаблицаТовары КАК ТаблицаТовары
|ГДЕ
| ТаблицаТовары.ПрослеживаемыйКомплект ЕСТЬ НЕОПРЕДЕЛЕНО
|;
";
// ...
Результат = Запрос.ВыполнитьПакет(); // <--- Здесь возникает ошибка
// ...
Анализируя Запрос.Текст, мы выясним, на каком этапе и при каких условиях должно было появиться поле ПрослеживаемыйКомплект, и почему оно отсутствует в момент выполнения запроса. Это позволит нам точно определить, является ли проблема следствием отсутствия данных в источнике, неактивной функции или конфликта версий/режимов совместимости.
Таким образом, для успешного устранения ошибки "Поле не найдено 'ТаблицаТовары.ПрослеживаемыйКомплект'" необходим комплексный подход. Начнем с обновления конфигурации и проверки основных настроек прослеживаемости, затем перейдем к анализу правил обмена и, самое главное, режимов совместимости. Если проблема сохраняется, глубокая отладка запроса в модуле документа поможет выявить корневую причину.