Обмен через Конвертацию данных 2.1 во внешней обработке + Запуск внешней обработки по расписанию (БСП)

0. John_d 4393 22.01.20 14:10 Сейчас в теме
Сделаем ежедневную выгрузку и загрузку данных через конвертацию данных 2.1 из одной базы в другую. Но весь код и правила конвертации будут располагаться во внешней обработке.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. PLAstic 290 22.01.20 14:22 Сейчас в теме
А какова прикладная задача была?
2. John_d 4393 22.01.20 14:51 Сейчас в теме
(1) Настроить односторонний обмен (через конвертацию) между двумя базами
12. PLAstic 290 23.01.20 09:21 Сейчас в теме
(2) А почему нельзя было просто встроить свой план обмена в существующий механизм?
3. Kaval88 166 22.01.20 15:26 Сейчас в теме
на БСП проще сделать, только правила загрузить и все.
ivanov660; +1 Ответить
15. Pipapalamm 23.01.20 11:45 Сейчас в теме
(3) Подскажите пожалуйста, как можно правила конвертации 2.1 "загрузить" в БСП? Реально появилась такая возможность? Где почитать? А то на Инфостарте полно вот такого рода публикаций:
https://infostart.ru/public/461158/
"а мужики то не знают..."
16. John_d 4393 23.01.20 11:49 Сейчас в теме
(15) Нельзя. Нужно дорабатывать конфигурацию.
Pipapalamm; +1 Ответить
21. glime 102 23.01.20 14:34 Сейчас в теме
(16)в легкую можно.
во внешнею обработку, в макет.
18. wtlz 250 23.01.20 12:12 Сейчас в теме
(15)можно использовать правила из файла:
Прикрепленные файлы:
19. Pipapalamm 23.01.20 12:32 Сейчас в теме
(18) Это правила КД 3. Мы говорим про обмен по правилам КД 2.
20. wtlz 250 23.01.20 12:36 Сейчас в теме
(19) КД 2 работает через это отлично, проверял лично, БСП 3.0.1.53
Pipapalamm; +1 Ответить
22. Pipapalamm 23.01.20 16:07 Сейчас в теме
(20) Ничоси! Проверю обязательно и выкину наконец свои велосипеды. Спасибо огромное!
4. dsdred 2493 22.01.20 16:29 Сейчас в теме
1 Нет проверки на удаленные объекты(битые ссылки). При попадании такого объекта обмен встанет.

2 Почему не использовать"ПланыОбмена.ВыбратьИзменения"?
ПланыОбмена.ВыбратьИзменения позволяет более гибко делать, меньше кода и проще проверять битые ссылки.

3 Почему XML, а не JSON?
XML очень жирный...

4 Два узла на один обмен...

КД 2.1, файлы, xml, два узла... по мне больше на костыль похоже чем на нормальное решение.
Светлый ум; Xershi; acanta; +3 Ответить
5. John_d 4393 22.01.20 16:38 Сейчас в теме
(4) по 2 пункту много где писали.
ВыбратьИзменения() – это метод, с которым нужно быть очень осторожным, потому что обычно, когда возникают проблемы с производительностью обменов, именно из-за этого вызова возникают блокировки.
https://infostart.ru/public/899200/
7. John_d 4393 22.01.20 16:50 Сейчас в теме
(4)
1. согласен, надо сделать.
3. Конвертация Данных 3 тоже через XML.
4. выше писал для чего это делаю.
8. dsdred 2493 22.01.20 17:05 Сейчас в теме
(7)Я понимаю для чего. Я не понимаю почему именно КД.
Наверное фирма с небольшим документооборотом?

П.С. Не обращайте внимание на мои придирки. Просто дописываю мобильное приложение и не типовой обмен на http-сервисах и Вы прям на больную мозоль написали ;))
9. John_d 4393 22.01.20 17:22 Сейчас в теме
(8) КД 2 наименее трудозатратно. Кода минимум, одна процедура на выгрузку и одна на загрузку. Остальное отрабатывает КД 2.
11. improg 270 23.01.20 08:36 Сейчас в теме
(4) по 2-му пункту ВыбратьИзменения опасен тем что он не только читает изменения, но и записывает номера сообщений в записи регистрации изменений у которых номер сообщения null, все это в одной транзакции в следствии чего возникают избыточные блокировки. Ед. в выборке можно было в цикле открывать маленькие транзакции т.е разбить большую на маленькие. Это все выжимка из курса "1С:Эксперт" Виктора Богачева.
13. dsdred 2493 23.01.20 11:12 Сейчас в теме
(11)Это все понятно и в жизни я как раз разбиваю на небольшие порции.
Просто по публикации автора я понял, что обмен идет в одну сторону в одну базу и с довольно таки малым документооборотом.
Поэтому и предполагаю, что проблемы с организацией обмена через ПланыОбмена.ВыбратьИзменения быть не должно.
14. John_d 4393 23.01.20 11:16 Сейчас в теме
(13) Документооборот нормальный и как правило со временем он растет. С ВыбратьИзменения проблемы будут.
17. dsdred 2493 23.01.20 11:55 Сейчас в теме
(14)Тогда к сожалению я тем более не могу понять почему выбран такой подход к решению задачи.
6. acanta 22.01.20 16:46 Сейчас в теме
И при последних релизах БСП идентификации по гуид все равно отсутствуют.
10. metmetmet 81 23.01.20 06:54 Сейчас в теме
Для работы достаточно одной обработки Универсальный Обмен Данными XML в базе источнике и в базе приемнике? Или есть зависимые общие модули?
23. nt_ 31.01.20 12:29 Сейчас в теме
Не понял только где назначается узел обмена "Выгрузка" при обращении к обработке УниверсальныйОбменДаннымиXML?
24. John_d 4393 31.01.20 16:07 Сейчас в теме
(23) В КД 2. Перед выгрузкой данных:
 
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ ПЕРВЫЕ 1
|	АТИ_ВыгрузкаВБазуБП.Ссылка КАК Узел
|ИЗ
|	ПланОбмена.ВыгрузкаВБазуБП КАК АТИ_ВыгрузкаВБазуБП
|ГДЕ
|	АТИ_ВыгрузкаВБазуБП.Наименование = ""Выгрузка""";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	Параметры.УзелРегистрацииВыгруженных = ВыборкаДетальныеЗаписи.Узел;
КонецЦикла;
 
Показать
25. nt_ 01.02.20 03:48 Сейчас в теме
(24) Это для удаления регистрации источника. А как натравить обработку на обход элементов узла "выгрузка"? у меня все объекты выгружает по правилу, а не только зарегистрированные.
26. John_d 4393 03.02.20 09:58 Сейчас в теме
(25) При выгрузке данных.. Упустил этот момент. Дописал статью.
27. ezhikofff 25.06.20 12:29 Сейчас в теме
День добрый. А можно картинку обновить, что в ПКО перед обработкой для каждого объекта?
Прикрепленные файлы:
28. ezhikofff 25.06.20 16:39 Сейчас в теме
(27) В общем у меня в ПВД получилась следующая обработка

Запрос = Новый Запрос;
Запрос.Текст = " 
|ВЫБРАТЬ
|	тИзменения.Узел КАК Узел,
|	тИзменения.Ссылка КАК Ссылка
|ИЗ
|	Документ.ЗаказНаПеремещение.Изменения КАК тИзменения
|ГДЕ
|	тИзменения.Узел = &УзелВыгрузки";
Запрос.УстановитьПараметр("УзелВыгрузки", Параметры.УзелВыгрузки);

ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	ВыгрузитьПоПравилу(ВыборкаДетальныеЗаписи.Ссылка,,,, "ЗаказНаПеремещение");
КонецЦикла;
Показать
Прикрепленные файлы:
29. John_d 4393 25.06.20 18:15 Сейчас в теме
(28) Думаю у меня примерно также было. Позже найду и выложу новый скриншот.
30. John_d 4393 26.06.20 10:38 Сейчас в теме
(28) Да, так и было. Поставил ваш скриншот.
31. yulya_dav 15.11.20 00:20 Сейчас в теме
Спасибо, все очень подробно и понятно!
Очень нужная доработка
32. 2C_prog 7 25.05.21 19:49 Сейчас в теме
Добрый день!
В этом решении возможно использовать правила регистрации объектов? Скорей даже так - как правильно применить в данном решении правила регистрации объектов? =)
33. avbolshakov 09.01.23 17:16 Сейчас в теме
В ПВД для каждого объекта наверное нужно указывать Произвольный алгоритм? Там где вы выгружаете по правилу
Оставьте свое сообщение
Вакансии
Ведущий Инженер - программист 1С
Новокузнецк
зарплата от 100 000 руб.
Полный день

Программист
Москва
зарплата от 200 000 руб. до 230 000 руб.
Полный день

Главный специалист (Программист 1с)
Подольск
зарплата от 100 000 руб. до 110 000 руб.
Полный день

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

Аналитик (оперативный учет)
Москва
зарплата от 150 000 руб. до 300 000 руб.
Полный день