К статье
Практический материал

Справочники и Данные · 11 мин

Как обойти соответствие в 1С: практическое руководство

Как обойти соответствие в 1С: сопоставление номенклатуры, обход соответствий при обмене и загрузке данных, типовые механизмы и практические приёмы.

Термин «соответствие» в 1С встречается сразу в нескольких контекстах: сопоставление номенклатуры поставщиков при загрузке прайсов, соответствие объектов при обмене между базами, соответствие счетов в плане счетов, тип Соответствие в языке запросов и встроенном языке. Задача «обойти соответствие» обычно означает одно из двух: либо нужно, чтобы система не подставляла автоматически найденные связи, либо нужно обойти ограничения механизма сопоставления, когда он работает не так, как требуется.

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

Определяем, какое именно соответствие мешает работе

Прежде чем что-то менять, важно понять, с каким механизмом вы имеете дело. В типовых конфигурациях (УТ, ERP, Бухгалтерия, Комплексная автоматизация) чаще всего встречаются: регистр «Номенклатура контрагентов» для сопоставления позиций поставщиков, регистры соответствий объектов при синхронизации данных, соответствие счетов и аналитики, а также программный тип «Соответствие» в коде.

Признак того, что проблема именно в сопоставлении номенклатуры: при загрузке документов от поставщика или прайсов подставляется не та позиция, либо одна позиция поставщика «привязана» к чужой карточке. Признак проблемы соответствия при обмене: объекты создаются дублями, хотя в базе-источнике они уже есть, либо наоборот — документы «слипаются» с чужими объектами.

При загрузке подставляется чужая номенклатураНеверная запись в регистре соответствий

Проверьте регистр «Номенклатура контрагентов» по артикулу и наименованию поставщика

При обмене создаются дублиСоответствие объектов не найдено или сброшено

Проверьте регистры соответствий объектов в настройках синхронизации

Один артикул у разных поставщиковКонфликт автопоиска по артикулу

Проверьте, ведётся ли сопоставление в разрезе контрагента

Обход сопоставления номенклатуры поставщиков

Самый частый запрос — «обойти» автоматическое сопоставление при загрузке прайсов и электронных документов. В типовых конфигурациях связь хранится в регистре сведений «Номенклатура контрагентов» (в некоторых конфигурациях — «Номенклатура поставщиков»). Если запись там неверная, система будет подставлять неправильную карточку при каждой загрузке.

Порядок действий: откройте регистр через список номенклатуры (команда «Номенклатура поставщиков» в карточке или через «Все функции» → «Регистры сведений»), найдите запись по контрагенту и артикулу, удалите её или исправьте ссылку на правильную номенклатуру. После этого при следующей загрузке система либо предложит сопоставить вручную, либо создаст новую позицию — в зависимости от настроек.

Если нужно, чтобы система вообще не подставляла соответствия автоматически, проверьте настройки загрузки: в обработках загрузки прайсов и в механизмах ЭДО обычно есть варианты действий при найденном соответствии — «подставлять автоматически», «запрашивать подтверждение» или «создавать новую позицию». Переключение в ручной режим — самый безопасный способ «обойти» автоподстановку без потери данных.

Порядок действий при неверном сопоставлении
  1. 1
    Найдите неверную запись в регистре «Номенклатура контрагентов» по артикулу или наименованию поставщика
  2. 2
    Удалите запись или переназначьте её на правильную карточку номенклатуры
  3. 3
    Проверьте настройки обработки загрузки: включите ручное подтверждение сопоставления
  4. 4
    Выполните тестовую загрузку одного документа и проверьте, какая номенклатура подставилась
  5. 5
    Проверьте, не появились ли дубли номенклатуры после загрузки

Обход соответствий при обмене между базами

При синхронизации (например, между УТ и Бухгалтерией) соответствия объектов хранятся в специальных регистрах. Если объект в базе-приёмнике был удалён или создан заново, старая связь может указывать «в никуда», и обмен начнёт создавать дубли или выдавать ошибки.

Стандартный способ решения — очистка соответствий в настройках синхронизации. В типовых конфигурациях в настройке обмена есть команда сопоставления объектов, где можно вручную установить или сбросить связи перед первой выгрузкой. Если дубли уже созданы, сначала выполняется сопоставление вручную по ключевым полям (ИНН + КПП для контрагентов, артикул для номенклатуры), затем повторная выгрузка.

Программный обход возможен в правилах конвертации (для обменов через «Конвертацию данных»): в обработчиках поиска объекта можно изменить способ поиска — например, искать только по уникальному идентификатору, отключить поиск по реквизитам или наоборот добавить собственные поля поиска. Это требует навыков работы с правилами обмена и тестирования на копии базы.

Соответствие счетов и аналитики в бухгалтерском учёте

В «1С:Бухгалтерии» соответствия встречаются в настройках счетов учёта номенклатуры, контрагентов, а также в механизме сопоставления счетов при загрузке выписок и документов. Если при загрузке банковской выписки контрагент подставляется неверно, причина обычно в дублях контрагентов с одинаковым ИНН или в неверной связке «договор — контрагент».

Обход здесь заключается в ручном управлении сопоставлением: в журнале загрузки выписки можно для конкретных строк указать контрагента и договор вручную, а также снять флаг автоматического создания новых элементов. Для счетов учёта номенклатуры проверьте регистр «Счета учёта номенклатуры»: лишние записи с более высоким приоритетом перекрывают нужные настройки, и их достаточно удалить или скорректировать.

Тип «Соответствие» в языке 1С: типичные задачи обхода

Для разработчиков «обойти соответствие» чаще всего означает перебрать пары «ключ — значение» в цикле или получить значение без ошибки, если ключа нет. Обход коллекции выполняется циклом «Для каждого КлючИЗначение Из Соответствие Цикл», а безопасное получение значения — через проверку на Неопределено, поскольку обращение к несуществующему ключу возвращает Неопределено, а не ошибку.

Для каждого Пара Из СоответствиеСтавок Цикл

Сообщить("Ключ: " + Пара.Ключ + ", значение: " + Пара.Значение);

КонецЦикла;

Ставка = СоответствиеСтавок.Получить(КодСтавки);

Если Ставка = Неопределено Тогда

Ставка = 20; // значение по умолчанию

КонецЕсли;

Типичная ошибка — использование Соответствие там, где нужен порядок элементов: соответствие не гарантирует порядок обхода. Если важна последовательность, используйте массив структур или таблицу значений, а соответствие применяйте только для быстрого поиска по ключу.

Типичные ошибки
01
Удаление записей соответствий без резервной копии — при ошибке восстановить связи придётся вручную по каждой позиции
02
Ожидание порядка элементов при обходе Соответствия в коде — порядок не гарантируется, логика ломается
03
Очистка соответствий обмена в рабочей базе без сопоставления — приводит к массовым дублям контрагентов и номенклатуры
04
Исправление связи только для одного поставщика, когда тот же артикул с неверной привязкой есть у нескольких контрагентов

Проверка результата после изменений

После любых манипуляций с соответствиями результат нужно проверять на контрольном примере. Для номенклатуры поставщиков: загрузите один реальный документ или прайс и убедитесь, что позиции сопоставились правильно или система запросила ручное подтверждение. Для обмена: выполните выгрузку одного объекта и проверьте, что в базе-приёмнике обновился существующий объект, а не создан новый.

Дополнительно полезно проверить отчётами: поиск дублей номенклатуры по артикулу и наименованию, поиск дублей контрагентов по ИНН. Если после изменений дубли продолжают появляться — значит, соответствие сбрасывается где-то ещё, например в правилах обмена или в настройках обработки загрузки.

Контрольные точки

Как проверить результат

Загрузка тестового документа от поставщика
Норма

Подставляется правильная номенклатура или запрашивается подтверждение

Тревожный признак

Снова подставляется чужая позиция или создаётся дубль

Тестовая выгрузка одного объекта через обмен
Норма

Объект обновляется в базе-приёмнике без создания копии

Тревожный признак

Создаётся новый объект с тем же наименованием

Поиск дублей по ИНН и артикулу после изменений
Норма

Дублей нет, связи указывают на корректные карточки

Тревожный признак

Дубли продолжают появляться после каждой загрузки

Когда самостоятельного обхода недостаточно

Есть ситуации, где лучше привлечь специалиста по 1С: изменение правил конвертации данных, доработка типовых обработок загрузки, массовая чистка регистров соответствий в большой базе. Ошибка в этих местах затрагивает обмены и учётные данные, а откат без копии базы может быть невозможен.

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

Итог

Что важно запомнить

Обход соответствия в 1С — это не взлом механизма, а управление им: исправление записей в регистрах соответствий, переключение автоподстановки в ручной режим, настройка правил поиска при обмене. Любые массовые изменения делайте на копии базы и проверяйте результат на контрольном примере.

Частые вопросы

Можно ли полностью отключить сопоставление номенклатуры поставщиков?

Полностью отключить механизм в типовых конфигурациях нельзя, но можно перевести его в ручной режим: в настройках загрузки выбрать вариант «запрашивать подтверждение» или «создавать новую позицию». Тогда автоматическая подстановка по найденным соответствиям выполняться не будет.

Почему после очистки соответствий при обмене появились дубли?

После сброса связей система ищет объекты по реквизитам поиска (наименование, ИНН, артикул). Если в базах данные заполнены по-разному, поиск не срабатывает и создаются новые объекты. Решение — ручное сопоставление в настройке синхронизации перед первой выгрузкой после очистки.

Как исправить соответствие, если неверная связь у одного артикула у нескольких поставщиков?

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

Чем отличается Соответствие от Структуры в языке 1С?

Структура имеет фиксированный набор именованных ключей, заданный при создании, а Соответствие позволяет добавлять и удалять произвольные ключи любого типа в процессе работы. Для динамических списков пар «ключ — значение» используется Соответствие.

Опасно ли удалять записи из регистров соответствий вручную?

Удаление отдельных неверных записей безопасно при наличии резервной копии. Опасна массовая очистка без плана восстановления: связи придётся пересоздавать вручную, а при обмене это почти гарантированно приведёт к дублям объектов.

Где искать настройку автоподстановки соответствий при загрузке прайсов?

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