|
ЗарегистрироватьИзменения для нового элемента | ☑ | ||
---|---|---|---|---|
0
motkot
28.08.13
✎
16:19
|
Всем доброго дня!
Читал, читал, читал, но однозначного ответа на свой вопрос не нашел. Может кто сталкивался? В общем, есть УТ 11, не типовая. Есть платформа 8.2.17.143 В конфе есть два справочника "Номенклатура" и "ХарактеристикиНоменклатуры" (подчинен номенклатуре). Так же добавлен некий план обмена, в котором есть оба справочника, авторегистрация вЫключена. Вопрос, почему в событии "ПередЗаписью" нового элемента справочника "ХарактеристикиНоменклатуры" метод ПланыОбмена.ЗарегистрироватьИзменения(Получатели, Данные) дает ошибку "Недопустимое значение параметра (параметр номер '2')"? В аналогичной ситуации со справочником "Номеклатура" ошибок нет. Параметр "Данные" имеет тип "СправочникОбъект". Если же элемент справочника есть уже в базе, то все ОК. Так же было замечено, что проблема возникает на справочниках, где нет реквизита "код", т.е. длина кода в метаданных установлена = 0 (эти справочники у нас регистрируются в событии "ПослеЗаписи". Но в данной ситуации и у "Характеристик", и у "Номенклатур" реквизит "код" есть (точно не уверен, что он оказывает прямое влияние). Перевести регистрацию справочника "ХарактеристикНоменклатуры" в событие "ПослеЗаписи" можно без проблем, но хотелось бы вникнуть в ситуацию, почему все же у одного справочника регистрируются элементы, а у другого нет? |
|||
1
Maxus43
28.08.13
✎
16:25
|
в Получатели - точно только тот узел плана, куда включена характеристика?
|
|||
2
motkot
28.08.13
✎
16:37
|
(1) 147%
|
|||
3
Maxus43
28.08.13
✎
16:38
|
>>"ПередЗаписью" нового элемента справочника "ХарактеристикиНоменклатуры" метод ПланыОбмена.ЗарегистрироватьИзменения(Получатели, Данные) дает ошибку
Почему вообще Перед Записью анализируешь? ПриЗаписи |
|||
4
motkot
28.08.13
✎
16:41
|
(3) Я понимаю, но вопрос же - почему один справочник нормально проходит, другой нет?
|
|||
5
motkot
28.08.13
✎
16:42
|
(0) ошибся, читать "ПослеЗаписи" как "ПриЗаписи"
|
|||
6
motkot
28.08.13
✎
16:45
|
(3) да и нигде в документации вроде как не запрещено использовать "Перед записью"
|
|||
7
Maxus43
28.08.13
✎
16:52
|
(6) Незаписанный элемент нельзя зарегистрировать. Перед Записью - объекта ещё нет в БД
|
|||
8
motkot
28.08.13
✎
16:54
|
(7) почему объект "Номенклатура" регистрируется? его так же нет в БД
|
|||
9
Maxus43
28.08.13
✎
16:55
|
не, вру, можно
|
|||
10
motkot
28.08.13
✎
17:01
|
сравнил объекты, "типовые" реквизиты одинаковые, что в одно спр-нике, что в другом.
|
|||
11
motkot
28.08.13
✎
17:28
|
Хотелось бы все же докопаться до истины, пихать в "При записи" всегда успею
|
|||
12
motkot
28.08.13
✎
22:11
|
В общем решается через "Ссылку нового"
|
|||
13
Fragster
модератор
28.08.13
✎
23:00
|
Зачем ЗарегистрироватьИзменения, когда проще ОбменДанными.Получатели.Добавить?
|
|||
14
motkot
29.08.13
✎
09:31
|
(13) а если "получатели" это уже готовый массив? заново его перебирать?
|
|||
15
Fragster
модератор
29.08.13
✎
09:31
|
(14) если готовый - то все само на регистрацию встанет
|
|||
16
motkot
29.08.13
✎
09:36
|
(15) массив получателей получен совершенно в другом куске кода. что значит "само собой"?
|
|||
17
motkot
29.08.13
✎
09:37
|
(13) и чем проще использовать?
|
|||
18
Fragster
модератор
29.08.13
✎
09:38
|
(17) ну, например, не надо парится над тем, что ты сделал ПолучитьСсылкуНового, а кто-то в другой подписке сделал "установитьСсылкуНового" с другой ссылкой...
|
|||
19
Maxus43
29.08.13
✎
09:38
|
это кстати да, чото я затупил.
Нигде никогда не используется принудлительная регистрация объекта записываемого, это стандартный механизм обменов, регистрации происходит по окончании записи элемента. ЗарегистрироватьИзменения - используется для регистрации ссылок массово например, чотобы не перезаписывать объекты |
|||
20
motkot
29.08.13
✎
09:43
|
(18) получается если есть готовый массив с ссылками на планы обмена, то его нужно перебрать и выполнить ОбменДанными.Получатели.Добавить?
|
|||
21
Fragster
модератор
29.08.13
✎
09:44
|
(16)(18) да. а можно передать в то место, в котором массив формируется массив получателей - он там сразу и заполнится...
|
|||
22
motkot
29.08.13
✎
09:45
|
(19)(21) спасибо за разъяснения.
|
|||
23
Fragster
модератор
29.08.13
✎
09:45
|
(16)(20) я про "готовый массив" подума, что ты в обменданнымии.получатели заглянул и увидел свой список узлов
|
|||
24
motkot
29.08.13
✎
09:45
|
(23) если бы было бы так :)
|
|||
25
Maxus43
29.08.13
✎
09:48
|
Это делается в подписках обычно, у источника заполняются получатели, чтобы не плодить код непонятно где
|
|||
26
motkot
29.08.13
✎
09:49
|
(25) да я не против же.
|
|||
27
motkot
29.08.13
✎
09:50
|
а снять регистрацию (уже зарегистрированного), кроме как "УдалитьРегистрациюИзменений" можно как то?
|
|||
28
Fragster
модератор
29.08.13
✎
09:52
|
(27) тут да. но не при записи же это делать :)
|
|||
29
motkot
29.08.13
✎
09:55
|
всем спасибо за участие!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |