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

24.09.21

Интеграция - Перенос данных 1C

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Расширение - доработка универсального обмена
.cfe 17,23Kb
45
45 Скачать (1 SM) Купить за 1 850 руб.

Введение

        В типовой конфигурации Управление автотранспортом Проф, редакция 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%

Перенос данных 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 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

50722 45650 руб.

04.08.2015    165287    386    276    

370

SALE! 10%

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

26280 23652 руб.

12.06.2017    140260    784    295    

410

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

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

28000 руб.

15.12.2021    23211    161    48    

118

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

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

84000 руб.

19.08.2020    24484    23    1    

25

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 | Можно проверить на вашем сервере перед покупкой

50722 45650 руб.

15.04.2019    71585    180    149    

121

SALE! 10%

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

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

50722 45650 руб.

24.04.2015    194258    149    242    

279

SALE! 10%

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

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

50722 45650 руб.

31.10.2014    236140    99    334    

305

SALE! 10%

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

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

48278 43450 руб.

03.12.2020    36081    90    63    

87
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Xephone 25.02.20 08:33 Сейчас в теме
Огромное спасибо Вам за статью, Геннадий!
Попробовал сделать, все получилось. Единственный вопрос возникает - не проводятся документы после обмена, хотя реквизит "Договор" я добавил и он корректно заполняется.
Может быть нужные еще какие-то обработчики прописать? Хотя если смотреть по аналогии по другим документам, там нигде не указывается проведение. Возможно я до конца не разобрался со схемой обмена через ED, но, как я понял, проведение идет уже после всей выгрузки независимо от обработчиков. Мб я что-то делаю не так?
2. gzharkoj 518 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 518 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 518 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 518 23.09.21 14:19 Сейчас в теме
(10) Спасибо за ваш комментарий, к сожалению, пока не могу свободного времени найти и заняться этим вопросом.
12. gzharkoj 518 24.09.21 15:01 Сейчас в теме
Доработал под релиз 2.2.18.1
13. Akuji 22 22.11.21 21:59 Сейчас в теме
В подсистеме обмена данными стандартных подсистем есть служебный регистр сведений Настройки обмена данными XDTO, в котором для узла обмена сохраняется информация о том, какие метаданные может отправлять и получать корреспондент

а в какой момент он заполняется? нужно удалять настройку и заново после доработки расширения настраивать?
IVKuzmin; +1 Ответить
14. gzharkoj 518 23.11.21 08:19 Сейчас в теме
(13) Удалять не нужен, заполняется в момент обмена. В самом файле обмена содержится эта информация на основе правил.
15. Akuji 22 24.11.21 22:48 Сейчас в теме
(14)что то пока не появляется(
я пытаюсь дописать обмен УТ11 - УНФ. Там два менеджера:
МенеджерОбменаЧерезУниверсальныйФормат
МенеджерОбменаЧерезУниверсальныйФормат18
в обоих нужно может дописывать? я пока только в 18 прописал расширение...
16. gzharkoj 518 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 518 19.12.21 10:35 Сейчас в теме
(17) Мало информации, но предположу, что в EnterpriseData нет объекта Начисление зарплаты, потому ничего и не выходит.
19. One_Assembler 10.03.22 16:22 Сейчас в теме
Есть вопрос в продолжении вашей статьи https://forum.infostart.ru/forum15/topic278296/
Универсальный обмен. ПередЗаписьюПолученныхДанных. Как установить отбор получаемых данных?
20. gzharkoj 518 10.03.22 17:35 Сейчас в теме
(19) Обычно это решается правилами регистрации
21. One_Assembler 10.03.22 17:43 Сейчас в теме
(20) А где копать? В какую сторону? Править макет? (у меня там вообще нет того "Справочника" что мне нужен. И как то в расширение это можно вытащить?
Прикрепленные файлы:
22. gzharkoj 518 10.03.22 18:25 Сейчас в теме
Копайте в строну правил регистрации, их можно выгрузить в режиме предприятия в настройках синхронизации. Редактировать можно и вручную, и через конф. Конвертация данных.
One_Assembler; +1 Ответить
23. uriah 18 09.04.23 21:51 Сейчас в теме
Добрый вечер! А не подскажете как настроить выгрузку не проведенных документов через универсальный формат? Правила регистрации объектов я доработал, но не проведенные документы не регистрируются к выгрузке.
24. gzharkoj 518 10.04.23 00:04 Сейчас в теме
(23) а это особенность обмена в формате EnterpriseData, он обменивается только проведенными, надо найти код, где эта проверка и попробовать избавиться от ее.
27. user1444721 26.03.24 10:47 Сейчас в теме
Обновились до 2.2.27.1
Расширение сругнулось только на режим совместимости(поправили)
Данные из БП выгружаются по событиям, в уат не загружаются. Посмотрел настройки синхронизации со стороны УАТа
В правилах получения данных пропал документ Поступление, по другой организации все хорошо осталось
28. user1444721 26.03.24 13:13 Сейчас в теме
(27)Разобрался, заного сделал настройку синхронизации
29. gzharkoj 518 26.03.24 13:16 Сейчас в теме
(28) Судя по всему, в 27 релизе добавили эту возможность из коробки, попробуйте отключить расширение и без него настроить обмен, тоже вариант, но там как обычно не без особенностей, не все поступления загружаются.
Оставьте свое сообщение