Обмен номенклатурой между ERP и Документооборотом

08.01.19

Учетные задачи - Логистика, склад и ТМЦ

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
: Обмен номенклатурой с ERP
.epf 8,38Kb
8 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Для использования обработки выбрать пункт меню Файл - Открыть, выбрать скачанную обработку. В открывшемся интерфейсе указать параметры подключения к базе ERP и группу доступа номенклатуры, которую необходимо перенести. По кнопке "Выполнить обмен" будут перенесены все позиции номенклатуры с указанной группой доступа.

Тестирование проводилось на ERP 2.4.6 и ДО 2.1.7

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

&НаКлиенте
Процедура ВыполнитьОбмен(Команда)
    ВыполнитьОбменНаСервере();
КонецПроцедуры

&НаСервере
Функция ИнициализироватьСоединение()
    
    ПараметрыПодключения = Новый Структура;
    ПараметрыПодключения.Вставить("ВариантРаботыИнформационнойБазы", ВариантРаботыИнформационнойБазы);
    ПараметрыПодключения.Вставить("КаталогИнформационнойБазы", КаталогИнформационнойБазы);
    ПараметрыПодключения.Вставить("ИмяСервера1СПредприятия", ИмяСервера1СПредприятия);
    ПараметрыПодключения.Вставить("ИмяИнформационнойБазыНаСервере1СПредприятия", ИмяИнформационнойБазыНаСервере1СПредприятия);
    ПараметрыПодключения.Вставить("АутентификацияОперационнойСистемы", Ложь);
    ПараметрыПодключения.Вставить("ИмяПользователя", ИмяПользователя);
    ПараметрыПодключения.Вставить("ПарольПользователя", ПарольПользователя);

    Возврат ОбщегоНазначенияКлиентСервер.УстановитьВнешнееСоединение(ПараметрыПодключения);
    
КонецФункции

&НаСервере
Процедура ВыполнитьОбменНаСервере()
        
    Соединение = ИнициализироватьСоединение();
    
    Запрос = Соединение.NewObject("Запрос");
    Запрос.УстановитьПараметр("ГруппаДоступа", Соединение.Справочники.ГруппыДоступаНоменклатуры.НайтиПоНаименованию(ГруппаДоступаНоменклатуры));
    Запрос.Текст = "ВЫБРАТЬ
                   |    Номенклатура.Ссылка
                   |ИЗ
                   |    Справочник.Номенклатура КАК Номенклатура
                   |ГДЕ
                   |    Номенклатура.ГруппаДоступа = &ГруппаДоступа";
                   
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        Если Не ЗначениеЗаполнено(Выборка.Ссылка.ВидНоменклатуры.Description) Тогда
            Продолжить;
        КонецЕсли;
        
        Если Не ЗначениеЗаполнено(Выборка.Ref.Description) Тогда
            Продолжить;
        КонецЕсли;
        
        Если Не ЗначениеЗаполнено(Выборка.Ref.ЕдиницаИзмерения.Description) Тогда
            Продолжить;
        КонецЕсли;
        
        ПолучитьРодителя(Выборка.Ref, Соединение);
    КонецЦикла;
    
    Соединение = Неопределено;
    
КонецПроцедуры


&НаСервере
Функция ПолучитьРодителя(ОбъектНом, соединение);
    
    Если ОбъектНом.Ref.Parent.Description ="" Тогда
        
        НовыйОбъект = НайтиОбъектПоГУИДилиСоздать(Соединение, ОбъектНом);
        НовыйОбъект.Записать();

        Возврат ОбъектНом.Ref.Description;
    КонецЕсли;
    
        
    ПолучитьРодителя(ОбъектНом.Ref.Parent, соединение);  //рекурсия
    
    
    НовыйОбъект = НайтиОбъектПоГУИДилиСоздать(Соединение, ОбъектНом);
    НовыйОбъект.Родитель = НайтиОбъектПоГУИДилиСоздать(Соединение, ОбъектНом.Ref.Parent).Ссылка;
    
    НовыйОбъект.Записать();
    
    ЗаписьЖурналаРегистрации("Обработка загрузки номенклатуры из ERP", 
                                УровеньЖурналаРегистрации.Информация,
                                Метаданные.Справочники.Номенклатура,
                                НовыйОбъект.Ссылка);
