КД 2 - Перенос из 8,2 в 7,7 реквизита-перечисление в реквизит-справочник #586608


#0 by jyupiter
Источник - Платформа 8,2 Конфигурация УСО 1,3 Приёмник - Платформа 7,7 Конфигурация - сильно допиленная БУ ред.4,5 Пытаюсь написать правила обмена, чтобы получить хотя бы корректный и полный выгруз информации. Вот что сделано: В источнике у справочника ДоговорыКонтрагентов есть реквизит ВидДоговора типа ПеречислениеСсылка.ВидыДоговоровКонтрагентов Ему соответствует в приёмнике реквизит ВидДоговора типа Справочник.ВидыДоговоров Для ПКО Договоры прописано ПКС ВиДДоговора Источник пустой, приёмник - справочник ВидыДоговоров При выгрузке ПКС есть обработчик Прописано ПКО СправВидыДоговоров с пустым источником и приёмником-справочником Перед выгрузкой ПКО СправВидыДоговоров есть обработчик: Увы мне - не понимаю, зачем он нужен, тупо скопировал с книжки Бояркина-Филатова (стр 124) Ему подчинены два ПКС (Источники пустые, Приёмники - строковые реквизиты Код и Наименование соответственно) В каждом проставлен флаг есть обработчик ПриВыгрузке: И Беда ровно одна, но ужасная-преужасная. Информация по реквизиту ВидДоговора не попадает в файл выгруза. Пытался сделать иначе (то есть, как у Бояркина по первой схеме), но выгруз вообще не завершался - прерывался с ошибкой "Поле объекта не обнаружено (СтрокаПоискаВыгрузкиСсылки)" в процессе выгрузки ВидаДоговора. Мой опыт "работы" с КД2 составляет две недели, я даже не понимаю толком, как задать правильный вопрос. Надо что-то доделать? Или переделать? Что именно?
#1 by jyupiter
Забыл сказать: Для создания правил обмена используется Конвертация Данных 2.1.5.1 на платформе 8.2 (если это имеет какую-то важность)
#2 by Aleksey
В справочнике ВидДоговора галка стоит, получить из входящих данных?
#3 by Рэйв
А почему бы не сделать проще сделвать в ПКО ВидыДоговоров ПКС для Наименования и Код, где ПередВыгрузкой написать Если Источник.ВидДоговора = перечисления.ВидыДоговоровКонтрагентов.СПоставщиком Тогда потом сделать поиск по Коду...Ну или по коду и наименованию. Должно нормально перелететь вроде
#4 by Рэйв
* Значение.Наименование = Значение
#5 by Рэйв
Ну вобщем в зависимости от значения перечисления ставить значение
#6 by jyupiter
в ПКС СправВидыДоговоров флаг получить из входящих не стоит, потому что инфа берётся непосредственно из реквизитов источника
#7 by jyupiter
я нашёл у себя ошибку: при переделке под описанную в теме схему я из ПКС "-->ВидыДоговоров"  удалил ПКО СправВидыДоговоров Поэтому реквизит никуда не попадал но когда я вернул ПКО на законное место, старая ошибка тоже вернулась. Выгруз аварийно завершается с ошибкой Ошибка при выгрузке данных для узла плана обмена    ТипОбъекта             =  Справочник объект: Договоры контрагентов    Объект                 =  Основной договор    ОписаниеОшибки         =  Поле объекта не обнаружено (СтрокаПоискаВыгрузкиСсылки)
#8 by Рэйв
Обработка.ОбменДаннымиXML.МодульОбъекта(8740) Открывай в отладке, ставь точку останова на строке 8740 и смотри что ей надо. Правда прямым перебором долго на F5 скорее всего.Так что найди какое нибудь условие для точки останова
#9 by jyupiter
нет, по ф5 недолго, но всё равно ничего не ясно СтрокаПоискаВыгрузкиСсылки - это поле структуры, которая ищется по объекту Объект - значение перечисления ВидыДоговоров Структура для него находится, а поле в ней с таким именем нет почему нет - не знаю, разобрать 10к строк кода быстро не смогу
#10 by jyupiter
поиск я делаю только по коду разбор значений перечисления оставил в одном месте, а не раскидал по нескольким местам, потому что на самом деле значений у перечисления гораздо больше, и неохота дублировать разбор в разных местах
#11 by jyupiter
Скорее всего, поля с именем СтрокаПоискаВыгрузкиСсылки в структуре нет потому, что объект типа ПеречислениеСсылка, а не СправочникСсылка Одно перечисление в другое конвертируется на ура, а вот перечисление в справочник меня беспросветно парит уже второй день(((
#12 by МимохожийОднако
Попробуй закомментировать поиск по коду.
#13 by jyupiter
в каком месте закомментировать? если снять флаг поиска с реквизита, выгруз делается, но значения Кода и Наименования для ВидДоговора в файл обмена не передаются
#14 by echo77
А что как все сложно? Я в свое время делал вот так(не лучшее решение, но работало):
#15 by jyupiter
пока нихрена не умеешь - всегда сложно переходим с 7,7 на 8,2 - приходится учиться
#16 by echo77
у тебя получилось?
#17 by jyupiter
сначала я так и сделал, как на твоих картинках (и так же, как по книжке Бояркина, схема номер раз) но при выгрузе выскакивала точно та же ошибка победить её не получилось, и я попробовал схему номер два ошибка оказалась более живучей, чем мой боевой настрой
#18 by dk
+1 тоже так же делал просто менял название если надо, как-то так ... ---- т.е сопоставлял в коде названия перечислений в 7-ке и названия в справочнике в 8-ке
#19 by jyupiter
Обсуждение за рамками форума помогло выяснить, что я использую для выгруза не "Универсальный обмен ХМЛ", а встроенную в конфигурацию обработку для обмена данными ХМЛ. Видимо, начинка, то есть, модули, этих обработок сильно различаются Поэтому было принято решение не парить больше моск ни себе, ни людям, завести в 7.7 реквизит ВидыДоговоровПрч типа Перечисление и передавать значение из 8.2 в него Спасибо всем, кто принял участие в обсуждении и помог прийти к этому решению, за которое и самому Соломону не должно было бы быть стыдно)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С