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

08.01.19

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
: Обмен номенклатурой с ERP
.epf 8,38Kb
8
8 Скачать (1 SM) Купить за 1 850 руб.

Для использования обработки выбрать пункт меню Файл - Открыть, выбрать скачанную обработку. В открывшемся интерфейсе указать параметры подключения к базе 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

См. также

SALE! 10%

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

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

55778 50200 руб.

04.08.2015    173247    369    287    

398

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

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

35000 руб.

23.07.2020    58304    269    75    

223

SALE! 20%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 руб.

12.06.2017    147811    869    302    

446

Логистика, склад и ТМЦ Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Управление торговлей 11 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

89900 руб.

09.06.2020    42725    36    59    

73

SALE! 10%

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

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

55778 50200 руб.

15.04.2019    75792    203    158    

142

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

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

35000 руб.

15.12.2021    27517    196    56    

151
Оставьте свое сообщение