Как перенести контрагентов с адресами из КА 1.1 в БП 3.0?

Программист 1С v8.3 (Обычные формы) 1С:Комплексная автоматизация Управленческий учет IT и автоматизация бизнеса
← На главную

Перенос данных из устаревших конфигураций, таких как «Комплексная автоматизация 1.1» (КА 1.1), в современные решения на базе БСП 3.0 (например, «Бухгалтерия предприятия 3.0») часто вызывает трудности у технических специалистов. Основная проблема заключается в принципиальном различии архитектуры хранения контактной информации.

В этой статье мы подробно разберем, как «ловчее» всего выполнить эту задачу, рассмотрим различные методы — от профессиональной разработки правил обмена до простых «быстрых» способов с использованием Excel.

Различие в архитектуре: почему нельзя просто скопировать поля?

Прежде чем приступать к переносу, проанализируем ситуацию. В КА 1.1 (аналогично УПП 1.3 и УТ 10.3) адреса и телефоны хранятся в регистре сведений КонтактнаяИнформация. В БП 3.0 контактная информация переместилась непосредственно внутрь объектов и хранится в табличной части КонтактнаяИнформация справочника Контрагенты.

Кроме того, современные конфигурации используют формат JSON для хранения структурированного адреса по ФИАС, в то время как старые базы опирались на КЛАДР и строковую структуру. Простое копирование строки Представление может привести к тому, что адрес в новой базе будет считаться некорректным и его придется перебивать вручную для сдачи отчетности.

Способ 1: Использование «Конвертации данных 2.0» (КД 2)

Это наиболее правильный и гибкий метод, если вам нужно переносить данные неоднократно или вы хотите полностью контролировать процесс. Рассмотрим по шагам, как настроить правила в КД 2.0 для трансформации данных из регистра в табличную часть.

Для реализации этого метода нам необходимо в ПКО (Правило конвертации объекта) для контрагентов настроить ПКС (Правило конвертации свойства) для табличной части:

  1. Создаем ПКС, где Приемник — табличная часть КонтактнаяИнформация. Источник оставляем пустым.
  2. В обработчике события ПередВыгрузкой этого ПКС пишем код, который сформирует таблицу данных на лету.

Разберем пример кода для заполнения коллекции данных:


// Создаем таблицу, структура которой совпадает с ТЧ "КонтактнаяИнформация" в БП 3.0
КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов.Колонки.Добавить("Тип");
КоллекцияОбъектов.Колонки.Добавить("Вид");
КоллекцияОбъектов.Колонки.Добавить("Представление");
КоллекцияОбъектов.Колонки.Добавить("ЗначенияПолей"); // Для хранения структуры

// Запрашиваем данные из регистра старой базы
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|	КИ.Тип,
|	КИ.Вид,
|	КИ.Представление,
|	КИ.Поля КАК ЗначенияПолей
|ИЗ
|	РегистрСведений.КонтактнаяИнформация КАК КИ
|ГДЕ
|	КИ.Объект = &Объект";

Запрос.УстановитьПараметр("Объект", Источник);
Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл
    НоваяСтрока = КоллекцияОбъектов.Добавить();
    ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
КонецЦикла;

Важный момент: Чтобы данные корректно сопоставились, убедитесь, что Виды контактной информации в обеих базах называются одинаково или настройте для них отдельное ПКО.

Способ 2: Использование типовых правил перехода

Зачастую программисты пытаются «изобрести велосипед», забывая, что фирма «1С» уже подготовила правила для перехода с типовых конфигураций. Поскольку справочники КА 1.1 практически идентичны Управлению торговлей 10.3, мы можем воспользоваться этим.

Посмотрим, где найти эти правила:

  1. Зайдите в каталог шаблонов обновлений 1С на вашем диске (обычно это AppData/Roaming/1C/1cv8/tmplts/...).
  2. Найдите папку с актуальным релизом БП 3.0.
  3. В подпапке Обмены данными часто лежат файлы .xml с правилами для УТ 10.3 или УПП 1.3.

Эти правила уже содержат в себе всю логику по извлечению данных из регистра и преобразованию их в формат, понятный для БП 3.0. Вам достаточно загрузить их в обработку Универсальный обмен данными XML.

Способ 3: Загрузка через Excel (самый «ловчий» для разового переноса)

Если вы не хотите связываться с КД 2.0 и вам нужно перенести данные один раз, воспользуемся методом Запрос + Excel + Стандартная загрузка. Основная сложность здесь — вывести адреса в одну строку с контрагентом.

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


ВЫБРАТЬ
	Контрагенты.Наименование КАК Наименование,
	Контрагенты.ИНН КАК ИНН,
	МАКСИМУМ(ВЫБОР КОГДА КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформация.ЮрАдресКонтрагента) ТОГДА КИ.Представление КОНЕЦ) КАК ЮрАдрес,
	МАКСИМУМ(ВЫБОР КОГДА КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформация.ФактАдресКонтрагента) ТОГДА КИ.Представление КОНЕЦ) КАК ФактАдрес
ИЗ
	Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ 
	РегистрСведений.КонтактнаяИнформация КАК КИ ПО КИ.Объект = Контрагенты.Ссылка
СГРУППИРОВАТЬ ПО
	Контрагенты.Наименование,
	Контрагенты.ИНН

Выполнив такой запрос в «Консоли запросов», вы получите плоскую таблицу. Далее действуем по схеме:

  1. Копируем результат в Excel.
  2. В БП 3.0 открываем Администрирование — Обслуживание — Загрузка данных из файла.
  3. Выбираем справочник Контрагенты и сопоставляем колонки. Программа автоматически создаст записи в табличной части контактной информации.

Способ 4: Встроенный помощник перехода в БП 3.0

Мало кто знает, что встроенный в «Бухгалтерию» помощник загрузки из 1С:Предприятие 8 умеет подключаться к базам через COM-соединение. Несмотря на то, что КА 1.1 может не быть в списке «рекомендуемых», механизм часто срабатывает, если выбрать «Загрузку из УТ 10.3».

Программа сама подключится к базе-источнику, найдет нужные метаданные и распределит адреса по полям. Это избавляет от необходимости писать код, но требует, чтобы обе базы были доступны на одном сервере/компьютере.

Рекомендации по проверке данных

После переноса обязательно проверьте несколько карточек контрагентов. Рассмотрим, на что обратить внимание:

Выбор метода зависит от ваших навыков: если вы уверенно владеете инструментом Конвертация данных, используйте его. Если нужно «здесь и сейчас» — метод с запросом и Excel будет самым быстрым и наглядным.

← На главную