1С:Конвертация данных: Способ переноса дерева элементов справочников между разнородными конфигурациями.

Публикация № 57141

Разработка - Математика и алгоритмы

Данная задача возникает когда необходимо перенести справочники между конфигурациями у которых различается количество уровней. Например, количество уровней в справочнике "Номенклатура" в конфигурации "Торговля и Склад" - 5, а в конфигурации "Бухгалтерия" - 4. Самое простое решение - отбросить реквизит "Родитель" элементов справочника при выгрузке, но есть способ элегантнее. В данном случае мы не обсуждаем возможность изменения структуры справочника в базе-приемнике конфигурации "1С:Бухгалтерия".

Данная задача возникает, когда необходимо перенести справочники между конфигурациями у которых различается количество уровней (например, количество уровней в справочнике "Номенклатура" в конфигурации "Торговля и Склад" - 5, а в конфигурации "Бухгалтерия" - 4).

Самое простое решение - отбросить реквизит "Родитель" элементов справочника при выгрузке, но есть способ элегантнее. В данном случае мы не обсуждаем возможность изменения структуры справочника в базе-приемнике конфигурации "1С:Бухгалтерия".

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

Итак, как избавиться от подгруппы уровня №4? Разделим все множество элементов справочника на два множества:

  1. находящиеся на уровне 5,
  2. и находящиеся на уровне меньше 5-го.

Для этих двух групп создаем правила выгрузки:

Пятый уровень иерархии (вернее более четвертого)...

...и

Уровень иерархии 4 и меньше.

Для каждого из данных правил конвертации определяем условия выгрузки. Соответственно:

...и:

Для элементов, которые удовлетворяют первому правилу (уровень оказался менее 5) состав правила конвертации объекта обычен, в части конвертации реквизита "Родитель":

А для элементов с уровнем более 5 преобразуем реквизит "Родитель":

Вот и все. При загрузке элементы пятого уровня попадут в четвертый, группы четвертого уровня перенесены не будут.

Дополнение: Хотя, конечно, данное решение имеет и свои недостатки. Например, если мы выгружаем какие-либо документы имеющие реквизит "Номенклатура" - придется явно указывать по какому из двух правилу конвертировать данный реквизит, а для этого предварительно вычислять его уровень. Это же верно и для случая, когда выгружаем элементы переданные в качестве параметра форму выгрузки.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. ЛохНесс 150 23.06.08 13:10 Сейчас в теме
Фигасе статью сократил. ;-) В результате, утерян смысл предложенного решения.

По сути - изобретен велосипед. Достаточно посмотреть в типовые правила и увидеть простое решение.
В ПКА "Родитель --> Родитель" написать скрипт:
Код
Родитель = Источник.Родитель;
Если ПустоеЗначение(Родитель) = 1 Тогда Возврат (0) КонецЕсли;
Пока Родитель.Уровень() > 3 Цикл
    Родитель = Родитель.Родитель;
КонецЦикла;
Возврат(Родитель);
Показать полностью


При таком решении, разница между количеством уровней справочников может быть больше одного.
Светлый ум; skurser; begemot; asc; +4 Ответить
Оставьте свое сообщение

См. также

Как в 1С 7.7 сделать обмен на базе FTP

Файловые протоколы обмена, FTP 1С7.7<->1C7.7 v7.7 1cv7.md Бесплатно (free)

Выгрузка данных на FTP на примере в конфигурации Штрих-М Кассир 1.10.

12.05.2020    1458    Ignatov_mu    7    

Доработка конвертации данных КД2 (версии 2.1). Расширенная диагностическая информация при выгрузке по правилам из 1С 7.7 и при загрузке в 1С 7.7

Обмен данными 1С Перенос данных из 1С7.7 в 1C8.X Обмен через XML v7.7 v8 КД Бесплатно (free)

Есть очень неприятная особенность при настройке обмена по правилам КД2 в момент отладки на стороне 1С 7.7, как при выгрузке из 1С 7.7, так и при загрузке в 1С 7.7. Непонятно, в каком конкретно месте формирования или разбора данных XML файла в какой именно момент споткнулась программа (произошел сбой). Я нашел способ вывода дополнительной диагностики, теперь точно известно, на каком элементе данных XML споткнулся модуль выгрузки V77Exp.ert (модуль загрузки V77Imp.ert). Теперь отладка правил обмена на стороне 1С 7.7 стала простой, выполняется на порядок проще.

18.10.2019    5702    ksnik    0    

Читаем реквизиты по ИНН в 1С:7.7

Обмен через XML v7.7 1cv7.md Россия Бесплатно (free)

Чтение реквизитов контрагентов по ИНН при оформленной подписке на сервис 1С:Контрагенты

17.01.2017    18742    kudenzov    14    

Проблемы переноса данных бухгалтерского учета

Обмен через XML v77::БУ 1С7:Бух Россия БУ Бесплатно (free)

Спецы 1С для удобства конечного пользователя создали специальные решения, позволяющие по нажатию кнопки выгрузить данные. Попробовал и я...

03.02.2016    26483    lvictor58    5    

.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия

Разработка внешних компонент Математика и алгоритмы v7.7 v8 Бесплатно (free)

Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия, а так же генерация модулей на C# и 1С для подключения к событиям. Использование DynamicMethod и ILGenerator. Представлены примеры для использовании событий System.IO.FileSystemWatcher (Ожидает уведомления файловой системы об изменениях и инициирует события при изменениях каталога или файла в каталоге.) и SerialPort (обработка сканера штрих кода подключенного к COM порту). Обертка позволяет использовать классы .Net только на языке 1С. Реализация 1C Messenger описанного здесь http://infostart.ru/public/434771/

12.11.2015    46712    Serginio    36    

Оптимизация выгрузки из 1С 7.7 по правилам обмена большого объема данных

Перенос данных из 1С7.7 в 1C8.X Обмен через XML 1С7.7<->1C7.7 v7.7 1cv7.md Бесплатно (free)

При выгрузке из 1С 7.7. большого справочника программа завершалась примерно с таким сообщением: "msxml6.dll: Недостаточно памяти для завершения операции". Вариант выгрузки порциями меня не устраивал. Поэтому немного оптимизировал обработку выгрузки. Возможно кому-то сэкономит время.

24.09.2014    31909    Just4Fun    29    

КД 2.0. Перенос документов 7.7 - 7.7. Передача параметра "Проведен"

Обмен через XML 1С7.7<->1C7.7 v77::ОУ v77::БУ v77::Расчет 1cv7.md КД Бесплатно (free)

1С:Конвертация данных 2.0. Решение проблемы проведения документов при переносе между базами 7.7

20.12.2011    18615    xazrad    18    

Фокусы с Конвертацией данных 2.0

Перенос данных из 1С7.7 в 1C8.X Обмен через XML v7.7 v8 1cv8.cf 1cv7.md КД Бесплатно (free)

Используем мощный инструмент Конвертации данных себе во благо

19.12.2011    20132    tusv    9    

Как создать в 7.7 XML, проверить по схемам (XSD, XML) от заказчика и отправить на вебсервер методом Post

Обмен через XML Практика программирования v7.7 1cv7.md Бесплатно (free)

Немного об API из 1С. Или простой способ создать, проверить и отправить на вебсервер XML-файл.

30.04.2011    83034    artms    24    

Работа с 1С через OLE 8.* (V81.Application, V81.COMConnector)

Перенос данных из 1С7.7 в 1C8.X Математика и алгоритмы v7.7 v8 1cv8.cf 1cv7.md Бесплатно (free)

Решил серьезно заняться изучением OLE. Конечно OLE это не КД, но все же...

07.04.2011    96887    artspeed    16    

Конвертация данных 2 - Отмена проведения документов в 7.7 при повторной загрузке

1С7.7<->1C7.7 Обработка документов v7.7 1cv7.md КД Бесплатно (free)

При повторной загрузке данных в 1С бывает необходимо отменить проведение у существующих документов.

21.10.2010    18822    nicxxx    7    

Заполнение списков для отборов в отчетах и обработках

Математика и алгоритмы v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

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

01.07.2010    10669    ne_en    8    

Ликбез 7.7: Инициализация переменных во внешнем отчете.

Математика и алгоритмы v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Хотя апологеты самодокументированных программ категорически не рекомендовали передавать в процедуры параметры-ссылки, все же иногда хочется.

25.06.2010    15802    Арчибальд    18    

УРБД, типы миграции (Буферные документы, буферные элементы)

Математика и алгоритмы Распределенная БД (УРИБ, УРБД) v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free)

Часто при использовании стандартного механизма УРБД в 1С:Предприятии 7.7 нехватает типа миграции "центр и место назначения". Данная статейка излагает лишь возможный принцип решения данной проблемы.

08.06.2009    10831    Bosma    4    

Как определить путь к Информационной Базе?

Математика и алгоритмы v7.7 1cv7.md Россия Бесплатно (free)

Мне приходится общаться с бухгалтерами, которые работают не в соседней комнате, а в соседней области. Бухгалтера часто слабо разбираются в нюансах работы с файловой системой, поэтому вопрос о том, в каком каталоге находится база данных 1С, ставит бухгалтеров в тупик.

13.03.2009    81663    anempadest    26    

OLE в 1С-Предприятии

Математика и алгоритмы 1С7.7<->1C7.7 v7.7 1cv7.md Бесплатно (free)

Небольшая инструкция с примерами - как работать с OLE

09.08.2008    33333    Minotavrik    8    

(OLE 1С - 1C 7.7) Функции для 1С:Предприятие 7.7 для работы с другой базой 1С.

1С7.7<->1C7.7 Практика программирования v7.7 1cv7.md Россия Бесплатно (free)

Простенькие учебные функции (с описанием) для работы с базой 1С 7.7 через OLE. Полностью средствами 1С, т.е. не требуют никаких внешних компонент. Пользоваться можно бесплатно:-) Вставляете в глобальный модуль и пользуетесь. Цель: обучение, готовая иллюстрация подходов, возможность сразу использовать или, если нужно, доработать под свои цели.

06.08.2008    29003    venger    8    

Много общих журналов + гибкие закладки

Математика и алгоритмы Обработка документов Работа с интерфейсом v7.7 1cv7.md Бесплатно (free)

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

21.10.2007    16185    Shaman100M    20    

Что такое ТА - точка актуальности итогов

Математика и алгоритмы v77::ОУ 1С7:ТиС Россия Бесплатно (free)

Статья посвящена точке актуальности итогов - одному из важнейших понятий компоненты "Оперативный учет".

04.05.2007    46317    adv73    31    

Продвинутая технология внешних печатных форм

Математика и алгоритмы Универсальные печатные формы v7.7 1cv7.md Бесплатно (free)

Технология позволяет создавать внешние печатные формы на основе существующих встроенных с минимальными изменениями кода и макета таблицы. Ввод в печатные формы и запоминание в базе любой дополнительной информации без проблем с обновлением конфигурации.

18.02.2007    27210    clappa    10    

Методическое пособие "Основные объекты"

Математика и алгоритмы v7.7 1cv7.md Россия Бесплатно (free)

Методические пособие для начинающих программистов в среде 1С:Предприятие 7.7.

09.10.2006    16181    GROOVY    29    

Учет материалов по принципу LIFO/FIFO в типовой бухгалтерии 7.7 ред. 4.5

Математика и алгоритмы Учет ТМЦ Учет ТМЦ v7.7 1С7:ТиС 1С7:ПУБ Россия БУ УУ Бесплатно (free)

Описание идеи реализации учета материалов по принципу FIFO/LIFO в типовой бухгалтерии без внесения изменений в конфигурацию посредством пересчета данных внешней обработкой и формирования корректирующих проводок

24.05.2006    14193    Timesoft    4