КонецФункции

&НаСервере
Функция НайтиОбъектПоГУИДилиСоздать(Соединение, ОбъектНом)
    
    УИД = Новый УникальныйИдентификатор(Соединение.xmlстрока(ОбъектНом.Uuid()));
    Ссылка = Справочники.Номенклатура.ПолучитьСсылку(УИД);
    
    Если ОбщегоНазначения.СсылкаСуществует(Ссылка) Тогда
        НовыйОбъект = Ссылка.ПолучитьОбъект(); //папка существует
    Иначе
        Если ОбъектНом.IsFolder = Истина Тогда
            НовыйОбъект = Справочники.Номенклатура.СоздатьГруппу();
        Иначе
            НовыйОбъект = Справочники.Номенклатура.СоздатьЭлемент();
        КонецЕсли;
        
        НовыйОбъект.УстановитьСсылкуНового(Ссылка);   //создаем папку с гуидом
    КонецЕсли;
    
    НовыйОбъект.Код             = ОбъектНом.Ref.Code;
    НовыйОбъект.Наименование     = ОбъектНом.Ref.Description;
    НовыйОбъект.ПометкаУдаления    = ОбъектНом.Ref.DeletionMark;
    Если ОбъектНом.IsFolder = Ложь Тогда
        НовыйОбъект.Артикул            = ОбъектНом.Ref.Артикул;
    КонецЕсли;

    Возврат НовыйОбъект;
    
КонецФункции

&НаКлиенте
Процедура ВариантРаботыИнформационнойБазыПриИзменении(Элемент)
    
    НастройкаВидимости();

    
    
КонецПроцедуры

&НаКлиенте
Процедура НастройкаВидимости()
    
    Если ВариантРаботыИнформационнойБазы = 0 Тогда
        //Файловый
        Элементы.ГруппаКаталогИнформационнойБазы.Видимость = Истина;
        Элементы.ГруппаКлиентСервернаяБаза.Видимость = Ложь;
    Иначе
        //Серверный
        Элементы.ГруппаКаталогИнформационнойБазы.Видимость = Ложь;
        Элементы.ГруппаКлиентСервернаяБаза.Видимость = Истина;
    КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    НастройкаВидимости();

КонецПроцедуры

&НаКлиенте
Процедура ГруппаДоступаНоменклатурыНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
    ГруппаДоступаНоменклатурыНачалоВыбораНаСервере();
КонецПроцедуры

&НаСервере
Процедура ГруппаДоступаНоменклатурыНачалоВыбораНаСервере()
    
    Элементы.ГруппаДоступаНоменклатуры.СписокВыбора.Очистить();
    
    Соединение = ИнициализироватьСоединение();
    
    Запрос = Соединение.NewObject("Запрос");
    Запрос.Текст = "ВЫБРАТЬ
                    |    ГруппыДоступаНоменклатуры.Ссылка КАК Ссылка
                    |ИЗ
                    |    Справочник.ГруппыДоступаНоменклатуры КАК ГруппыДоступаНоменклатуры
                    |ГДЕ
                    |    НЕ ГруппыДоступаНоменклатуры.ПометкаУдаления";
    
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        Строка = Элементы.ГруппаДоступаНоменклатуры.СписокВыбора.Добавить();    
        Строка.Значение = Выборка.Ссылка.Description;
    КонецЦикла;
    
    Соединение = Неопределено;

КонецПроцедуры

&НаКлиенте
Процедура ГруппаДоступаНоменклатурыНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    ГруппаДоступаНоменклатурыНачалоВыбораНаСервере();
    
КонецПроцедуры

Вступайте в нашу телеграмм-группу Инфостарт

Обмен ДО ERP GUID

См. также

Перенос данных 1C Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

58000 руб.

04.08.2015    186266    437    301    

445

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.267.x) и БП 3.0 (3.0.194.x). Правила подходят для версии ПРОФ и КОРП.

38000 34200 руб.

15.12.2021    33493    250    64    

190

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    187491    356    288    

416

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    159588    957    317    

480

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    62356    80    131    

78

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.25.x).

38000 34200 руб.

23.07.2020    67325    313    94    

251
Для отправки сообщения требуется регистрация/авторизация