|
Конвертация: перенос единиц хранения остатков | ☑ | ||
---|---|---|---|---|
0
TigerPXN
02.03.12
✎
17:04
|
Пишу тут конвертацию из УТ10.3 в такую же УТ.
Столкнулся с известной проблемой: не всегда заполняется реквизит ЕдиницаХраненияОстатков в Номенклатуре. Постараюсь собрать тут все известное по этой проблеме, предложу уточненное решение и что-нибудь поспрашиваю :) Для исправления указанной проблемы рекомендуют в ПКО ЕдиницыИзмерения ПередВыгрузкой добавить: Если Правила.Номенклатура.Выгруженные[Источник.Владелец] = Неопределено Тогда ВыгрузитьПоПравилу(Источник.Владелец); КонецЕсли; Признаюсь, я не совсем понял идею этого фрагмента. Он позволяет гарантировать, что номенклатура-владелец будет выгружена раньше единицы измерения. Но что нам это дает? Ведь если номенклатура выгружается раньше единицы, то реквизит как раз и не должен быть заполнен. Или тут проблема в том, что единица измерения без владельца не может быть найдена/создана? Кто разбирался, подскажите, пожалуйста. В любом случае, для решения аналогичной проблемы в обмене УТ-Розница1.0 этого фрагмента кода вполне хватило. Но при обмене УТ-УТ у меня возникла та же проблема, что и в v8: Конвертация v2: Как у справочника Единицы Измерения поменять тип Владелец? А именно: "Получение элемента по индексу для значения не определено" для Правила.Номенклатура.Выгруженные[Источник.Владелец]. Подозреваю, что проблема в том, что у нас в данном случае Владелец может быть разных типов, а не только Номенклатура. В указанной выше ветке проблему пытались решить сильно обходными путями, что мне не понравилось. Поэтому я покопался и обнаружил, что Правила.Номенклатура.Выгруженные может быть не только соответствием, но и таблицей значений (с колонками Ключ, УзелСсылки, НППСсылки и др.). Честно сказать, удивился, так как в модуле универсальной обработки выгрузки к этой переменной, вроде, обращаются как к соответствию (хотя все 14000 строк модуля я подробно не изучал) и при выгрузке в Розницу все работает, если обращаться, как к соответствию. Но переписал фрагмент с учетом этого интересного факта: Если ТипЗнч(Источник.Владелец) = Тип("СправочникСсылка.Номенклатура") Тогда ВыгруженнаяНоменклатура = Правила.Номенклатура.Выгруженные; Если ТипЗнч(ВыгруженнаяНоменклатура) = Тип("Соответствие") Тогда Если ВыгруженнаяНоменклатура[Источник.Владелец] = Неопределено Тогда ВыгрузитьПоПравилу(Источник.Владелец); КонецЕсли; ИначеЕсли ТипЗнч(Правила.Номенклатура.Выгруженные) = Тип("ТаблицаЗначений") Тогда Если Правила.Номенклатура.Выгруженные.Найти(Источник.Владелец, "Ключ") = Неопределено Тогда ВыгрузитьПоПравилу(Источник.Владелец); КонецЕсли; КонецЕсли; КонецЕсли; Мне помогло, теперь все выгружается. Надеюсь, и еще кому-нибудь это может быть полезно. Но мне не понравилось, что я слишком многого не понял в этой истории. Вопросы к знатокам: 1) что конкретно мешает нормально выгружаться номенклатуре со всеми ссылками на подчиненные единицы измерения? 2) какой все-таки тип в каком случае имеет переменная Правила.Номенклатура.Выгруженные? От чего это зависит? 3) каким образом умудряется работать код "Правила.Номенклатура.Выгруженные[Источник.Владелец]", если ключом соответствия является узел XML-документа, а в выгрузке для поиска используется ссылка на элемент справочника? По крайней мере, я нашел только такой код формирования ключа соответствия (с сокращениями): УзелСсылки = СоздатьУзел("Ссылка"); УстановитьАтрибут(УзелСсылки, "Нпп", Нпп); УзелСсылки = УзелСсылки.Закрыть(); ВыгруженныеОбъекты[КлючВыгружаемыхДанных] = УзелСсылки; Люди добрые, помогите разобраться! :) |
|||
1
sergey yevsenya
02.03.12
✎
17:09
|
а зачем писать правила переноса в ТАКУЮ ЖЕ УТ?
|
|||
2
TigerPXN
02.03.12
✎
17:11
|
(1) Хочу замутить обмен между несколькими взаимосвязанными фирмами, которые торгуют друг с другом, но не хотят вести учет в одной базе.
|
|||
3
pumbaEO
02.03.12
✎
17:13
|
По ссылке не ходил, но как предложение:
приоритет у номенклатуры выше единиц, при выгрузки единиц в спомагательное поле писать это едина остатков, единица отчета. И после загрузке проставлять номенклатуре? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |