|
КД. Замена родителя элемента справочника | ☑ | ||
---|---|---|---|---|
0
PCcomCat
06.07.15
✎
18:07
|
Доброго времени, уважаемые!
При выгрузке табличной части документа необходимо значение реквизита Номенклатура менять на номенклатуру-аналог, но при этом родителем для аналога должен быть родитель реквизита Номенклатура. При выгрузке реквизита передаю структуру данных с родителем. При выгрузке элемента номенклатуры проверяю заполнение входящих данных и меняю родителя на значение из входящих данных. В результате в базе-приемнике получаю зацикливание уровней. Не могу понять, как исправить косяк. Подскажите, пожалуйста, умные способы замены родителя. |
|||
1
Cyberhawk
06.07.15
✎
18:29
|
Шта? Объясни четче
|
|||
2
PCcomCat
07.07.15
✎
08:55
|
Чётче: нужно в выборочных случаях при выгрузке одного элемента справочника задать ему родителя другого элемента, и чтобы в приемнике не было зацикливания уровней.
Как это лучше сделать? Прошу совета. |
|||
3
Cyberhawk
07.07.15
✎
08:56
|
Ну, раз "при выгрузке", то заходишь в карточку элемента, у которого надо задать другого родителя, и задаешь.
|
|||
4
PCcomCat
07.07.15
✎
09:01
|
(3) В некоторых случаях, только при выгрузке определенного документа нужно заимствовать родителя.
Я и передаю из документа входящие данные для элемента справочника. При выгрузке всё красиво, а при загрузке почему-то зацикливание уровней дает. Понимаю, что руки, но не могу понять в каком месте. |
|||
5
Cyberhawk
07.07.15
✎
09:03
|
Что такое "зацикливание уровней"?
|
|||
6
PCcomCat
07.07.15
✎
09:04
|
(5) Ошибка такая выдается в приемнике при попытке просмотреть элемент.
|
|||
7
Cyberhawk
07.07.15
✎
09:05
|
(6) ну, и что у этого элемента в реквизите "Родитель"?
|
|||
8
Cyberhawk
07.07.15
✎
09:07
|
Навскидку - используй входящие данные _при загрузке_ только для элементов, а не для групп.
|
|||
9
PCcomCat
07.07.15
✎
09:08
|
(7)
Если ТипЗнч(ВходящиеДанные) = Тип("Структура") тогда Значение = ВходящиеДанные.Родитель; ВходящиеДанные = Неопределено; Иначе Значение = Источник.Родитель; КонецЕсли; |
|||
10
PCcomCat
07.07.15
✎
09:10
|
+(9) А перед выгрузкой Элемента:
Если Источник.ЭтоГруппа тогда //НеЗамещатьОбъектПриЗагрузке = Истина; ВходящиеДанные = Неопределено; Отказ = Истина; КонецЕсли; Если ТипЗнч(ВходящиеДанные)=Тип("Структура") тогда НеЗамещатьОбъектПриЗагрузке = Ложь; //Попытка СтруктураОбъекта = Новый Структура("Родитель"); СтруктураОбъекта.Вставить("Родитель",ВходящиеДанные.Родитель); Сообщить("- 5 в номенклатуре источник - " + СокрЛП(Источник)); Сообщить("- 6 в номенклатуре родитель - " + СокрЛП(ВходящиеДанные.Родитель)); //ИсходящиеДанные = СтруктураОбъекта; //ВходящиеДанные = Неопределено; //Исключение //КонецПопытки; Иначе Сообщить("- 5, 6 не структура - " + СокрЛП(Источник)); СтруктураОбъекта = Новый Структура("Родитель"); СтруктураОбъекта.Вставить("Родитель",Источник.Родитель); ВходящиеДанные = СтруктураОбъекта; КонецЕсли; |
|||
11
PCcomCat
07.07.15
✎
09:11
|
Правда перед этим не было условия на группу - может из-за этого осталась абра-кадабра. Но как ее исправить?
|
|||
12
PCcomCat
07.07.15
✎
09:25
|
Спасибо за моральную поддержку - наверное, она мне была необходима! Обнаружила недостающую строчку в коде и разрешила замену групп - и всё исправилось. Ещё раз - спасибо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |