При выполнении типового обмена данными между конфигурациями Управление торговлей версии 11.5 и Бухгалтерия предприятия версии 3.0 специалисты часто сталкиваются с ошибкой выполнения обработчика ПриОтправкеДанных. Данная проблема проявляется в момент выгрузки документа Приобретение товаров и услуг. Система выдает сообщение, связанное с невозможностью выполнения запроса, в частности: Поле не входит в группу «Товары.СтавкаНДС.ПеречислениеСтавкаНДС».
Давайте подробно разберем, почему это происходит, как провести диагностику и какими методами можно устранить эту неисправность, чтобы восстановить корректный обмен данными.
Ошибка такого типа является классическим примером рассинхронизации логики работы кода и структуры метаданных конфигурации после очередного обновления. В процессе разработки механизмов обмена (особенно при использовании Конвертации данных 3.0) разработчики 1С формируют сложные запросы для сбора данных из табличных частей объектов.
Суть ошибки заключается в следующем:
МенеджерОбменаЧерезУниверсальныйФормат выполняется запрос к данным документа.GROUP BY.СтавкаНДС, однако текст самого запроса в модуле обмена остался без изменений или был дополнен не полностью.Данная проблема носит системный характер и чаще всего исправляется выпуском обновления от фирмы 1С. Тем не менее, для обеспечения непрерывности бизнес-процессов, мы можем применить временное решение.
Наиболее безопасным способом исправления ошибки в промышленной среде является использование механизма Расширения конфигурации. Это позволяет не вносить изменения в основную конфигурацию и сохранить ее на поддержке.
Чтобы устранить ошибку, выполним следующие действия:
МенеджерОбменаЧерезУниверсальныйФормат.Заимствование.Изменение и контроль (или просто переопределив метод) добавьте отсутствующее поле СтавкаНДС в секцию группировки запроса.Примерно код должен выглядеть следующим образом (логика добавления):
// Внутри запроса к данным документа необходимо обеспечить наличие поля в группировке
ТекстЗапроса = "ВЫБРАТЬ
| ТаблицаТовары.Ссылка,
| ...
| ТаблицаТовары.СтавкаНДС КАК СтавкаНДС
|ИЗ
| Документ.ПриобретениеТоваровУслуг.Товары КАК ТаблицаТовары
|СГРУППИРОВАТЬ ПО
| ТаблицаТовары.Ссылка,
| ТаблицаТовары.СтавкаНДС";
После внесения правок сохраните расширение и обновите конфигурацию базы данных. Это позволит движку обмена успешно выполнять запрос, так как теперь все поля, используемые в выборке, корректно сгруппированы.
Несмотря на то, что использование расширения решает проблему «здесь и сейчас», важно понимать риски:
УТ 11.5.12.64 данная проблема была официально устранена. Всегда проверяйте наличие более актуального релиза перед началом работы по исправлению кода.Бухгалтерия предприятия, если ошибка при обмене возникает при выгрузке из неё.Используя данный подход, вы сможете быстро восстановить работоспособность обмена между типовыми конфигурациями и обеспечить стабильную работу учета вашего предприятия.