0. ids79 4220 16.08.19 17:14 Сейчас в теме

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
2. acanta 74 22.08.19 13:28 Сейчас в теме
Спасибо!
Самый большой плюс КД 3 в том, что доработка обмена не требует КД3.
3. ids79 4220 22.08.19 20:37 Сейчас в теме
(2)Пожалуйста. Да, это так. Но существенные доработки все-таки лучше делать в КД 3
4. shusharu 23.09.19 14:39 Сейчас в теме
Спасибо за статьи! Очень помогает.
Есть вопрос. Можно ли как то отказаться от получения объекта, при определенных условиях. Попробовал в процедуру ПКО_Документ_ПКОРасчетыССотрудниками_Получение_ПриКонвертаци­иДанныхXDTO сделать условие с возвратом. Но все равно объект попадает в форму сопоставления данных. (обмен между ЕРП и БУХ). Нужен аналог флага Отказ=Истина;
5. ids79 4220 23.09.19 15:06 Сейчас в теме
(4)Чтобы отказаться от загрузки объекта, используйте событие "При обработке" правила обработки данных (ПОД).
Код следующий:
ИспользованиеПКО.ПКО_Документ_ПКОРасчетыССотрудниками_Получение = Ложь;
Также в обработчике доступны ДанныеXDTO, можно отменить загрузку выборочно.
Но более правильно поставить ограничение на этапе отправки, чтобы не нужные данные не попадали в файл выгрузки. На этапе выгрузки также можно использовать обработчик "При обработке".
6. shusharu 23.09.19 16:10 Сейчас в теме
(5)
При обработке

Спасибо. А если в МенеджерОбменаЧерезУниверсальныйФормат13 на этот вид операции документа нет такого обработчика?
Только на вид Документ_ПКОРозничнаяВыручка_Получение, есть обработчик.

Вот кусочек из модуля

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




Мне самому добавить такой обработчик?

Что касается выгрузки я понимаю что так лучше, то основная доработка обмена идет на стороне Бухгалтерии и хотелось по возможности остаться только там, если не получится придется тогда сделать расширение и в ЕРП.
7. ids79 4220 24.09.19 09:35 Сейчас в теме
(6) Я бы посоветовал использовать конвертацию данных 3.1 в таком случае.
Но если уже решили вносить изменения вручную, добавляйте процедуру по аналогии с другими объектами. Также нужно отредактировать процедуры: ДобавитьПОД_Документ_ПКОРасчетыССотрудниками_Получение и ВыполнитьПроцедуруМодуляМенеджера
8. shusharu 25.09.19 13:32 Сейчас в теме
(7) СПАСИБИЩЕ!!! Описал свой обработчик в расширении и все получилось!!


Вот так это выглядело в итоге, может кому пригодится
&Вместо("ДобавитьПОД_Документ_ПКОРасчетыССотрудниками_Получение")
Процедура АБС_ДобавитьПОД_Документ_ПКОРасчетыССотрудниками_Получение(ПравилаОбработкиДанных)
	ПравилоОбработки                         = ПравилаОбработкиДанных.Добавить();
	ПравилоОбработки.Имя                     = "Документ_ПКОРасчетыССотрудниками_Получение";
	ПравилоОбработки.ОбъектВыборкиФормат     = "Документ.ПКОРасчетыССотрудниками";
	ПравилоОбработки.ПриОбработке            = "АБС_ПОД_Документ_ПКОРасчетыССотрудниками_Получение_ПриОбраб­отке";
	ПравилоОбработки.ИспользуемыеПКО.Добавить("Документ_ПКОРасчетыССотрудниками_Получение");
КонецПроцедуры
&Вместо("ДобавитьПОД_Документ_ПКОРасчетыСКонтрагентами_Получение")
Процедура АБС_ДобавитьПОД_Документ_ПКОРасчетыСКонтрагентами_Получение(ПравилаОбработкиДанных)
	ПравилоОбработки                         = ПравилаОбработкиДанных.Добавить();
	ПравилоОбработки.Имя                     = "Документ_ПКОРасчетыСКонтрагентами_Получение";
	ПравилоОбработки.ОбъектВыборкиФормат     = "Документ.ПКОРасчетыСКонтрагентами";
	ПравилоОбработки.ПриОбработке            = "АБС_ПОД_Документ_ПКОРасчетыСКонтрагентами_Получение_ПриОбра­ботке";
	ПравилоОбработки.ИспользуемыеПКО.Добавить("Документ_ПКОРасчетыСКонтрагентами_Получение");
КонецПроцедуры

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

&После("ВыполнитьПроцедуруМодуляМенеджера")

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

Вакансии

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Ведущий программист 1С
Омск
зарплата от 70 000 руб. до 110 000 руб.
Полный день

Программист 1С
Екатеринбург
зарплата до 120 000 руб.
Полный день

Консультант-аналитик 1С
Рязань
зарплата до 80 000 руб.
Полный день

Программист 1С
Рязань
зарплата от 90 000 руб.
Полный день