|
Конвертация. Передача статичного значения в реквизит объекта-приемника | ☑ | ||
---|---|---|---|---|
0
Droning1C
30.08.19
✎
12:09
|
Доброго времни суток!
ПКО После загрузки документа пишу - Объект.ПризнакУчета = Перечисления.ПризнакУчета.Учет2; Но реквизит не записывается. Если написать так- Объект.ПризнакУчета = Перечисления.ПризнакУчета.Учет2; Объект.Записать(); ,то реквизит записывается, но время конвертации документа сильно увеличивается. Сдается мне, что я что-то делаю неверно. Должен быть какой-то стандартный метод передачи статичного значения реквизиту приемника. Может через ПКС как-то? Подскажите плз, или киньте ссыль |
|||
1
Ёпрст
30.08.19
✎
12:11
|
Проще прердать это значение в ПередВыгрузкой
|
|||
2
Cyberhawk
30.08.19
✎
12:15
|
"Но реквизит не записывается" // Из-за прикладного кода, выполняющегося дальше
|
|||
3
Cyberhawk
30.08.19
✎
12:15
|
Если у тебя оно в ПослеЗагрузки не работает, то и передача из приемника тоже не поможет
|
|||
4
Droning1C
30.08.19
✎
12:20
|
(2) Так все же как правильно делать такие операции?
|
|||
5
Droning1C
30.08.19
✎
12:20
|
(1) Как именно, если в источнике вообще нет такого перечисления? Там такой код не отработает
|
|||
6
Aleksey
30.08.19
✎
12:33
|
(5) отработает. Просто пишешь
Значение = "Учет2"; |
|||
7
Aleksey
30.08.19
✎
12:34
|
Обмен какой? В ручную или меняешь правила у типового плана обмена?
Просто во втором случае как раз процедура после загрузки из правил не отрабатывает |
|||
8
Droning1C
30.08.19
✎
12:42
|
(7) в ручную. тоесть я делаю пкс следующего вида: источник-пусто, приемник- ПризнакУчета. Перед выгрузкой свойства пишу -
Значение = Перечисления.ПризнакУчета.Учет2; Флаг получить из входящих данных Ложь или Истина? |
|||
9
Droning1C
30.08.19
✎
12:45
|
(7) Я правильно понял?
|
|||
10
Droning1C
30.08.19
✎
12:49
|
Еще вопрос, если я вас не утомил...
Если НЕ Объект.ЭтоГруппа И НЕ Объект.Услуга Тогда ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(, Объект.Ссылка); Если ВыборкаЕдиниц.Следующий() Тогда НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка; Иначе НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); НайденнаяЕдиницаОбъект.Наименование = СокрЛП(Объект.БазоваяЕдиницаИзмерения); НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = Объект.БазоваяЕдиницаИзмерения; НайденнаяЕдиницаОбъект.Коэффициент = 1; Сообщить(Объект.Ссылка); НайденнаяЕдиницаОбъект.Владелец = Объект.Ссылка; НайденнаяЕдиницаОбъект.УстановитьНовыйКод(); НайденнаяЕдиницаОбъект.Записать(); НайденнаяЕдиница = НайденнаяЕдиницаОбъект.Ссылка; КонецЕсли; при выполнении строчки кода с присваиванием владельца выдается ошибка - ОписаниеОшибки = Ошибка при вызове метода контекста (Записать): Значение поля "Владелец" не заполнено или заполнено неверно Метод сообщить же выдает нужную мне номенклатуру... |
|||
11
13_Mult
30.08.19
✎
12:59
|
(9) Не правильно. У вас нет в Источнике такого перечисления и поэтому пусто.
Передайте просто текст как в (6) и перечисление Приёмника его подхватит (если оно существует) |
|||
12
Ёпрст
30.08.19
✎
13:02
|
(10) у вас в источнике нема единиц измерения что-ле ? нафига это в при загрузке каждый раз искать\создавать ?
|
|||
13
Droning1C
30.08.19
✎
13:06
|
(12) в источнике тип единицы измерения СправочникСсылка.КалссификаторЕИ, в приемнике- СправочникССылка.ЕИ, пробовал по всякому, не получилось. Знаний пока не хватает... Поэтому сделал так.
Я найду, подучу. Но сейчас бухам надо быстро переконвертировать доки из базы в базу, нужен результат. Потому делаю, как получается(временно). Так почему же не отрабатывает присвоение владельца? Типы совпадают, ссылка на владельца существует... |
|||
14
Droning1C
30.08.19
✎
13:08
|
(11) Можете кинуть в меня камень, но я так и не понял. Как передать то?
|
|||
15
Ёпрст
30.08.19
✎
13:08
|
(13) отлично. Вот и пишите ПКО КалссификаторЕИ ---->ЕИ и тогда оно само перенесет нужную единицу во всех реквизитах.
|
|||
16
Ёпрст
30.08.19
✎
13:09
|
(14) как в (6)
|
|||
17
Droning1C
30.08.19
✎
13:11
|
(16) да я понял что как в 6. только вот где именно это написать?
|
|||
18
Ёпрст
30.08.19
✎
13:12
|
(17) в перед выгрузкой
|
|||
19
Droning1C
30.08.19
✎
13:19
|
(15) ок. делаю пкс. в источнике нет ни владельца, ни единицы по классчификатору, ни коэффициента. Правильно ли я поступаю?
Ставлю этим свойствам галки - получить из входящих данных, и в пко перед выгрузкой пишу ВходящиеДанные = Новый Структура; ЕдиницаПоКлассификатору = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796"); ВходящиеДанные.Вставить("ЕдиницаПоКлассификатору", ЕдиницаПоКлассификатору); Коэффициент = 1; ВходящиеДанные.Вставить("Коэффициент", Коэффициент); Только вот владельца то как получить? |
|||
20
Droning1C
30.08.19
✎
13:24
|
(18) может статейка какая-то полезная есть на примете? Очень уж хочется наконец понять принципы передачи данных в КД
|
|||
21
Вафель
30.08.19
✎
13:25
|
(0) должно записываться.
может повторная запись не взводит флаг модифицированности |
|||
22
Droning1C
30.08.19
✎
13:45
|
(19) (20) ап
|
|||
23
Йохохо
30.08.19
✎
13:52
|
(22) "ЕдиницаПоКлассификатору = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("796");" в источнике ты выполняешь код который имеет смысл только в приемнике
|
|||
24
Droning1C
30.08.19
✎
14:02
|
(23) бляха муха. я совсем запутался...
|
|||
25
Droning1C
30.08.19
✎
14:03
|
(23) https://ibb.co/tDzMXjf
вот. Так выглядят свойства ПКО КалссификаторЕИ ---->ЕИ что мне нужно сделать? я явно что-то очень важное упускаю в понимании процесса в целом. |
|||
26
Droning1C
30.08.19
✎
14:04
|
как мне ГРАМОТНО заполнить поля Владелец(Если я хочу чтобы сюда попадала номенклатура из которой по цепочке вызывается это правило), ЕдиницаПоКлассификатору(Штука), Коэфф (=1 всегда)
|
|||
27
Йохохо
30.08.19
✎
14:08
|
(26) проверить что в ПКО номенклатура корректно заполняется ключ записи (так вроде) и нет галки Не запоминать выгруженные, вроде так
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |