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

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

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

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

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

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

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

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




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

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


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

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

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

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

Вакансии

Специалист внедрения и сопровождения 1С
Москва
зарплата от 80 000 руб.
Полный день

Product Owner (Менеджер по продукту 1С)
Москва
зарплата от 100 000 руб. до 170 000 руб.
Полный день

Тим лид по разработке 1С (Team Lead 1С)
Москва
зарплата от 100 000 руб. до 200 000 руб.
Полный день

Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Новосибирск
зарплата от 30 000 руб.
Временный (на проект)