|
8.3 Типовой обмен между конфигурациями | ☑ | ||
---|---|---|---|---|
0
jamesgold
27.09.22
✎
13:24
|
Добрый день, прошу помочь!
Между двумя конфигурациями Розница 2.3 и Бухгалтерия предприятия 3.0 настроен типовой обмен. При синхронизации в БП попадают элементы справочников с реквизитом ЭтоГруппа = Истина, т.е. папки в которых хранятся элементы справочника. Каким образом можно исключить такие группы при обмене, только при настройке новых правил в конфигурации Конвертация данных или есть другие варианты? |
|||
1
CepeLLlka
27.09.22
✎
13:38
|
(0)А что оставлять в поле "Родитель" выгружаемых элементов, которые НЕ ЭтоГруппа, но имеют не пустое значение поля "Родитель"?
|
|||
2
jamesgold
27.09.22
✎
13:40
|
(1) Без родителя
|
|||
3
AlvlSpb
27.09.22
✎
13:45
|
(0) "Каким образом можно исключить такие группы при обмене"© Ошибочное решение. Но вам виднее.
1. Корректировать правила регистрации 2. Ручной мониторинг зарегистрированных элементов на наличие групп и снятие с регистрации таковых |
|||
4
jamesgold
27.09.22
✎
13:47
|
(3) 1. Корректировать правила регистрации - изменить правила можно только в в конфигурации Конвертация данных?
|
|||
5
AlvlSpb
27.09.22
✎
13:48
|
(2) Нет. Будет НЕ без родителя, а Объект не обнаружен или опять же менять правила регистрации и указывать в них отсутствие родителя
|
|||
6
AlvlSpb
27.09.22
✎
13:49
|
(4) Если есть понимание как делаются правила, такое простое можно попробовать сделать в редакторе хмл. Но если понятия нет, лучше не браться
|
|||
7
jamesgold
27.09.22
✎
13:55
|
(6) Получается типовой механизм для изменения правил регистрации, только Конвертация данных, так?
|
|||
8
jamesgold
27.09.22
✎
13:55
|
Руками каждый раз снимать группы не вариант
|
|||
9
AlvlSpb
27.09.22
✎
14:00
|
(7) Именно. Однако обращаю внимание, что, скорей всего, задействован Универсальный формат обмена, а значит корректировать стандартные правила придется после каждого обновления программы.
Проще и правильней структуру справочника Номенклатура в обеих программах синхронизировать (вместе с группами). А если уж кому-то надо без иерархии в БП, групповой обработкой удалять родителя из элемента уже после обмена. Но все это ИМХО |
|||
10
jamesgold
27.09.22
✎
14:06
|
(9) Если в БП передавать группы, возникает ошибка при обмене, БП ругается на незаполненные реквизиты у элементов с типом группа.
|
|||
11
AlvlSpb
27.09.22
✎
14:12
|
(10) А заполнить незаполненные реквизиты не вариант?
|
|||
12
jamesgold
27.09.22
✎
15:53
|
(11) Эти реквизиты должны быть не заполнены
|
|||
13
MaxS
27.09.22
✎
17:16
|
(9) Если универсальный формат обмена, то правила исправляются расширением.
Найти ПОД для справочника в базе источника или в базе приемника. Если группа, то ИспользованиеПКО.Очистить(); и не будет выгружаться или загружаться Это xml (кд2) правила нужно править в КД каждый раз. |
|||
14
Доминошник
27.09.22
✎
17:25
|
Как то (10) и (12) противоречат друг другу...
|
|||
15
jamesgold
27.09.22
✎
18:27
|
(14) Все правильно у групп эти реквизиты в базе источник не должны быть заполнены, но если так выгрузить то в базе приемник будет ошибка, он требует заполнение этих реквизитов.
|
|||
16
jamesgold
27.09.22
✎
18:29
|
(13) Очень интересно, может быть есть ссылка на рабочий пример?
|
|||
17
dimm7310
28.09.22
✎
08:40
|
(0) 1. нужно менять правила регистрации (в КД2) 2. Изменять правила обмена на стороне приемника - найти обработчик для номенклатуры (в общем модуле МенеджеробменаЧерезУниверсальныйФормат) "ПередЗаписьюПолученныхДанных" (ПКО_Справочник_Номенклатура_Получение_ПередЗаписьюПолученныхДанных - это полное наименование обработчика для БП3 у вас может быть немного другое) или "ОтложеннаяОбработка_Номенклатура", думаю проще подправить "ОтложеннаяОбработка_Номенклатура" - и прописать в нем родитель = пустая ссылка. Должно прокатить
|
|||
18
withoutname
28.09.22
✎
08:47
|
(0) не понял, надо запретить переносить все элементы в определенной папке?
А что если в настройке обмена поставить переносить не всю НСИ, а только которая используется в документах? |
|||
19
Serg_1960
28.09.22
✎
08:54
|
(18) Автору, насколько я его понял, нужно чтобы не мигрировали группы, а только элементы справочника с очищенными ссылками на группы. Т.е. вариант миграции данных между иерархическим справочником и простым/обычный/без иерархии справочником.
|
|||
20
Serg_1960
28.09.22
✎
08:58
|
(15) "он требует заполнение этих реквизитов" - возможно, вероятно некорректное исправление правил обмена: в реквизит устанавливается значение NULL, а нужно - пустая ссылка справочника.
|
|||
21
jamesgold
28.09.22
✎
10:23
|
(17) Какая может быть логика если делать доработки на базе источнике? Мне нужно не только в родителе сделать пустую ссылку но и не передавать сами группы. Если делать это в расширении какое это должно быть событие?
|
|||
22
withoutname
28.09.22
✎
11:43
|
в КД2 в ПКО Номенклатура ПередВыгрузкой
В ПКС Родитель ПередВыгрузкой
|
|||
23
jamesgold
28.09.22
✎
14:16
|
(22) Спасибо, попробую!
|
|||
24
jamesgold
28.09.22
✎
14:23
|
||||
25
withoutname
28.09.22
✎
15:37
|
(24) в первой картинке не там, надо в Правило конвертиции объекта
https://i.imgur.com/GMpYkrk.png |
|||
26
jamesgold
29.09.22
✎
17:25
|
Исправил обработчик с учетом (25)
Сохранил из КД2 новые правила обмена в файл, пытаюсь теперь по этим правилам получить новые данные: 1. Пытаюсь получить файл данных в обработке выгрузки "V8Exchan83ed1" получаю ошибку: https://ibb.co/89CgVD7 Ошибка в обработчике события ПередВыгрузкойДанных (конвертация) Обработчик = ПередВыгрузкойДанных (конвертация) ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {<Неизвестный модуль>(1,62)}: Переменная не определена (УзелДляОбмена) ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(12458) КодСообщения = 62 2. Сделал тестовый обмен в папку из исходной конфигурации, при создании синхронизации загрузил новые правила из КД2, также получаю ошибку, текст в журнале регистрации: "Ошибка, Отправка данных; Объектов обработано: 2" Оба этих способа получения файла с данными не работают. Первоначальные правила обмена, которые менял в КД2 с у четом моего задания, получал из текущего рабочего обмена в рабочей конфигурации вот так: https://ibb.co/Fm00MsD |
|||
27
withoutname
29.09.22
✎
17:56
|
(26) 1. странное слово какое то "конвертация", выложи сами правила файлом
2. файл брал "ExchangeRules.xml"? |
|||
28
jamesgold
29.09.22
✎
18:00
|
(27) 2. файл брал "ExchangeRules.xml" - да
|
|||
29
jamesgold
29.09.22
✎
18:03
|
||||
30
AlvlSpb
29.09.22
✎
18:34
|
(28) Странно. Хочешь изменить порядок РЕГИСТРАЦИИ объекта (исключить из регистрации группы), а изменяешь правила КОНВЕРТАЦИИ. Не смущает?
|
|||
31
jamesgold
29.09.22
✎
18:46
|
Делаю по этому гайду (22)
|
|||
32
jamesgold
29.09.22
✎
19:09
|
(30) Примерно такой же подход по моему вопросу применяют вот здесь:
https://infostart.ru/1c/articles/690292/ |
|||
33
withoutname
29.09.22
✎
19:22
|
(29) хм, странно, а пришли весь текст ошибки
|
|||
34
jamesgold
29.09.22
✎
21:01
|
(33) Это весь тест ошибки в журнале регистрации при использовании стандартного обмена "Ошибка, Отправка данных; Объектов обработано: 2"
|
|||
35
jamesgold
29.09.22
✎
21:02
|
(33) Если грузить обработкой "V8Exchan83ed1" то такой текст:
Ошибка в обработчике события ПередВыгрузкойДанных (конвертация) Обработчик = ПередВыгрузкойДанных (конвертация) ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {<Неизвестный модуль>(1,62)}: Переменная не определена (УзелДляОбмена) ПозицияМодуля = ВнешняяОбработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(12458) КодСообщения = 62 |
|||
36
jamesgold
29.09.22
✎
21:08
|
||||
37
withoutname
30.09.22
✎
08:21
|
(34) я про эту ошибку https://ibb.co/89CgVD7
(35) название обработки странное у тебя, должна так называться "V8Exchan83.epf" или вообще встроенной "Универсальный обмен данными XML" кстати, а ты выбираешь узел обмена в этой обработке? (хз, но может влияет) |
|||
38
Serg_1960
30.09.22
✎
08:57
|
Автору русским же языком написана ошибка - "Переменная не определена (УзелДляОбмена)" - надо гуглить.
Короче: если взять за основу типовые правила обмена между конфигурациями и использовать их в универсальном обмене данными, то нужно инициализировать переменную "УзелДляОбмена" с типом "ПланОбменаСсылка.НаименованиеПланаОбменаОткудаВзятыПравила". Можно, например, на форме обработки создать реквизит с таким наименованием и типом. |
|||
39
Serg_1960
30.09.22
✎
09:15
|
(37) Имхо, штатные правила обмена типовых планов обмена используют "УзелДляОбмена", а универсальный обмен данными XML - "УзелОбмена" и "СсылкаНаУзелОбмена".
|
|||
40
jamesgold
30.09.22
✎
12:04
|
(38) Добавил реквизит в обработку "УзелДляОбмена", установил ему значение нужного узла, ошибка ушла но появился целый ряд других:
https://ibb.co/4RckT8w |
|||
41
jamesgold
30.09.22
✎
13:11
|
(37) Таже ошибка с этой обработкой "V8Exchan83.epf".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |