Разберем достаточно распространенную и при этом нетривиальную задачу: перенос нормативно-справочной информации, а именно базы контрагентов, из устаревшей конфигурации 1С:Торговля и Склад 7.7 (ТиС) в современные решения на базе 1С 8.3 — Комплексную автоматизацию 2 (КА) или Управление торговлей 11 (УТ 11). Часто при попытке переноса разработчики сталкиваются с дублированием элементов, запутанной структурой справочников-источников и жесткими требованиями к структуре приемника. Проанализируем эти проблемы и найдем оптимальные решения.
Прежде чем приступать к написанию правил конвертации, рассмотрим, как хранятся данные в конфигурации-источнике. В ТиС пользователи и разработчики часто видят несколько справочников, которые кажутся дублирующими друг друга: Контрагенты, СвоиЮрЛица, ФизЛица, Фирмы. Выясним причину такой организации.
Это штатная идея 1С 7.7 для организации многофирменного учета и оформления внутригрупповых (межфирменных) операций. Представим ситуацию: в одной информационной базе ведется учет по двум организациям — "Организация А" и "Организация Б". Чтобы оформить продажу товаров от "Организации А" в пользу "Организации Б", необходимо, чтобы "Организация Б" выступала в роли контрагента-покупателя. Именно поэтому собственные фирмы дублируются в справочнике Контрагенты.
Технически в справочнике Фирмы существует реквизит ЮрЛицо, который имеет тип Справочник.СвоиЮрЛица. Половина реквизитов, отображаемых на форме фирмы, берется именно оттуда. В то же время в справочнике Контрагенты есть реквизит ЮрФизЛицо, ссылающийся либо на ФизЛица, либо на ЮрЛица (или СвоиЮрЛица). Прямой программной связи (ссылки) между справочником Фирмы и справочником Контрагенты нет — элементы заносятся туда параллельно.
Важный вывод: Если вам не требуется переносить историю межфирменных продаж, переносить справочник Фирмы (и связанные с ним СвоиЮрЛица) в справочник Контрагенты базы-приемника не нужно. Организации переносятся в справочник Организации.
Посмотрим на базу-приемник. В современных конфигурациях 1С реализована концепция разделения управленческой и регламентированной информации, что выражается в жесткой связке справочников Партнеры и Контрагенты.
Если попытаться перенести данные только в справочник Контрагенты, проигнорировав партнеров, возникнут ошибки. В конфигураторе можно увидеть, что у реквизита Партнер справочника Контрагенты в свойстве "Проверка заполнения" установлено значение "Выдавать ошибку". Типовые механизмы платформы 8.3 требуют этой связки.
У нас есть два пути решения этой проблемы:
НеизвестныйПартнер. Однако это сильно затруднит дальнейшее ведение взаиморасчетов и аналитику в базе.При переносе часто возникает проблема дублей. Рассмотрим причины их появления:
Контрагентах и у элемента в Юр. лицах.Настроим правильный поиск. Задавать логику поиска логичнее на этапе загрузки, так как именно база-приемник определяет, как идентифицировать объекты. В правилах конвертации объектов (ПКО) внутри обработчика "Поля поиска" создадим многоступенчатый алгоритм. Для этого используем системную переменную НомерВариантаПоиска, которая позволяет задать до 10 итераций.
Примерный алгоритм работы:
Чтобы избежать проблем с пересечением элементов, обязательно установите в КД 2.1 флаг "Продолжить поиск по реквизитам, если по идентификатору не нашли". Самый надежный метод избежать дублей из-за запутанной структуры словарей 7.7 — провести предварительную нормализацию НСИ (объединение дублирующихся записей) непосредственно в самой базе 7.7 с помощью обработок поиска и замены значений до начала процесса конвертации.
Разберем, как перенести свойства контрагентов в дополнительные реквизиты 8.3. В КА 2 и УТ 11 механизм дополнительных реквизитов реализован через табличные части справочников и План видов характеристик (ПВХ) Дополнительные реквизиты и сведения.
Напрямую сопоставить обычный реквизит из 7.7 с дополнительным реквизитом 8.3 в интерфейсе КД 2.1 невозможно. Применим следующий метод:
ПараметрыОбъекта.Поскольку структура справочника контрагентов в УТ 11 и КА 2 практически идентична, не стоит "изобретать велосипед". Найдите типовые правила конвертации переноса из ТиС 7.7 в УТ 11. Внимательно проанализируйте их: посмотрите, какие справочники переносятся, как настроены ПКО для Контрагенты и Партнеры, как реализован поиск. Возьмите эти правила за основу и доработайте под свои нужды.
Если настройка КД 2.1 кажется слишком сложной из-за особенностей 7.7, рассмотрите альтернативный вариант — обмен через формат EnterpriseData (Универсальный формат). Можно написать скрипт прямого чтения таблиц 7.7 через OLE/COM-соединение и формировать XML-файл в формате EnterpriseData. При загрузке такого файла типовые механизмы базы 1С 8.3 самостоятельно и корректно создадут нужную иерархию Партнеров и Контрагентов без риска нарушить логику конфигурации.