0. ids79 2626 26.12.18 08:42 Сейчас в теме

EnterpriseData – часть 2. Процесс выгрузки данных

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

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

Комментарии
Избранное Подписка Сортировка: Древо
1. kembrik 2 26.12.18 12:00 Сейчас в теме
О, продолжение, отлично, спасибо. Отлично структурирован материал, хоть в книгу верстать.

Реквестирую немного раскрыть тему наиболее элегантного кода программной выгрузки с использованием типовой обработки ВыгрузкаЗагрузкаEnterpriseData. УниверсальныйОбменДаннымиXML освоен, а тут пока не выходит каменная чаша с наскока
2. ids79 2626 26.12.18 14:14 Сейчас в теме
Спасибо. Включу в план на будущее.
3. davdykin 17 28.12.18 17:35 Сейчас в теме
Спасибо за статью. Интересно, актуально и по делу.
4. ids79 2626 29.12.18 10:47 Сейчас в теме
5. MaxS 1641 03.01.19 18:36 Сейчас в теме
Полезная статья. Правда как мне кажется многие в первую очередь пытаются использовать КД3 на практике и если не получается, особо настойчивые читают теорию. Если получается, доходят до описанного здесь методом проб и ошибок.

Некоторые дополнения:
>Основные элементы структуры «КомпонентыОбмена»
>МенеджерОбмена – общий модуль, в котором находятся правила конвертации.
Не только общий модуль, а ещё и модуль внешней обработки.

>НаправлениеОбмена – одно из двух значений: «Выгрузка» или «Загрузка».
"Отправка" или "Получение"
6. ids79 2626 04.01.19 07:46 Сейчас в теме
(5)Спасибо за комментарий, Максим.
Неточности поправил.
8. Vladimir Litvinenko 1718 25.03.19 21:06 Сейчас в теме
(5) Такие материалы полезны в том числе после использования КД 3 на практике, для закрепления и систематизации знаний. И чтобы свои конспекты не писать. Схема в публикации отличная! Обязательно поможет вспомнить как работает система, когда снова придётся работать с КД 3. Дмитрий, спасибо за отличный материал.
9. ids79 2626 26.03.19 10:20 Сейчас в теме
7. Восьмой 46 22.03.19 12:25 Сейчас в теме
Огромное спасибо за материал!
13. ids79 2626 17.04.19 07:32 Сейчас в теме
10. Rabot 71 16.04.19 17:39 Сейчас в теме
Спасибо за статью!
Не могли бы вы пояснить как заставить работать произвольную выборку?
"Для использования ПОД с произвольной выгрузкой, необходимо перед выгрузкой данных определить Сценарий выгрузки."
Куда именно приведённый код нужно вставить, в какую-то обработку общего модуля "ОбменДаннымиXDTOСервер" или в какой-то обработчик конвертации?
11. Rabot 71 16.04.19 18:39 Сейчас в теме
(10) сам спросил сам ответил)
Что бы заработала произвольная выборка в КД3 нужно:

1. Код вставить в обработчик КД "ПередКонвертацией"
Если КомпонентыОбмена.НаправлениеОбмена = "Отправка" Тогда
КомпонентыОбмена.СценарийВыгрузки = новый ТаблицаЗначений;
КомпонентыОбмена.СценарийВыгрузки.Колонки.Добавить("ИмяПОД");
НоваяСтрока = КомпонентыОбмена.СценарийВыгрузки.Добавить();
НоваяСтрока.ИмяПОД = "СВОЁ_ИМЯ_ПОД";
КомпонентыОбмена.ЭтоОбменЧерезПланОбмена = Ложь;
КонецЕсли;


2. В конфигураторе КД3, в справочнике "ПравилаОбработкиДанных", в модуле формы "ФормаЭлемента", в процедурах "СпособВыборкиПриИзменении" и "УстановитьВидимость" - разрешить заполнять поле "ОбъектВыборки" так же и для способа выборки "Произвольный алгоритм".

3. В нужном ПОД, помимо заполнения основных свойст:
3.1 Вкладка "Основные сведения" - установить галку "Произвольный алгоритм";
3.2 Вкладка "Основные сведения" - заполнить поле "Объект выборки";
3.3 Вкладка "Выборка данных" - реализовать произвольный код, который возвращает массив ссылок, которые нужно выгрузить;

Но есть нюанс: при произвольной выборке нужно самостоятельно производить "Выборку изменений", для регистрации номера сообщения у выгруженных данных.
12. Rabot 71 16.04.19 20:12 Сейчас в теме
(11) При такой реализации указанный объект выгружается, но:
1. Номер отправленного в узле не проставляется;
2. Остальные объекты перестали выгружаться.

Вопрос остаётся: как реализовать для одного из документов/справочников свою произвольную выборку при выгрузке данных в КД3?
14. ids79 2626 17.04.19 07:43 Сейчас в теме
(12)Добрый день. На сколько я знаю, так сделать не получится. Только или все объекты по правилам или все по произвольному алгоритму.
Если найдете какой-нибуь способ, напишите, самому интересно.
15. Rabot 71 17.04.19 11:41 Сейчас в теме
(14) Мне кажется, что данный способ выгрузки противоречит логике разработчиков КД3. Мол, если не хотите что-то выгружать, ну так не регистрируйте, а значит создавайте нужные правила регистрации. В крайнем случае, в обработчике ПОД "ПриОбработке" определяйте выгружать данный объект или нет.

Как мне нравилась КД2, и как мне не нравится КД3.
16. user778014 6 09.05.19 23:06 Сейчас в теме
КД3 мертворожденный механизм. За 4 года с момента появления он не смог занять хоть сколько нибудь значительного распространения кроме типовых конфигураций. Идея универсальности не совместима с необходимостью каждый раз изменять конфигурацию и усложнять ее поддержку. Обмен в типовых версиях на базе КД3 не гибкий и до сих пор полон ошибок. Непонятно зачем 1с упорно пытается цепляться за этот неудачный механизм
18. MaxS 1641 10.05.19 05:28 Сейчас в теме
(16) Видимо Вы что-то не так поняли в механизме. ) Обслуживание упрощается, т.к. одни правила - одна конфигурация вместо одной конфигурации и массы правил для каждой пары обмениваемых баз. Независимость от версии конфигурации в другой базе. Отладка правил значительно упрощена по сравнению с КД2.
Ошибки в основном связаны с некорректностью исходных данных. Формат ED не позволяет выгружать некорректные данные, тем самым распространяя бардак по другим базам.
Знаю несколько клиентов, которые для обмена между производственной программой и УПП внедрили в УПП КД3, а не КД2 или какой-то другой механизм.
19. user778014 6 10.05.19 06:19 Сейчас в теме
(18) Возможно что вы чего то не поняли. Ошибки связаны с тем что для работы КД3 предполагается что механизм преобразования в формат ED через XDTO был идентичен в разных конфигурациях. Например в УПП, ЕРП, БП, ЗУП. Однако это возможно только в теории. На практике все эти конфигурации пишут разные команды и в разное время. Поэтому на каждый момент времени существует большая вероятность различий в формате преобразования в ED. Конкретно я столкнулся с ошибками в КА2. Да, следующий релиз пофиксил ошибку но это стоило мне несколько часов бесплодных поисков и несколько дней простоя проекта пока 1с не выпустила обновление. И так через раз
20. MaxS 1641 10.05.19 09:05 Сейчас в теме
(19) Формат ED неизменный в рамках версии формата. Их всего 6. Активно используются последние две. Если данные выгружены в этом формате, значит они уже прошли проверку и удовлетворяют минимальным требованиям формата и другая база обязана принять эти данные.
Сейчас все типовые поддерживают несколько форматов, в связи с чем практически всегда есть формат общий для обеих конфигураций. Похоже Вы путаете ошибки в правилах, которые могут быть и ошибки в реализации самой технологии универсального формата обмена.

Грубо говоря если нетрезвый водитель электрокара въехал в столб, это не означает, что вся технология автомобилей на аккумуляторах ущербна, а на бензине и дизеле лучше.
Т.е. если программист допустил ошибку в правилах, ошибка будет в любом варианте в КД3 и в КД2.
22. user778014 6 11.05.19 01:47 Сейчас в теме
(20) Нетрезвый водитель здесь это тот кто придумал эту схему. Я вот для примера открываю стандартную обработку по выгрузке правил синхронизации из комплекта КД3 в стандартной комплексной КА2.4.7.151 и получаю ошибку
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(7400)}: Метод объекта не обнаружен (ПриПолученииНастроек)
ПланыОбмена[ИмяПланаОбмена].ПриПолученииНастроек(НастройкиПланаОбмена);

Все конфигурации типовые без изменений. А ошибка эта связана с тем что не во всех планах обмена КА есть модуль менеджера ПриПолученииНастроек. Это что получается разработчики никогда не открывали в КА обработку выгрузки правил синхронизации ??? И они до сих пор этого не знают ???? Жесть
23. MaxS 1641 11.05.19 05:26 Сейчас в теме
(22) Всё разработчики знают и давно опубликовали на партнерском форуме исправленную обработку, практически сразу как появилась эта ошибка. Если нет доступа туда, поищите статью на инфостарте. Например у меня в профиле.
Вот и спрашивается при чем тут сама технология ED? Применительно к статье, в которой мы пишем комментарии есть какие-то претензии? Что в этой технологии не правильно? ;)
24. user778014 6 11.05.19 12:04 Сейчас в теме
(23) Спасибо за информацию о кривой обработке. Ситуация все больше напоминает историю про пьяного водителя электрокара. По статье вопросов нет. Пуговицы пришиты намертво ))
21. acanta 57 10.05.19 10:28 Сейчас в теме
(19) это слишком идеальный вариант, когда для двух разных приемников требуются одни и те же данные выгрузки.
Пример характеристики или серии номенклатуры.
Проблема не в отдельных ошибках, а в допущении, что данные из базы можно выгрузить по формату неизвестно кому, а там уже получатель разберётся что с этим делать.
Выросло такое убеждение из совершенно невообразимого количества служебной информации в базе, не имеющей прикладной пользовательской значимости и напротив, нехватки прикладной информации в некоторых вопросах, вынесенной в код или метаданные.
Необходимость этой служебной информации в свою очередь особенности платформы.
17. user778014 6 10.05.19 03:02 Сейчас в теме
И еще пару негатива о КД3. Так как он зависим от конфигурации типовых то очень часто есть несостыковки формата по релизам и выдаются ошибки при обмене. Это просто капец какой-то !
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

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

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

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

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

Программист 1С
Москва
Полный день