Доработка универсального обмена в формате EnterpriseData

24.09.21

Интеграция - Обмен между базами 1C

В публикации показана доработка универсального обмена в формате EnterpriseData для получения документа поступления товаров из Бухгалтерии 3.0 в Управление Автотранспортом.

Скачать файлы

Наименование Файл Версия Размер
Расширение - доработка универсального обмена
.cfe 17,23Kb
43
.cfe 17,23Kb 43 Скачать

Введение

        В типовой конфигурации Управление автотранспортом Проф, редакция 2.2 (УАТ) поддерживается обмен с Бухгалтерией 3.0 (БП) через универсальный формат EnterpriseData. Однако уже после первого обмена, ожидая увидеть документы поступления товаров, оформленные в БП, был неприятно удивлен - их не оказалось. Модель ведения складского учета в УАТ предполагает, что документы поступления товаров и услуг должны быть оформлены в УАТ и обменом попасть в БП. С одной стороны это правильно, где возникают первичные документы, там они и должны быть оформлены, но реалии другие и зачастую первичные документы вводятся в БП, которые уже после должны попасть в УАТ.

Анализ проблемы

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

      Обмен в формате EnterpriseData в самой 1С построен на общий модулях, центральным из который является МенеджерОбменаЧерезУниверсальныйФормат, опередящий по сути правила обмена (описывает структуры обмена и обработчики). В этом модуле есть экспортная процедура ЗаполнитьПравилаОбработкиДанных, которая и определяет, какие данные отправлять и получать, на основании этой функции и происходит заполнение описанного выше служебного регистра сведений. Общий ее вид такой:

Процедура ЗаполнитьПравилаОбработкиДанных(НаправлениеОбмена, ПравилаОбработкиДанных) Экспорт
	Если НаправлениеОбмена = "Отправка" Тогда
            ДобавитьПОД_Документ_АвансовыйОтчет_Отправка(ПравилаОбработкиДанных);
            ДобавитьПОД_Документ_ВыдачаРасходныхМатериалов_Отправка(ПравилаОбработкиДанных);
	    //  и т.д.
        ИначеЕсли НаправлениеОбмена = "Получение" Тогда
            ДобавитьПОД_Документ_АвансовыйОтчет_Получение(ПравилаОбработкиДанных);
	    ДобавитьПОД_Документ_ЗаказКлиентаВЗаказНаТС_Получение(ПравилаОбработкиДанных);
            // и т.д.
	КонецЕсли;
КонецПроцедуры

Ожидаемо в ветке "Получение" не было описания правил обработки данных для Поступления товаров и услуг. Это и надо будет решить.

Дописываем правила

               Можно было бы воспользоваться конвертацией данных 3, но конкретно в данной задаче это только займет время, которое можно потратить эффективней. Учитывая, что правила отправки документа Поступления товаров и услуг есть, то по сути нам надо повторить все те же самые процедуры, но на случай получения. Дописывать все будем в расширении, в которое добавим общий модуль МенеджерОбменаЧерезУниверсальныйФормат. Начнем с процедуры ЗаполнитьПравилаОбработкиДанных, добавляем в нее процедуру, которая после работы основной процедуры, добавить наше правило:

&После("ЗаполнитьПравилаОбработкиДанных")
Процедура лок_ЗаполнитьПравилаОбработкиДанных(НаправлениеОбмена, ПравилаОбработкиДанных) Экспорт
	
	Если НаправлениеОбмена = "Получение" Тогда
		лок_ДобавитьПОД_Документ_ПоступлениеТоваровУслуг_Получение(ПравилаОбработкиДанных);
	КонецЕсли;
	
КонецПроцедуры

Основа процедуры лок_ДобавитьПОД_Документ_ПоступлениеТоваровУслуг_Получение взята из этого же общего модуля, но для получения другого документа, которая в общем типична:

Процедура лок_ДобавитьПОД_Документ_ПоступлениеТоваровУслуг_Получение(ПравилаОбработкиДанных)
	ПравилоОбработки = ПравилаОбработкиДанных.Добавить();
	ПравилоОбработки.Имя = "Документ_ПоступлениеТоваровУслуг_Получение";
	ПравилоОбработки.ОбъектВыборкиФормат = "Документ.ПоступлениеТоваровУслуг";
	ПравилоОбработки.ПриОбработке = "лок_ПОД_Документ_ПоступлениеТоваровУслуг_Получение_ПриОбработке";
	ПравилоОбработки.ИспользуемыеПКО.Добавить("Документ_ПоступлениеТоваровУслуг_Получение");
КонецПроцедуры

Процедура достаточно понятная, в ней определяем имя нашего правила, указываем для какого объекта работают правила в названии метаданных для корреспондента, то есть так как называется документ в БП. Указываем процедуру для обработчика при получении данных, в нашем случае в этой процедуре ничего особенного происходить не будет, опять же копируем подобную процедуру и меняем в ней параметры на наши:

Процедура лок_ПОД_Документ_ПоступлениеТоваровУслуг_Получение_ПриОбработке(ДанныеИБ, ИспользованиеПКО, КомпонентыОбмена)
	Если Не КомпонентыОбмена.ПараметрыКонвертации.ЗапрещенныеКПолучению.Найти("ПоступлениеТоваровУслуг", "Имя") = Неопределено Тогда
		ИспользованиеПКО.Документ_ПоступлениеТоваровУслуг_Получение = Ложь;		
		Возврат;
	КонецЕсли;
КонецПроцедуры

    Следующим этапом заполняем правила конвертации, которые заполняются экспортной процедурой ЗаполнитьПравилаКонвертацииОбъектов, она очень похожа на ЗаполнитьПравилаОбработкиДанных и имеет по сути тот же вид, наше ее расширение выглядит так:

&После("ЗаполнитьПравилаКонвертацииОбъектов")
Процедура лок_ЗаполнитьПравилаКонвертацииОбъектов(НаправлениеОбмена, ПравилаКонвертации) Экспорт
	
	Если НаправлениеОбмена = "Получение" Тогда
		лок_ДобавитьПКО_Документ_ПоступлениеТоваровУслуг_Получение(ПравилаКонвертации);
	КонецЕсли;

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

Опять же добавленная процедура лок_ДобавитьПКО_Документ_ПоступлениеТоваровУслуг_Получение особо не отличается от процедуры отправки ДобавитьПКО_Документ_ПоступлениеТоваровУслуг_Отправка присутствующей в модуле, поэтому берем ее за основу и получаем:

 
 Процедура ПКО Поступления товаров и услуг

 

Процедура лок_ДобавитьПКО_Документ_ПоступлениеТоваровУслуг_Получение(ПравилаКонвертации)

	ПравилоКонвертации = ОбменДаннымиXDTOСервер.ИнициализироватьПравилоКонвертацииОбъекта(ПравилаКонвертации);
	ПравилоКонвертации.ИмяПКО = "Документ_ПоступлениеТоваровУслуг_Получение";
	ПравилоКонвертации.ОбъектДанных = Метаданные.Документы.уатПоступлениеТоваровУслуг;
	ПравилоКонвертации.ОбъектФормата = "Документ.ПоступлениеТоваровУслуг";
	ПравилоКонвертации.ПравилоДляГруппыСправочника = Ложь;
	ПравилоКонвертации.ВариантИдентификации = "ПоУникальномуИдентификатору";
	ПравилоКонвертации.ПриКонвертацииДанныхXDTO = "лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПриКонвертацииДанныхXDTO";
	ПравилоКонвертации.ПередЗаписьюПолученныхДанных = "лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПередЗаписьюПолученныхДанных";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "ВалютаДокумента";
	НоваяСтрока.СвойствоФормата = "Валюта";
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Валюты";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Дата";
	НоваяСтрока.СвойствоФормата = "Дата";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "ДатаВходящегоДокумента";
	НоваяСтрока.СвойствоФормата = "ДатаВходящегоДокумента";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Контрагент";
	НоваяСтрока.СвойствоФормата = "Контрагент";
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Контрагенты_Получение";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "КратностьВзаиморасчетов";
	НоваяСтрока.СвойствоФормата = "КратностьВзаиморасчетов";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "КурсВзаиморасчетов";
	НоваяСтрока.СвойствоФормата = "КурсВзаиморасчетов";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Номер";
	НоваяСтрока.СвойствоФормата = "Номер";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "НомерВходящегоДокумента";
	НоваяСтрока.СвойствоФормата = "НомерВходящегоДокумента";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Организация";
	НоваяСтрока.СвойствоФормата = "Организация";
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Организации_Получение";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Ответственный";
	НоваяСтрока.СвойствоФормата = "Ответственный";
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Пользователи_Получение";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Подразделение";
	НоваяСтрока.СвойствоФормата = "Подразделение";
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Подразделения_Получение";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Склад";
	НоваяСтрока.СвойствоФормата = "Склад";
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Склады_Получение";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "СуммаВключаетНДС";
	НоваяСтрока.СвойствоФормата = "СуммаВключаетНДС";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "СуммаДокумента";
	НоваяСтрока.СвойствоФормата = "Сумма";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "ВалютаДокумента";
	НоваяСтрока.СвойствоФормата = "ВалютаВзаиморасчетов";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Валюты";
	
	НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Комментарий";
	НоваяСтрока.СвойствоФормата = "Комментарий";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	ПравилоКонвертации.СвойстваТабличныхЧастей.Вставить("ДополнительныеРеквизиты", ОбменДаннымиXDTOСервер.ИнициализироватьТаблицуСвойствДляПравилаКонвертации());
	СвойстваТЧ = ПравилоКонвертации.СвойстваТабличныхЧастей.ДополнительныеРеквизиты;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "ЗначениеСвойства";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Свойство";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_ДополнительныеРеквизиты";
	
	ПравилоКонвертации.СвойстваТабличныхЧастей.Вставить("Товары", ОбменДаннымиXDTOСервер.ИнициализироватьТаблицуСвойствДляПравилаКонвертации());
	СвойстваТЧ = ПравилоКонвертации.СвойстваТабличныхЧастей.Товары;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "ЕдиницаИзмерения";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_ЕдиницыИзмерения_Получение";
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Количество";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Номенклатура";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Номенклатура_Получение";
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "СтавкаНДС";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	НоваяСтрока.ПравилоКонвертацииСвойства = "СтавкиНДС";
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Сумма";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "СуммаНДС";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Цена";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	
	ПравилоКонвертации.СвойстваТабличныхЧастей.Вставить("Услуги", ОбменДаннымиXDTOСервер.ИнициализироватьТаблицуСвойствДляПравилаКонвертации());
	СвойстваТЧ = ПравилоКонвертации.СвойстваТабличныхЧастей.Услуги;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Количество";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Номенклатура";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Номенклатура_Получение";
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Содержание";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "СтавкаНДС";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	НоваяСтрока.ПравилоКонвертацииСвойства = "СтавкиНДС";
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Сумма";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "СуммаНДС";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;
	
	НоваяСтрока = СвойстваТЧ.Добавить();
	НоваяСтрока.СвойствоКонфигурации = "Цена";
	НоваяСтрока.ИспользуетсяАлгоритмКонвертации = Истина;

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

 

Только внимательное следим, какое свойство формата (типа данных из пакета XDTO EnterpriseData) мы будем использовать и в какой реквизит нашего документа он будет конвертироваться, например:

//...
НоваяСтрока = ПравилоКонвертации.Свойства.Добавить();
НоваяСтрока.СвойствоКонфигурации = "ВалютаДокумента";
НоваяСтрока.СвойствоФормата = "Валюта";
НоваяСтрока.ПравилоКонвертацииСвойства = "Справочник_Валюты";
//...

В данном примере свойство формата (входящий данных) Валюта будет конвертироваться в реквизит ВалютаДокумента документа уатПоступлениеТоваровУслуг. Так же дополнительно указываются процедуры при конвертации объекта и перед записью объекта. Особенностью процедур конвертации является дополнительное преобразование табличных полей, пример процедура конвертации для табличной части Товары:

 
 Обработчик ПриКонвертацииДанныхXDTO с конвертацией табличной части Товары

Процедура-обработчик перед записью полностью типовая, в данном случае так же ее наличие диктуется обработкой дополнительный свойств и реквизитов, а так же особенностью ведения единиц измерений для товара, когда для номенклатуры необходимо указывать не только базовую единицу, но и единицу хранения остатков, которой нет в БП, поэтому перед записью документа УАТ делает проверку для всех номенклатур из документа на наличие единицы хранения остатков и если ее нет, то генерирует на основе базовой единицы измерения.

 
 Обработчик ПередЗаписьюПолученныхДанных

        Последним этапом необходимо переопределить процедуру ВыполнитьПроцедуруМодуляМенеджера, с помощью данной процедуры происходит вызов всех объявленных обработчиков, в том числе и объявленные нами ПриОбработке, ПриКонвертацииДанныхXDTO, ПередЗаписьюПолученныхДанных:

&После("ВыполнитьПроцедуруМодуляМенеджера")
Процедура лок_ВыполнитьПроцедуруМодуляМенеджера(ИмяПроцедуры, Параметры) Экспорт
		
	Если ИмяПроцедуры = "лок_ПОД_Документ_ПоступлениеТоваровУслуг_Получение_ПриОбработке" Тогда 
		лок_ПОД_Документ_ПоступлениеТоваровУслуг_Получение_ПриОбработке(
			Параметры.ОбъектОбработки, Параметры.ИспользованиеПКО, Параметры.КомпонентыОбмена);

	ИначеЕсли ИмяПроцедуры = "лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПриКонвертацииДанныхXDTO" Тогда 
		лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПриКонвертацииДанныхXDTO(			
			Параметры.ДанныеXDTO, Параметры.ПолученныеДанные, Параметры.КомпонентыОбмена);
			
	ИначеЕсли ИмяПроцедуры = "лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПередЗаписьюПолученныхДанных" Тогда 
		лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПередЗаписьюПолученныхДанных(
			Параметры.ПолученныеДанные, Параметры.ДанныеИБ, Параметры.КонвертацияСвойств, Параметры.КомпонентыОбмена);			
	КонецЕсли;

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

      Последний штрих, особенность УАТ, из метаданных плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат, в расширение надо добавить макет ПравилаОтправкиПолученияДанных, который описывает фильтры для управлением отправки/получения данных над механизмом обмена данными. В этот макет необходимо добавить запись, что мы теперь умеем получить документ Поступление товаров и услуг.

На этом все. Запускаем расширение и проверяем перенос документ Поступление товаров и услуг. Документ перенесется, но не проведется из-за незаполненного договора контрагента, который в УАТ обязателен для заполнения, но при этом в формате обмена его нет. Решение опять же либо дописать обмен, но уже с двух сторон, если нужен реальный договор, либо отключить необходимость договора, переопределив ОбработкуПроверкиЗаполнения, либо генерировать произвольный общий договор. В моем случае важен только приход товара, поэтому в процедуре-обработчике ПередЗаписьюПолученныхДанных генерируется договор с предопределенным названием если такой не найден для контрагента и этот договор подставляется в документ.

Итог

        Доработка правил не составила особого труда, понадобилось только определить точки входа в модуле МенеджерОбменаЧерезУниверсальныйФормат, их три:

  1. ЗаполнитьПравилаОбработкиДанных
  • Добавили процедуру обработки данных при получении документа,
  • Определили процедуру-обработчик события ПриОбработке
  1. ЗаполнитьПравилаКонвертацииОбъектов
  • Добавили процедуру правила конвертации объекта
  • Определили процедуру-обработчик события ПриКонвертацииДанныхXDTO
  • Определили процедуру-обработчик события ПередЗаписьюПолученныхДанных
  1. ВыполнитьПроцедуруМодуляМенеджера

и по аналогии с имеющимися процедурами для получения данных в модуле, дописать необходимые и дозаполнить макет ПравилаОтправкиПолученияДанных, добавив туда строку, опять же, по аналогии с имеющимися. К публикации приложено расширение, которое в точности повторяет описанное с учетом создания обобщенного договора для контрагента.
        Тестирование проводилось на платформе версии 8.3.13.1809, 1С: Бухгалтерия предприятия 3.0.102.11 и Управление автотранспортом ПРОФ 2.2.18.1.

EnterpriseData обмен КД 3 УАТ

См. также

SALE! 10%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

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

Обработка позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию. Переносятся документы, а также начальные остатки и справочная информация. Есть фильтр по организации и множество других опциональных параметров выгрузки. Наши правила переноса в продаже с 2015 года, постоянно работаем над их развитием. Более 360 предприятий выполнили переход с использованием этого продукта. Оказываем техническую поддержку по всем вопросам проекта переноса данных из УПП 1.3.

50722 45650 руб.

04.08.2015    159265    363    266    

345

SALE! 10%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    134593    718    291    

387

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

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

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

28000 руб.

15.12.2021    20086    132    38    

90

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2

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

Переносятся документы за выбранный период, нормативно-справочная информация и остатки по счетам бухгалтерского учета из программы "1С:БП 3.0" в "1С:УТ 11" или "1С:КА. 2" или "1С:ERP Управление предприятием, ред. 2".

50722 45650 руб.

31.10.2014    231090    124    326    

295

SALE! 10%

Перенос данных из ERP 2 / КА 2 в ЗУП 3

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

Обработка позволяет не только перенести все документы, справочную информацию и начальные остатки из ERP 2 или КА 2 в ЗУП 3, но и организовать регулярный перенос данных между программами 1С:ERP 2 / КА 2 и 1С:ЗУП 3. Вы можете выбрать период отбора данных и установить фильтр по организациям, чтобы выгружать только необходимую информацию. Более того, перенос оперативно обновляется при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки.

48278 43450 руб.

03.12.2020    34031    80    57    

78

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0

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

Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Перенос данных осуществляется из 1С:ERP 2 / 1С:КА 2 / 1С:УТ 11 в 1С:БП 3.0. Правила обмена оперативно обновляются при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки.

38500 34650 руб.

15.04.2019    68191    176    136    

108

Перенос данных из Парус 10 в ЗГУ ред.3

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

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9155    9    8    

10

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

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

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

28000 руб.

23.07.2020    46019    194    64    

153
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Xephone 25.02.20 08:33 Сейчас в теме
Огромное спасибо Вам за статью, Геннадий!
Попробовал сделать, все получилось. Единственный вопрос возникает - не проводятся документы после обмена, хотя реквизит "Договор" я добавил и он корректно заполняется.
Может быть нужные еще какие-то обработчики прописать? Хотя если смотреть по аналогии по другим документам, там нигде не указывается проведение. Возможно я до конца не разобрался со схемой обмена через ED, но, как я понял, проведение идет уже после всей выгрузки независимо от обработчиков. Мб я что-то делаю не так?
2. gzharkoj 494 25.02.20 20:09 Сейчас в теме
(1) в процедуре ПКО "лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПередЗап­исьюПолученныхДанных" - первой же строкой вызвать процедуру

УстановитьПризнакПроведенПриЗагрузке(ПолученныеДанные, ДанныеИБ, КомпонентыОбмена.ПараметрыКонвертации);

сам код процедуры

Процедура УстановитьПризнакПроведенПриЗагрузке(ПолученныеДанные, ДанныеИБ, ПараметрыКонвертации)
	ПризнакПроведенПолученный = Неопределено;

	ПолученныеДанные.ДополнительныеСвойства.Свойство("Проведен", ПризнакПроведенПолученный);
	
	// Если признак проведения не был задан явно, считается что он взведен.
	Если ПризнакПроведенПолученный = Неопределено Тогда
		ПризнакПроведенПолученный = Истина;
	КонецЕсли;
	
	ПолученныеДанные.Проведен = ПризнакПроведенПолученный;
	
	Если ДанныеИБ <> Неопределено Тогда
		ДанныеИБ.Проведен = ПолученныеДанные.Проведен;
	КонецЕсли;
КонецПроцедуры
Показать
3. STD1 19.05.21 14:19 Сейчас в теме
Отличная статья. Единственный момент после синхронизации, в табличной части поступления материалов там без ндс. Перевыбираешь организацию, графа ндс появляется.
4. STD1 19.05.21 14:19 Сейчас в теме
Как можно с вами связаться?
5. sokol_6630 3 06.07.21 20:21 Сейчас в теме
Спасибо за статью. Мне помогло, я допиливаю обмен УТ БП
6. gzharkoj 494 06.07.21 22:27 Сейчас в теме
(5) Все верно, подход там везде +/- один и тот же. Рад, что пригодились мои наработки.
7. 1c-chtk 10.08.21 05:20 Сейчас в теме
добрый день!
Управление автотранспортом Проф, редакция 2.2 (2.2.15.1)
Ошибка:
{Обработка.ВыгрузкаЗагрузкаEnterpriseData.Форма.Форма.Форма(310)}: Направление: Получение.
ПОД: Документ_ПоступлениеТоваровУслуг_Получение.
ПКО: Документ_ПоступлениеТоваровУслуг_Получение.
Объект: Документ.ПоступлениеТоваровУслуг.


Событие: Получение.
Обработчик: ПередЗаписьюПолученныхДанных.
Объект: Документ объект: Поступление материалов и услуг, Поступление материалов и услуг 0000-010032 от 30.12.2020 7:00:00 ().

Ошибка выполнения обработчика.
Значение не является значением объектного типа (ДоговорКонтрагента)
{ДоработкаОбменаБП ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(254)}: ДанныеИБ.ДоговорКонтрагента = ДоговорУАТ;
{ДоработкаОбменаБП ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(301)}: лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПередЗапи­сьюПолученныхДанных(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6329)}: МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(ИмяОбработчика, СтруктураПараметров);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(1682)}: ПередЗаписьюПолученныхДанных(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(5273)}: ДанныеДляЗаписиВИБ = СтруктураОбъектаXDTOВДанныеИБ(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(1869)}: ПрочитатьСообщениеОбмена(КомпонентыОбмена, Результаты, ТаблицыДляЗагрузки);
{Обработка.ВыгрузкаЗагрузкаEnterpriseData.МодульОбъекта(345)}: ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанных(КомпонентыОбмена);
{Обработка.ВыгрузкаЗагрузкаEnterpriseData.МодульОбъекта(290)}: РезультатЗагрузки = ЗагрузитьДанныеИзXML(ЧтениеXML);
{(1)}:Объект.ЗагрузкаСообщения(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4858)}: Выполнить "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(664)}: ОбщегоНазначения.ВыполнитьМетодОбъекта(Обработка, Параметры.ИмяМетода, ПараметрыМетода);
{(1)}:ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4802)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(770)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыПроцедуры);
{ОбщийМодуль.ДлительныеОперации.Модуль(761)}: ВыполнитьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
.
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
{Обработка.ВыгрузкаЗагрузкаEnterpriseData.Форма.Форма.Форма(310)}: Направление: Получение.
ПОД: Документ_ПоступлениеТоваровУслуг_Получение.
ПКО: Документ_ПоступлениеТоваровУслуг_Получение.
Объект: Документ.ПоступлениеТоваровУслуг.


Событие: Получение.
Обработчик: ПередЗаписьюПолученныхДанных.
Объект: Документ объект: Поступление материалов и услуг, Поступление материалов и услуг 0000-010032 от 30.12.2020 7:00:00 ().

Ошибка выполнения обработчика.
Значение не является значением объектного типа (ДоговорКонтрагента)
{ДоработкаОбменаБП ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(254)}: ДанныеИБ.ДоговорКонтрагента = ДоговорУАТ;
{ДоработкаОбменаБП ОбщийМодуль.МенеджерОбменаЧерезУниверсальныйФормат.Модуль(301)}: лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПередЗапи­сьюПолученныхДанных(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6329)}: МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(ИмяОбработчика, СтруктураПараметров);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(1682)}: ПередЗаписьюПолученныхДанных(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(5273)}: ДанныеДляЗаписиВИБ = СтруктураОбъектаXDTOВДанныеИБ(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(1869)}: ПрочитатьСообщениеОбмена(КомпонентыОбмена, Результаты, ТаблицыДляЗагрузки);
{Обработка.ВыгрузкаЗагрузкаEnterpriseData.МодульОбъекта(345)}: ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанных(КомпонентыОбмена);
{Обработка.ВыгрузкаЗагрузкаEnterpriseData.МодульОбъекта(290)}: РезультатЗагрузки = ЗагрузитьДанныеИзXML(ЧтениеXML);
{(1)}:Объект.ЗагрузкаСообщения(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4858)}: Выполнить "Объект." + ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(664)}: ОбщегоНазначения.ВыполнитьМетодОбъекта(Обработка, Параметры.ИмяМетода, ПараметрыМетода);
{(1)}:ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(4802)}: Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(770)}: ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыПроцедуры);
{ОбщийМодуль.ДлительныеОперации.Модуль(761)}: ВыполнитьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
.
ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
8. gzharkoj 494 10.08.21 08:19 Сейчас в теме
(7) Добрый день, 10 релизов прошло. Постараюсь посмотреть на новой версии и выложить исправление.
9. user1444721 22.09.21 19:17 Сейчас в теме
(7)2.2.13.1 Такая же ошибка, допилить сам не смог(
10. user1444721 23.09.21 09:59 Сейчас в теме
(9)Закомментил пока 3 строки и перенеслись документы,договор вручную выбираю
Общие модули МенеджерОбменаЧерезУниверсальныйФормат
Процедура лок_ПКО_Документ_ПоступлениеТоваровУслуг_Получение_ПередЗаписьюПолученныхДанных(ПолученныеДанные, ДанныеИБ, КонвертацияСвойств, КомпонентыОбмена)
	       УстановитьПризнакПроведенПриЗагрузке(ПолученныеДанные, ДанныеИБ, КомпонентыОбмена.ПараметрыКонвертации);

//++
//Эл.ВидДоговора = ПредопределенноеЗначение("Перечисление.ВидыДоговоровКонтрагентов.СПоставщиком");
//Эл.ВедениеВзаиморасчетов = //ПредопределенноеЗначение("Перечисление.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом");
//ДанныеИБ.ДоговорКонтрагента = ДоговорУАТ;
//++
11. gzharkoj 494 23.09.21 14:19 Сейчас в теме
(10) Спасибо за ваш комментарий, к сожалению, пока не могу свободного времени найти и заняться этим вопросом.
12. gzharkoj 494 24.09.21 15:01 Сейчас в теме
Доработал под релиз 2.2.18.1
13. Akuji 22 22.11.21 21:59 Сейчас в теме
В подсистеме обмена данными стандартных подсистем есть служебный регистр сведений Настройки обмена данными XDTO, в котором для узла обмена сохраняется информация о том, какие метаданные может отправлять и получать корреспондент

а в какой момент он заполняется? нужно удалять настройку и заново после доработки расширения настраивать?
IVKuzmin; +1 Ответить
14. gzharkoj 494 23.11.21 08:19 Сейчас в теме
(13) Удалять не нужен, заполняется в момент обмена. В самом файле обмена содержится эта информация на основе правил.
15. Akuji 22 24.11.21 22:48 Сейчас в теме
(14)что то пока не появляется(
я пытаюсь дописать обмен УТ11 - УНФ. Там два менеджера:
МенеджерОбменаЧерезУниверсальныйФормат
МенеджерОбменаЧерезУниверсальныйФормат18
в обоих нужно может дописывать? я пока только в 18 прописал расширение...
16. gzharkoj 494 25.11.21 08:18 Сейчас в теме
(15) Вы можете под отладкой посмотреть, в какой модуль попадает исполнение кода.
17. IVKuzmin 18.12.21 11:31 Сейчас в теме
(16) Добрый день! Можете, пожалуйста, подсказать я прописал в обоих модулях менеджера в процедуре "ЗаполнитьПравилаОбработкиДанных" но все равно в регистре сведений не появляется мой объект для выгрузки. 2 дня бьюсь, никак не удается выгрузить новый документ добавленный в пакет XDTO
Прикрепленные файлы:
25. KatVish 05.10.23 22:08 Сейчас в теме
(17)добрый вечер! Не подскажете, удалось решить проблему? Такая же ситуация. В модулях всё прописано, а в регистре информация не обновляется.
26. IVKuzmin 10.11.23 10:57 Сейчас в теме
(25) Здравствуйте! Достоверно уже не вспомню что было. По-моему, необходимо было запустить какой-то обработчик/процедуру для перезаполнения данного регистра.
18. gzharkoj 494 19.12.21 10:35 Сейчас в теме
(17) Мало информации, но предположу, что в EnterpriseData нет объекта Начисление зарплаты, потому ничего и не выходит.
19. One_Assembler 10.03.22 16:22 Сейчас в теме
Есть вопрос в продолжении вашей статьи https://forum.infostart.ru/forum15/topic278296/
Универсальный обмен. ПередЗаписьюПолученныхДанных. Как установить отбор получаемых данных?
20. gzharkoj 494 10.03.22 17:35 Сейчас в теме
(19) Обычно это решается правилами регистрации
21. One_Assembler 10.03.22 17:43 Сейчас в теме
(20) А где копать? В какую сторону? Править макет? (у меня там вообще нет того "Справочника" что мне нужен. И как то в расширение это можно вытащить?
Прикрепленные файлы:
22. gzharkoj 494 10.03.22 18:25 Сейчас в теме
Копайте в строну правил регистрации, их можно выгрузить в режиме предприятия в настройках синхронизации. Редактировать можно и вручную, и через конф. Конвертация данных.
One_Assembler; +1 Ответить
23. uriah 17 09.04.23 21:51 Сейчас в теме
Добрый вечер! А не подскажете как настроить выгрузку не проведенных документов через универсальный формат? Правила регистрации объектов я доработал, но не проведенные документы не регистрируются к выгрузке.
24. gzharkoj 494 10.04.23 00:04 Сейчас в теме
(23) а это особенность обмена в формате EnterpriseData, он обменивается только проведенными, надо найти код, где эта проверка и попробовать избавиться от ее.
Оставьте свое сообщение