|
Запись УникальногоИдентификатора в реквизит | ☑ | ||
---|---|---|---|---|
0
ilyavorobyev
14.03.18
✎
15:18
|
Добрый день.
Пишу в модуле менеджера справочника такой код и при записи он не заполняет реквизит, в чем может быть проблема? Процедура ПриЗаписи(Отказ) ЭтотОбъект.УникальныйИдентификаторСтрока = Строка(Ссылка.УникальныйИдентификатор()); КонецПроцедуры |
|||
1
Cyberhawk
14.03.18
✎
15:20
|
При записи уже ничего не запишешь в объект
|
|||
2
Cyberhawk
14.03.18
✎
15:21
|
Объект уже записан в БД и изменению не подлежит
|
|||
3
ilyavorobyev
14.03.18
✎
15:21
|
(1) А перед записью, он ведь не имеет еще ссылки? или через получитьссылкунового?
|
|||
4
Cyberhawk
14.03.18
✎
15:21
|
Устанавливай ссылку новому и в ПередЗаписью сохраняй
|
|||
5
Волшебник
14.03.18
✎
15:21
|
Например, это новый объект и у него ещё нет ссылки.
|
|||
6
Necessitudo
14.03.18
✎
15:21
|
В модуле менеджера? ПриЗаписи?
|
|||
7
ilyavorobyev
14.03.18
✎
15:28
|
Если ЭтотОбъект.ЭтоНовый() Тогда
// Получаем возможно уже установленную ранее ссылку нового СсылкаНаОбъект = ЭтотОбъект.ПолучитьСсылкуНового(); Если НЕ ЗначениеЗаполнено(СсылкаНаОбъект) Тогда // Если ссылка нового пустая, то запрашиваем ее у менеджера и устанавливаем СсылкаНаОбъект = Справочники.ХарактеристикиНоменклатуры.ПолучитьСсылку(); ЭтотОбъект.УстановитьСсылкуНового(СсылкаНаОбъект); КонецЕсли; УникальныйИдентификаторСтрока = Строка(ЭтотОбъект.Ссылка.УникальныйИдентификатор()); КонецЕсли; |
|||
8
ilyavorobyev
14.03.18
✎
15:28
|
Не заполняет, все равно
|
|||
9
Mankubus
14.03.18
✎
15:31
|
(7) перед записью делаешь?
|
|||
10
ilyavorobyev
14.03.18
✎
15:32
|
(9) Ага
|
|||
11
Cyberhawk
14.03.18
✎
15:33
|
(8) СП в помощь. Ты делаешь не то. У нового никакой ссылки и нет. Тебе надо ее сгенерировать и установить.
|
|||
12
Cyberhawk
14.03.18
✎
15:34
|
Ты там кем и как работаешь?
|
|||
13
Cyberhawk
14.03.18
✎
15:34
|
На окладе штаны протираешь аль во фране попу мылишь?
|
|||
14
Serg_1960
14.03.18
✎
15:40
|
(7) То, что ты установил ссылку новому объекту, вовсе не означает что теперь можно обращаться по ссылке в базу - объекта ещё нет в базе. Ок?
|
|||
15
ilyavorobyev
14.03.18
✎
15:42
|
(14) Ок а как тогда гуид его получить?
|
|||
16
ilyavorobyev
14.03.18
✎
15:44
|
Все получилось
ЭтотОбъект.УстановитьСсылкуНового(Справочники.ХарактеристикиНоменклатуры.ПолучитьСсылку(Новый УникальныйИдентификатор)); УникальныйИдентификаторСтрока = Строка(ЭтотОбъект.ПолучитьСсылкуНового().УникальныйИдентификатор()); |
|||
17
VS-1976
14.03.18
✎
15:46
|
(16) В модуле менеджера или всё же объекта? Это несколько разные вещи...
|
|||
18
ilyavorobyev
14.03.18
✎
15:49
|
(17) модуле объекта конечно
|
|||
19
Serg_1960
14.03.18
✎
16:07
|
УИД = Новый УникальныйИдентификатор();
ЭтотОбъект.УстановитьСсылкуНового(Справочники.ХарактеристикиНоменклатуры.ПолучитьСсылку(УИД)); ЭтотОбъект.УникальныйИдентификаторСтрока = УИД; |
|||
20
Cyberhawk
14.03.18
✎
16:17
|
(19) Любитель давать непрошенные советы? )
|
|||
21
Serg_1960
14.03.18
✎
21:43
|
Ага, меня прям распирает от желания делиться знаниями :)
PS: Посмотри внимательно на алгоритм в (16) |
|||
22
Cyberhawk
14.03.18
✎
23:01
|
Ага, глядел конечно, то что там не кофильфо стало понятно сразу после прочтения и в голове мысля такая же родилась, как и у тебя в виде (19).
Но там же и фраза "Все получилось", т.е. оно работает, и Я воздержался от акта перфекционизма ) |
|||
23
ilyavorobyev
14.03.18
✎
23:23
|
(19) Спасибо! Переписал, так действительно лучше!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |