|
Универсальный обмен XML + регистрация изменений БП 1.6 на 8.2 и ЕП 2 | ☑ | ||
---|---|---|---|---|
0
Leo_Lito
23.01.23
✎
09:07
|
Всем здравствуйте, я начинающий программист 1С. Нужно реализовать односторонний обмен данными с синхронизацией между БП 8.2 и ЕП 2 на 8.3 (ЕП->БП). Создал правила конвертации через Конвертацию данных 2.1, создал регламентное задание, вызывающее созданный мной общий модуль, в котором используется Универсальный обмен данными XML (УОД). В модуле инициализировал УОД, указал правила конвертации, файл выгрузки данных, но не разобрался с регистрацией изменений. Планы обмена создал, узлы тоже, авторегистрацию поставил. В стандартной форме можно подключить узел обмена через таблицу, но что за процедура или функция за это отвечает и как ее вызывать, я так и не понял. Помогите разобраться, пожалуйста. Спасибо!
|
|||
1
Leo_Lito
23.01.23
✎
16:37
|
1
|
|||
2
kerm
23.01.23
✎
16:46
|
БП 8.2 это БП 1.6, а ЕП это УПП или ЕРП?
|
|||
3
Leo_Lito
24.01.23
✎
14:10
|
(2) Это ЕРП
|
|||
4
OldCondom
24.01.23
✎
14:20
|
&НаСервере
Процедура УстановитьУзелОбменаУСтрокДерева(Дерево, УзелОбмена) Для Каждого Строка Из Дерево Цикл Если Строка.ЭтоГруппа Тогда УстановитьУзелОбменаУСтрокДерева(Строка.ПолучитьЭлементы(), УзелОбмена); Иначе Строка.СсылкаНаУзелОбмена = УзелОбмена; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
5
Leo_Lito
24.01.23
✎
14:32
|
(4) Сработает, если дописать:
Процедура УстановитьУзелОбменаУСтрокДерева(Дерево, УзелОбмена) Экспорт И как записать его в модуле? Процедура ВыгрузкаИзЕрп() Экспорт // Вставить содержимое обработчика. Обработка = Обработки.УниверсальныйОбменДаннымиXML.Создать(); Обработка.РежимОбмена = "Выгрузка"; Обработка.ДатаНачала = НачалоДня(ДобавитьМесяц(ТекущаяДата(),-1)); Обработка.ДатаОкончания = КонецМесяца(ТекущаяДата()); Обработка.ИмяФайлаОбмена = "D:\xxx\ЕРП--БУХ.xml"; Обработка.ИмяФайлаПравилОбмена = "D:\xxx\ЕРП-БУХ.xml"; Обработка.ЗагрузитьПравилаОбмена(); Обработка.УстановитьУзелОбменаУСтрокДерева(?, ПланОбменаЕРП); Обработка.ВыполнитьВыгрузку(); КонецПроцедуры |
|||
6
Leo_Lito
24.01.23
✎
14:38
|
Это вопрос!! "Сработает, если дописать,"
|
|||
7
Leo_Lito
24.01.23
✎
14:38
|
(6) "Сработает, если дописать?"
|
|||
8
OldCondom
24.01.23
✎
14:51
|
Это что?
Обработка.УстановитьУзелОбменаУСтрокДерева(?, ПланОбменаЕРП); |
|||
9
OldCondom
24.01.23
✎
14:52
|
Ааа, понял)
Нет, так не сработает. УстановитьУзелОбменаУСтрокДерева(Обработка.ТаблицаПравилВыгрузки.ПолучитьЭлементы(), ПланОбменаЕРП); |
|||
10
Leo_Lito
24.01.23
✎
14:54
|
(9) Спасибо, буду пробовать
|
|||
11
Leo_Lito
24.01.23
✎
15:28
|
(9) Сделал так, так как код узла - БП (но пробовал и по названию узла, и по названию плана обмена), НО ничего не получилось. Процедура у меня немного иначе называется.
Процедура ВыгрузкаИзЕрп() Экспорт // Вставить содержимое обработчика. Обработка = Обработки.УниверсальныйОбменДаннымиXML.Создать(); Обработка.РежимОбмена = "Выгрузка"; Обработка.ДатаНачала = НачалоДня(ДобавитьМесяц(ТекущаяДата(),-1)); Обработка.ДатаОкончания = КонецМесяца(ТекущаяДата()); Обработка.ИмяФайлаОбмена = "D:\Литовских\1Cv8\XML для КОНВ\ЕРП--БУХ.xml"; Обработка.ИмяФайлаПравилОбмена = "D:\Литовских\1Cv8\XML для КОНВ\ЕРП-БУХ.xml"; Обработка.ЗагрузитьПравилаОбмена(); Обработка.УстановитьУзелОбменаУСтрокДереваНаСервере.УстановитьУзелОбменаУСтрокДерева(Обработка.ТаблицаПравилВыгрузки.ПолучитьЭлементы(), БУХ); //Обработка.ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки= 2; Обработка.ВыполнитьВыгрузку(); КонецПроцедуры А выводит вот такое: {ОбщийМодуль.ВыгрузкаИзЕрп.Модуль(21,139)}: Переменная не определена (ПланОбменаЕРП) Обработка.УстановитьУзелОбменаУСтрокДереваНаСервере.УстановитьУзелОбменаУСтрокДерева(Обработка.ТаблицаПравилВыгрузки.ПолучитьЭлементы(), <<?>>ПланОбменаЕРП); (Проверка: Сервер) {ОбщийМодуль.ВыгрузкаИзЕрп.Модуль(21,139)}: Переменная не определена (БП) Обработка.УстановитьУзелОбменаУСтрокДереваНаСервере.УстановитьУзелОбменаУСтрокДерева(Обработка.ТаблицаПравилВыгрузки.ПолучитьЭлементы(), <<?>>БП); (Проверка: Сервер) {ОбщийМодуль.ВыгрузкаИзЕрп.Модуль(21,139)}: Переменная не определена (БУХ) Обработка.УстановитьУзелОбменаУСтрокДереваНаСервере.УстановитьУзелОбменаУСтрокДерева(Обработка.ТаблицаПравилВыгрузки.ПолучитьЭлементы(), <<?>>БУХ); (Проверка: Сервер) |
|||
12
OldCondom
24.01.23
✎
15:42
|
Что то мне подсказывает, правила, общий модуль и регламент писали не вы.
|
|||
13
Leo_Lito
24.01.23
✎
15:52
|
(12) Модуль я нагуглил, но как он работает я понимаю) В остальном тоже искал в интернетах, но делал все сам.
|
|||
14
Leo_Lito
24.01.23
✎
15:58
|
Извиняюсь, что задаю совсем глупые вопросы) Но учиться же ведь как-то нужно...
|
|||
15
FIXXXL
24.01.23
✎
16:35
|
(11) Узел - это элемент ПланаОбмена, его надо как то получить, хоть НайтиПоКоду()
|
|||
16
kerm
24.01.23
✎
16:42
|
(11) Посмотри код плана обмена которого ты создал для обмена и получи его через НайтиПоКоду().
В ЕРП есть обмен с БУХ30. Зачем обмениваться с Бух 1,6 которая только внутри УПП осталась непонятно. |
|||
17
FIXXXL
24.01.23
✎
16:44
|
(16) код УЗЛА
а то совсем запутается :) |
|||
18
FIXXXL
24.01.23
✎
16:46
|
ПланыОбмена.Название ПЛАНА ОБМЕНА как в метаданных.НайтиПоКоду("код твоего УЗЛА, откуда забираешь изменения");
|
|||
19
Leo_Lito
24.01.23
✎
16:51
|
(18) Я так и написал, спасибо. Сейчас пробую.
|
|||
20
Leo_Lito
24.01.23
✎
17:49
|
(18) Так-с. Процедура УстановитьУзелОбменаУСтрокДерева(Дерево, УзелОбмена) имеет два параметра. Если с узлом все стало понятно, то для того, чтобы заполнился пармаетр дерево нужно сначала заполнить таблицу выгрузки данных. В стандартной форме обработки она заполняется после нажатия на кнопку "Прочитать правила обмена". Кнопка вызывает процедуру ПрочитатьПравилаОбмена(Команда) , которая забирает значения с правил, вызывает следующую процедуру ПрочитатьПравилаОбменаЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт , параметры которой заполняются значениями, которые забрала процедура ПрочитатьПравилаОбмена(Команда) . И если самому объявить эти значения и записать в параметры при вызове процедуры ПрочитатьПравилаОбменаЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт , то вроде как все должно сработать. Ну или почти... Буду продолжать, ну и потом расскажу, что получится, если интересно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |