Программное обращение к обработке "Универсальный обмен данными в формате xml"

0. Oleg_nsk 264 11.10.12 16:36 Сейчас в теме
В статье рассказывается о быстром написании обработок для выгрузки и загрузки данных, используя методы обработки "Универсальный обмен данными в формате xml".

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. m_gin 45 11.10.12 16:36 Сейчас в теме
Уважаемый, Олег, мне очень понравилась Ваша идея дать пользователям одну обработку для обмена данными между конфигурациями.
И сейчас пытаюсь реализовать этот подход для обмена между 1с 7.7 БП и 1с 8.2 КА.
Возникло вот такое затруднение:
Один из параметров, который надо прередать обработке, выгружающей из семерки (V77Exp.ert), - это ТаблицаНастройкиПараметров.
Подскажите, пожалуйста, какое у него должно быть значение.
Или направьте в какую сторону копать.
3. Oleg_nsk 264 12.10.12 06:41 Сейчас в теме
(1) Таблица настройки параметров заполняется также как обычная таблица в 7.7. У нее пять колонок: Имя, Наименование, ТипЗначения, ВидЗначения, Значение. Подробности заполнения можете найти в коде V77Exp.ert.
4. m_gin 45 12.10.12 09:10 Сейчас в теме
(3) Oleg_nsk, параметр ТаблицаНастройкиПараметров - это оказывается Список значений.
Еще пока мне не понятно, какие же значения он предназначен передавать обработке V77Exp.ert.
Но она сработала и с пустым списком.
5. Oleg_nsk 264 12.10.12 11:33 Сейчас в теме
(4) Может мы говорим о разном, но ТаблицаНастройкиПараметров в Универсальном обмене это однозначно таблица значений, а не список.
6. m_gin 45 12.10.12 11:42 Сейчас в теме
(5) Oleg_nsk, Вы правы в обработке есть ТаблицаНастройкиПараметров - это таблица.
При открытии обработки передается параметр, который также называется:
ЗнТаблицаНастройкиПараметров= СписокПараметров.Получить("ТаблицаНастройкиПараметров");

Это список, его содержимое потом заносится в таблицу:
Для НомерСтрокиСписка = 1 По ЗнТаблицаНастройкиПараметров.РазмерСписка() Цикл
  ЗнТаблицаНастройкиПараметров.ПолучитьЗначение(НомерСтрокиСписка, ПредставлениеЗначения);
  Если ТаблицаНастройкиПараметров.НайтиЗначение(ПредставлениеЗначения,СтрокаТаблицы,1) = 1 Тогда
    ТаблицаНастройкиПараметров.Значение = ЗнТаблицаНастройкиПараметров.Получить(ПредставлениеЗначения);
  КонецЕсли;
КонецЦикла;
2. alexware 11.10.12 19:25 Сейчас в теме
Полезная статья. Давать пользователям в пользование "Универсальный обмен данными в формате XML" - плохая идея. А вот в такой оболочке - самое то!
jif; dedicated; +2 Ответить
7. mixa_gr 53 12.10.12 13:37 Сейчас в теме
Подскажите, как передать список документов для отбора при выгрузке.
не понятно как работает строка

Обработка.Параметры.Вставить("Документы",СписокДок);
8. Oleg_nsk 264 12.10.12 14:30 Сейчас в теме
(7) mixa_gr, Смотрите правила обмена. Там в глобальном обработчике "При выгрузке объекта" смотрится есть ли выгружаемый объект в массиве "Документы".
9. dimk@a 25.11.12 17:33 Сейчас в теме
Oleg_nsk, спасибо! Выручила ваша обработка - как раз собирался делать нечто подобное, но решил сперва посмотреть на инфостарте ))
Только вот параметры передать не удалось - в самой обработке в процедуре ВыполнитьЗагрузку() все переданные мною параметры очищаются. Прописал запрос параметров в обработчике ПередВыгрузкойДанных() через функцию ВвестиЗначение().
10. Жолтокнижниг 255 18.12.12 16:49 Сейчас в теме
Идея хороша, реализация не очень, не универсально
Если Параметры.Документы.Найти(Объект) = Неопределено Тогда
	Отказ = Истина;
Иначе
	Сообщить("Выгружается документ: "+Объект);
КонецЕсли;
11. beard1 20.02.13 01:08 Сейчас в теме
Обработка.Параметры.Вставить("Документы",СписокДок);


Ткни носом, будь ласка, где описать параметр Документы... :(
12. Oleg_nsk 264 20.02.13 08:51 Сейчас в теме
(11) beard1, Описывать его не надо. Он будет существовать после загрузки правил обмена. Надо к нему обращаться в правилах обмена в глобальном обработчике "Перед выгрузкой объекта" и там если объект не найден в переданном массиве документов, то писать "Отказ = Истина".
13. beard1 21.02.13 02:38 Сейчас в теме
Надо к нему обращаться в правилах обмена в глобальном обработчике "Перед выгрузкой объекта"

Спасибо! Работает. Изящьненько...
У меня первые шаги в КД. Я так понял, что глобальный обработчик правил обмена , это Конвертация_ПередВыгрузкойОбъекта, и сначала происходит отбор всех объектов по дате, а в обработчике "Перед выгрузкой объекта" накладывается фильтр по списку документов.

Другими словами, если в периоде отбора будет много документов, то может быть оптимальнее использовать метод описанный здесь http://www.forum.mista.ru/topic.php?id=474869 ? Или без разницы? Вопрос так, теоретический...
14. Oleg_nsk 264 21.02.13 07:57 Сейчас в теме
(13) beard1, Может быть, но построитель уходит в прошлое и у меня к нему личная неприязнь. Всё новое создается на СКД. Думаю и универсальную обработку со временем перепишут. Я недавно другую реализацию делал. Выбор периода на форме и в табличной части много видов документов и флажок у каждой строки "отдельный выбор". Пользователь может выгрузить все доки за период или установить флажок и сам накидать в список доки определенного вида которые хочет. Везде у всех потребности разные. Там как раз пришлось построитель использовать.
35. al_zzz 291 09.02.20 09:34 Сейчас в теме
(14) У меня тоже к нему личная неприязнь. Но как вы заблуждались в своем 2013-ом!)))
Diyversus; +1 Ответить
15. beard1 25.02.13 19:43 Сейчас в теме
Спасибо! Наверное, самый красивый способ для данной задачи!
Можно ли применить такой подход для 77? Или там как-то по другому?
17. Oleg_nsk 264 28.02.13 07:55 Сейчас в теме
(15) beard1, По 77 не скажу. Эта платформа давно подзабылась
(16) LexSeIch, Спасибо
16. LexSeIch 209 27.02.13 12:21 Сейчас в теме
Мир этому дому! Прекрасный вариант реализации оболочки для пользователей, которым не надо заморачиваться выбором параметров.
18. beard1 28.02.13 09:21 Сейчас в теме
По 77 не скажу


Разобрался с 7.7. Не так красиво там получается, но работает.
25. Xershi 1384 05.02.15 11:43 Сейчас в теме
(18) beard1, покажи решение, нужен код для 7.7. Хочу выгружать ночью данные из 7.7.
19. ArtemiFD 42 10.03.13 10:45 Сейчас в теме
Спасибо, очень полезная статья. Воспльзовался полученными знаниями в своей обработке http://infostart.ru/public/177099/
20. Ксакеп 63 26.03.13 09:47 Сейчас в теме
Спасибо за замечательную идею =)
С выгрузкой разобрался без проблем, все работает как надо. А вот загрузка идет в управляемоем приложение, чувствую предстоит покопаться прежде чем удастся все реализовать.
21. aochkasov 35 18.04.13 12:52 Сейчас в теме
Вот то что доктор прописал. Спасибо. Плюсую
22. tgr123 17 03.12.13 12:08 Сейчас в теме
Спасибо за статью. Использовал идею для своей обработки. Отличие - непосредственная выгрузка в базу-приемник, без выгрузки промежуточного файла XML и обработки для загрузки в базу-приемник. Получилась действительно простая выгрузка в три клика. http://infostart.ru/public/238944/
23. kurmanov 103 15.02.14 13:55 Сейчас в теме
Спасибо, помогло решить проблему.
24. relanium86 14 27.02.14 09:31 Сейчас в теме
Спасибо за полезную информацию
26. Xershi 1384 05.02.15 13:32 Сейчас в теме
Тоже разобрался с синтаксисом.
В глобальном модуле, когда заходит бот написал
ОткрытьФорму("Обработка.МояОбработка");

А в коде обработки уже написал при открытии формы этим ботом выполнить выгрузку.
27. ITEkb 09.02.15 12:17 Сейчас в теме
Вроде обсудили, а ответ не понятен.
В обработку передается таблица настройки параметров.
Она в виде списка значений, но в коде, есть и как список значений, и как таблица.
Валится с ошибками.

Хочу передать определенный список объектов, которые нужно выгрузить..
28. ITEkb 29.02.16 15:15 Сейчас в теме
Прошел год.. и я снова вернулся к тому же вопросу :-)
29. Xershi 1384 29.02.16 15:16 Сейчас в теме
(28) OrsoBear, спустя год, он понятнее не стал!
30. Sibiande_ 26.04.16 15:56 Сейчас в теме
Внешний файл не сохранён.
Обработка универсальный обмен данными XML модуль объекта 2172: Тип не определён (СправочникСсылкаВидыНоменклатуры)
31. ITEkb 01.11.16 15:38 Сейчас в теме
Вы будете смеяться. Но только спустя 2 года меня в полной мере достала эта тема. Потому сел, и детально разобрался. Частично воспользовался фрагментами кода.
Доработал семерочную выгрузку, чтобы можно было в нее закидывать параметры, изначально функционал беден.
С загрузкой оказалось все просто. Разве что не устраивают бесполезные сообщения с началом, окончанием загрузки, и с количеством объектов. Пользователям это ни о чем не говорит. Пришлось кидать во внешнюю обработку, и переписывать уведомления под пожелания трудящихся.
33. vis_tmp 31 26.06.19 10:46 Сейчас в теме
(31)Можешь дать обработку для 7.7 ?
34. ITEkb 26.06.19 12:05 Сейчас в теме
(33) Увы. Базы перевел на восьмерку. Старые разработки удалил за ненадобностью.
32. fieryfist 15 03.02.18 15:48 Сейчас в теме
При организации обмена подобным способом возникает проблема при удалении объектов. Например из ИБ1 передали в ИБ2 некий объект, затем в ИБ1 его удалили, в итоге в ИБ2 объект остался и удален не будет, т.к. при последующих выгрузках информация о нем из ИБ1 не передается. Как вы решили эту проблему?
Оставьте свое сообщение
Вакансии
Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Программист 1С (ERP, УХ, КА 2, УТ 11), удаленно
Москва
зарплата от 160 000 руб.
Полный день

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

Консультант 1С / Специалист поддержки 1C
Екатеринбург
зарплата от 70 000 руб.
Полный день

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