Поле не найдено "Контрагенты.ЭтоГруппа": почему в КА 2, УТ 11 и ERP 2 у контрагентов нет групп
Условие НЕ Контрагенты.ЭтоГруппа привычно по Бухгалтерии, но в торговых конфигурациях справочник контрагентов не иерархический, и запрос падает. Разбор и рабочий запрос на примере поиска дублей по ИНН, там же про отсутствующее поле Код.
Задача
Запрос по справочнику контрагентов падает с текстом "Поле не найдено Контрагенты.ЭтоГруппа". В Бухгалтерии предприятия такой же запрос работает. Чаще всего это условие приходит вместе с запросом, который писали для другой конфигурации или взяли из статьи про Бухгалтерию.
Решение
В Комплексной автоматизации 2, Управлении торговлей 11 и ERP 2 справочник Контрагенты не иерархический: у него нет ни групп, ни поля ЭтоГруппа, ни Родителя. Группировка контрагентов там делается через партнеров, сегменты и бизнес-регионы, а не папками справочника. Условие на группы нужно просто убрать.
У этого же справочника нет и поля Код, привычного по Бухгалтерии: попытка вывести Контрагенты.Код дает ту же ошибку "Поле не найдено". Вместо кода в отчетах показывают партнера: у каждого контрагента он есть.
Ниже рабочий запрос поиска дублей контрагентов по ИНН для торговой конфигурации: без условия на группы и без поля Код, зато с партнером.
ВЫБРАТЬ Контрагенты.ИНН КАК ИНН, КОЛИЧЕСТВО(Контрагенты.Ссылка) КАК Количество ПОМЕСТИТЬ ДублиИНН ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.ИНН <> "" СГРУППИРОВАТЬ ПО Контрагенты.ИНН ИМЕЮЩИЕ КОЛИЧЕСТВО(Контрагенты.Ссылка) > 1 ; ВЫБРАТЬ Контрагенты.ИНН КАК ИНН, Дубли.Количество КАК ЭлементовСЭтимИНН, Контрагенты.Наименование КАК Наименование, Контрагенты.Партнер.Наименование КАК Партнер, Контрагенты.ПометкаУдаления КАК ПометкаУдаления ИЗ ДублиИНН КАК Дубли ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты ПО Дубли.ИНН = Контрагенты.ИНН УПОРЯДОЧИТЬ ПО ЭлементовСЭтимИНН УБЫВ, ИНН, Наименование ; УНИЧТОЖИТЬ ДублиИНН
Что учесть
- Если один запрос должен работать и в Бухгалтерии, и в торговых конфигурациях, условие на группы выносится в отдельную ветку текста запроса или добавляется программно по наличию реквизита в метаданных.
- В Бухгалтерии 3.0 группы у контрагентов есть, там условие НЕ Контрагенты.ЭтоГруппа обязательно: см. вкладку БП 3.0 в решении Дубли контрагентов по ИНН.
- Проверять наличие поля проще всего в справке по структуре базы или в конструкторе запроса, а не по памяти: имена реквизитов у типовых конфигураций расходятся сильнее, чем кажется.
Как воспользоваться
- Выберите вкладку своей конфигурации над кодом: под каждой лежит запрос, выполненный именно в этой конфигурации.
- Скачайте обработку под ней и откройте в 1С через "Файл, Открыть". Форма покажет поля отбора, результат появится в той же форме таблицей.
- Нужно иначе: скопируйте запрос кнопкой над кодом и подставьте в консоль запросов или в свою обработку. Все параметры перечислены в тексте, значения по умолчанию видны в обработке.
- Хотите то же самое, но под свою базу и свои поля: подключите базу к мосту и попросите ИИ доработать этот запрос. Он увидит структуру вашей конфигурации и проверит результат на ваших данных.
Комментарии
Нашли ошибку в коде, знаете, как лучше, или запрос повел себя иначе в вашей конфигурации: напишите. Комментарии открываются после проверки, на вопросы отвечаем здесь же. Реклама и ссылки на посторонние сайты не проходят.