|
КД 2 - Перенос из 8,2 в 7,7 реквизита-перечисление в реквизит-справочник | ☑ | ||
---|---|---|---|---|
0
jyupiter
22.12.11
✎
07:01
|
Источник - Платформа 8,2 Конфигурация УСО 1,3
Приёмник - Платформа 7,7 Конфигурация - сильно допиленная БУ ред.4,5 Пытаюсь написать правила обмена, чтобы получить хотя бы корректный и полный выгруз информации. Вот что сделано: В источнике у справочника ДоговорыКонтрагентов есть реквизит ВидДоговора типа ПеречислениеСсылка.ВидыДоговоровКонтрагентов Ему соответствует в приёмнике реквизит ВидДоговора типа Справочник.ВидыДоговоров Для ПКО Договоры прописано ПКС ВиДДоговора Источник пустой, приёмник - справочник ВидыДоговоров При выгрузке ПКС есть обработчик
Прописано ПКО СправВидыДоговоров с пустым источником и приёмником-справочником Перед выгрузкой ПКО СправВидыДоговоров есть обработчик:
Увы мне - не понимаю, зачем он нужен, тупо скопировал с книжки Бояркина-Филатова (стр 124) Ему подчинены два ПКС (Источники пустые, Приёмники - строковые реквизиты Код и Наименование соответственно) В каждом проставлен флаг есть обработчик ПриВыгрузке:
И
Беда ровно одна, но ужасная-преужасная. Информация по реквизиту ВидДоговора не попадает в файл выгруза. Пытался сделать иначе (то есть, как у Бояркина по первой схеме), но выгруз вообще не завершался - прерывался с ошибкой "Поле объекта не обнаружено (СтрокаПоискаВыгрузкиСсылки)" в процессе выгрузки ВидаДоговора. Мой опыт "работы" с КД2 составляет две недели, я даже не понимаю толком, как задать правильный вопрос. Надо что-то доделать? Или переделать? Что именно? |
|||
1
jyupiter
22.12.11
✎
07:06
|
Забыл сказать:
Для создания правил обмена используется Конвертация Данных 2.1.5.1 на платформе 8.2 (если это имеет какую-то важность) |
|||
2
Aleksey
22.12.11
✎
07:39
|
В справочнике ВидДоговора галка стоит, получить из входящих данных?
|
|||
3
Рэйв
22.12.11
✎
07:40
|
А почему бы не сделать проще
сделвать в ПКО ВидыДоговоров ПКС для Наименования и Код, где ПередВыгрузкой написать Если Источник.ВидДоговора = перечисления.ВидыДоговоровКонтрагентов.СПоставщиком Тогда // в ПКС кода Значение = "2.1.2"; // в ПКС Наименования Значение.Наименование = "2.1.2 Приобретение материалов"; Иначе //в ПКС Кода Значение = "7"; //в ПКС Наименования Значение = "7. Прочие"; КонецЕсли; потом сделать поиск по Коду...Ну или по коду и наименованию. Должно нормально перелететь вроде |
|||
4
Рэйв
22.12.11
✎
07:41
|
* Значение.Наименование = Значение
|
|||
5
Рэйв
22.12.11
✎
07:41
|
Ну вобщем в зависимости от значения перечисления ставить значение
|
|||
6
jyupiter
22.12.11
✎
07:48
|
(2) в ПКС СправВидыДоговоров флаг получить из входящих не стоит, потому что инфа берётся непосредственно из реквизитов источника
|
|||
7
jyupiter
22.12.11
✎
07:51
|
(5) я нашёл у себя ошибку: при переделке под описанную в теме схему я из ПКС "-->ВидыДоговоров" удалил ПКО СправВидыДоговоров
Поэтому реквизит никуда не попадал но когда я вернул ПКО на законное место, старая ошибка тоже вернулась. Выгруз аварийно завершается с ошибкой Ошибка при выгрузке данных для узла плана обмена ТипОбъекта = Справочник объект: Договоры контрагентов Объект = Основной договор ОписаниеОшибки = Поле объекта не обнаружено (СтрокаПоискаВыгрузкиСсылки) ПозицияМодуля = Обработка.ОбменДаннымиXML.МодульОбъекта(8740) КодСообщения = 72 УзелПланаОбмена = 002 |
|||
8
Рэйв
22.12.11
✎
07:57
|
(7)Ну, написало же
Обработка.ОбменДаннымиXML.МодульОбъекта(8740) Открывай в отладке, ставь точку останова на строке 8740 и смотри что ей надо. Правда прямым перебором долго на F5 скорее всего.Так что найди какое нибудь условие для точки останова |
|||
9
jyupiter
22.12.11
✎
08:02
|
(8)нет, по ф5 недолго, но всё равно ничего не ясно
СтрокаПоискаВыгрузкиСсылки - это поле структуры, которая ищется по объекту Объект - значение перечисления ВидыДоговоров Структура для него находится, а поле в ней с таким именем нет почему нет - не знаю, разобрать 10к строк кода быстро не смогу |
|||
10
jyupiter
22.12.11
✎
08:06
|
(3) поиск я делаю только по коду
разбор значений перечисления оставил в одном месте, а не раскидал по нескольким местам, потому что на самом деле значений у перечисления гораздо больше, и неохота дублировать разбор в разных местах |
|||
11
jyupiter
22.12.11
✎
08:08
|
(9) Скорее всего, поля с именем СтрокаПоискаВыгрузкиСсылки в структуре нет потому, что объект типа ПеречислениеСсылка, а не СправочникСсылка
Одно перечисление в другое конвертируется на ура, а вот перечисление в справочник меня беспросветно парит уже второй день((( |
|||
12
Мимохожий Однако
22.12.11
✎
08:14
|
Попробуй закомментировать поиск по коду.
|
|||
13
jyupiter
22.12.11
✎
08:22
|
(12)в каком месте закомментировать?
если снять флаг поиска с реквизита, выгруз делается, но значения Кода и Наименования для ВидДоговора в файл обмена не передаются |
|||
14
echo77
22.12.11
✎
08:44
|
А что как все сложно?
Я в свое время делал вот так(не лучшее решение, но работало): http://i31.fastpic.ru/big/2011/1222/1e/576d7122e0cd379484a897971556a01e.png http://i31.fastpic.ru/big/2011/1222/e1/cf21370ea066b9d46ea8fa7c4cc8c4e1.png |
|||
15
jyupiter
22.12.11
✎
08:45
|
(14) пока нихрена не умеешь - всегда сложно
переходим с 7,7 на 8,2 - приходится учиться |
|||
16
echo77
22.12.11
✎
08:49
|
(15) у тебя получилось?
|
|||
17
jyupiter
22.12.11
✎
08:51
|
(14) сначала я так и сделал, как на твоих картинках (и так же, как по книжке Бояркина, схема номер раз)
но при выгрузе выскакивала точно та же ошибка победить её не получилось, и я попробовал схему номер два ошибка оказалась более живучей, чем мой боевой настрой |
|||
18
dk
22.12.11
✎
08:55
|
(14) +1
тоже так же делал просто менял название если надо, как-то так Если Врег(Источник) = "НДС_18" Тогда Значение = "НДС 18%"; ИначеЕсли Врег(Источник) = "НДС_10" Тогда Значение = "НДС 10%"; ... ---- т.е сопоставлял в коде названия перечислений в 7-ке и названия в справочнике в 8-ке |
|||
19
jyupiter
22.12.11
✎
10:33
|
Обсуждение за рамками форума помогло выяснить, что я использую для выгруза не "Универсальный обмен ХМЛ", а встроенную в конфигурацию обработку для обмена данными ХМЛ. Видимо, начинка, то есть, модули, этих обработок сильно различаются
Поэтому было принято решение не парить больше моск ни себе, ни людям, завести в 7.7 реквизит ВидыДоговоровПрч типа Перечисление и передавать значение из 8.2 в него Спасибо всем, кто принял участие в обсуждении и помог прийти к этому решению, за которое и самому Соломону не должно было бы быть стыдно) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |