Имя: Пароль:
1C
 
КД обработчик при загрузке объекта не срабатывает
0 Администратор 1С
 
02.09.16
12:57
Здравствуйте,
Не могу разобраться с КД 2.1 (режим совместимости Версия БСП 2.0 и ниже), дано:
Есть ПКС для реквизита  типа справочник, для него есть ПКО, ПВД нет.
В ПКО "при загрузке" пишу:

"Объект.Наименование=Строка(Объект.Номенклатура)+"; "+Строка(Объект.Склад)"

Код не выполняется, элементы справочника создаются с пустым наименованием. Правила в приемник загрузил. Вот кусок правила:
...
-<Правило>

<Код>КлючиАналитикиУчетаНоменклатуры</Код>

<Наименование>: </Наименование>

<Порядок>1700</Порядок>

<ПриЗагрузке>Объект.Наименование=Строка(Объект.Номенклатура)+"; "+Строка(Объект.Склад)</ПриЗагрузке>

<Приемник>СправочникСсылка.КлючиАналитикиУчетаНоменклатуры</Приемник>


-<Свойства>


-<Свойство Поиск="true">...

Скриншот КД
https://www.dropbox.com/s/4byhtc3xp6k9joh/Скриншот%202016-09-02%2012.34.01.png?dl=0
1 Администратор 1С
 
02.09.16
13:05
гз
2 Администратор 1С
 
02.09.16
13:40
Не у кого не мыслей?
3 azt-yur
 
02.09.16
14:02
Используй обработчик ПослеЗагрузки.
А вообще правильнее было бы в ПКС ПередВыгрузкой установить Значение=Строка(Источник.Номенклатура)+"; "+Строка(Источник.Склад)
4 Администратор 1С
 
02.09.16
14:14
(3) спасибо, после загрузки тоже самое я пробовал разные варианты).

- Ок ПередВыгрузкой должно сработать, сделаю так.

Хотелось бы конечно разобраться почему эти обработчики не вызываются(
5 Defender aka LINN
 
02.09.16
14:23
Какие ваши доказательства, что не вызываются?
6 Администратор 1С
 
02.09.16
14:34
Косвенные доказательства я привел выше:
пустое наименование у созданного эл. справочника.
Собственно я не настаиваю, что не вызываются, другого объяснения придумать не могу.
7 Администратор 1С
 
02.09.16
14:37
1.Можно предположить что склад и номенклатура, пустые или не передаются в обработчик, но тогда наименование было бы = ";"
2. Возможно наименование затирается потом, но у меня в правилах такого  кода нет, в конфе думаю тоже
8 Администратор 1С
 
02.09.16
14:46
(5) В ПКО, в "после загрузки" вставил:
"Отказ=Истина;"

Но элемент справочника был перенесен, с пустым наименованием.
9 Йохохо
 
02.09.16
14:51
(8) не так все просто. Пора брать отладчик и ставить точку на "Объект.Наименование=Строка(Объект.Номенклатура)+"; "+Строка(Объект.Склад)"
10 Администратор 1С
 
02.09.16
14:58
(8) дык найти бы еще это место, перед тем как тему создавать пробовал отладчиком отловить. Не нашел в обработке "КонвертацияОбъектовИнформационныхБаз".
11 eskor
 
02.09.16
15:02
А с чего бы оно было не пустым? Если типу "строка" пытаетесь подсунуть сумму GUID. Скорее надо писать так:
<ПриЗагрузке>Объект.Наименование=Строка(Объект.Номенклатура.Наименование)+"; "+Строка(Объект.Склад.Наименование)</ПриЗагрузке>
12 Йохохо
 
02.09.16
15:04
(10) там же подробный хелп есть как выгрузить обработчики
(11) что то не то
13 Администратор 1С
 
02.09.16
15:08
(12) У меня режим совместимости включен
14 Администратор 1С
 
02.09.16
15:12
(11) это не "сумма GUID", а сумма строковых представлений.
15 Другая
 
02.09.16
15:48
ПриЗагрузке выполняется до заполнения объекта данными. Т.е. (теоретически) если присвоить значения, они заменятся данными выгрузки после этого события.
Правильно будет при выгрузке указывать наименование.
Либо перенести ваш код в событие "ПослеЗагрузки"
AdBlock убивает бесплатный контент. 1Сергей