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

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

Как соединить два справочника в 1С

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

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

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

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

Третья задача — получить в отчёте или выгрузке данные сразу из двух справочников. Это делается соединением таблиц в запросе и не требует изменения самих данных.

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

Прежде чем что-либо делать, чётко сформулируйте задачу. От этого зависит и инструмент, и объём рисков. Объединение дублей — обратимая в основном операция с автоматической заменой ссылок. Перенос между справочниками требует продумывания соответствия реквизитов. Соединение в запросе вообще не меняет данные.

Проверьте, есть ли по элементам, которые вы собираетесь объединять, движения в документах, регистрах и планах обмена. Если элемент используется в проведённых документах, удалять его напрямую категорически нельзя — только через механизм замены ссылок.

Маршрут решения

Как выбрать действие

В одном справочнике есть два и более элемента, обозначающих один объектИспользуйте обработку «Поиск и удаление дублей» с заменой ссылок
Нужно перенести элементы из одного справочника в другой с другой структуройИспользуйте обработку переноса или напишите код копирования с заменой ссылок
Нужно только видеть данные двух справочников вместе в отчётеСделайте соединение таблиц в запросе, данные не изменяйте
Объединяются данные из разных баз 1СИспользуйте конвертацию данных или универсальный обмен XML

Объединение дублей штатной обработкой

В типовых конфигурациях на платформе 1С:Предприятие 8.3 (УТ, ERP, Бухгалтерия, ЗУП) встроена обработка «Поиск и удаление дублей». Она находится в разделе «Администрирование» → «Обслуживание» → «Корректировка данных». В некоторых конфигурациях путь может отличаться, но обработка доступна и через «Все функции».

Порядок работы: выберите справочник, задайте правила поиска дублей (по наименованию, ИНН, артикулу и другим реквизитам), запустите поиск. Обработка покажет группы найденных дублей. Для каждой группы отметьте «оригинал» — элемент, который останется. Затем выполните объединение: программа автоматически заменит все ссылки на дубли ссылкой на оригинал во всех документах, регистрах и других объектах, после чего пометит дубли на удаление.

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

Порядок объединения дублей
  1. 1
    Сделайте резервную копию базы или выгрузку DT
  2. 2
    Откройте «Администрирование» → «Обслуживание» → «Поиск и удаление дублей»
  3. 3
    Выберите справочник и настройте правила сравнения (например, по ИНН и наименованию)
  4. 4
    Запустите поиск и просмотрите найденные группы дублей
  5. 5
    В каждой группе назначьте основной элемент (оригинал)
  6. 6
    Выполните объединение и дождитесь окончания замены ссылок
  7. 7
    Проверьте документы и отчёты, где участвовали дубли
  8. 8
    Удалите помеченные элементы через «Удаление помеченных объектов»

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

Когда нужно физически переместить элементы между разными справочниками, штатной кнопки нет — структура реквизитов у справочников разная, и система не знает, какое поле куда переносить. Здесь три рабочих варианта.

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

Второй — конвертация данных, если перенос регулярный или идёт между разными конфигурациями. Требует навыков настройки правил обмена.

Третий — программный перенос через встроенный язык: создаются новые элементы целевого справочника, заполняются реквизиты, затем выполняется замена ссылок со старых элементов на новые (метод «НайтиПоСсылкам» и последующая подмена, либо обработка «Поиск и замена значений»). Это самый контролируемый, но и самый трудоёмкий способ.

Соединение двух справочников в запросе

Если цель — только получить объединённые данные для отчёта или выгрузки, изменять данные не нужно. В языке запросов 1С используется соединение таблиц: левое, внутреннее или полное, а также объединение выборок через ОБЪЕДИНИТЬ.

Левое соединение подходит, когда нужны все элементы первого справочника и подтянутые по ключу данные второго. Внутреннее — когда нужны только совпадающие записи. ОБЪЕДИНИТЬ применяется, когда нужно вывести строки обоих справочников одним списком, например свести в одну таблицу два разных классификатора.

bsl
ВЫБРАТЬ
	Номенклатура.Наименование,
	Штрихкоды.Штрихкод
ИЗ
	Справочник.Номенклатура КАК Номенклатура
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Штрихкоды КАК Штрихкоды
		ПО Номенклатура.Ссылка = Штрихкоды.Владелец

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

Проверка результата после объединения

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

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

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

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

Ссылки в документах
Норма

Везде стоит ссылка на оставшийся (основной) элемент

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

Отображается «Объект не найден» или пустое поле

Обороты в отчётах
Норма

Суммы по объединённому элементу равны сумме оборотов бывших дублей

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

Обороты изменились или часть движений пропала

Остатки дублей
Норма

Дубли помечены на удаление и не используются

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

Дубли остались активными и продолжают выбираться в документах

Типичные ошибки и ограничения

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

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

Третья группа проблем — права и обмены. Если база участвует в обмене (РИБ, синхронизация с другими программами), объединение элементов может привести к коллизиям при обмене. Уточните у администратора, как механизм объединения согласуется с настроенными планами обмена.

Типичные ошибки
01
Удаление дубля напрямую без замены ссылок — в документах появляются «битые» ссылки
02
Объединение элементов с разными ИНН или артикулами — необратимое смешивание данных разных объектов
03
Работа без резервной копии — при ошибке откатить массовую замену ссылок штатными средствами нельзя
04
Запуск объединения в рабочее время в многопользовательской базе — блокировки и долгое ожидание
05
Игнорирование обменов данными — объединённые элементы могут конфликтовать при синхронизации

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

Можно ли отменить объединение дублей?

Штатной кнопки отмены нет. После замены ссылок и удаления дублей восстановить прежнее состояние можно только из резервной копии. Поэтому перед массовым объединением обязательно делайте выгрузку базы и сначала обрабатывайте небольшую тестовую группу элементов.

Что делать, если обработка «Поиск и удаление дублей» не находит очевидные дубли?

Проверьте правила поиска: по умолчанию сравнение может идти только по наименованию с учётом регистра или по совпадению всех сравниваемых реквизитов. Ослабьте условия (например, оставьте только ИНН) или добавьте поиск по похожим значениям. Также убедитесь, что у вас есть права на все сравниваемые реквизиты.

Как объединить элементы, если по ним очень много документов?

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

Чем отличается объединение дублей от замены ссылок?

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

Можно ли объединить два справочника из разных баз 1С?

Да, но не напрямую. Используйте выгрузку из одной базы и загрузку в другую через универсальный обмен XML, конвертацию данных или обработки загрузки из табличного документа. При этом нужно заранее решить, как сопоставлять элементы (по коду, наименованию, GUID), чтобы не создать новые дубли.

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

Если речь о соединении таблиц в запросе — причина в том, что к одному элементу присоединяется несколько записей из второй таблицы. Примените группировку, свёртку или предварительный подзапрос с группировкой присоединяемой таблицы. Если отчёт построен на СКД, проверьте настройки связей наборов данных.

Итог

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

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