Вход | Регистрация



Запись УникальногоИдентификатора в реквизит

Запись УникальногоИдентификатора в реквизит
Я
   ilyavorobyev
 
14.03.18 - 15:18
Добрый день.
Пишу в модуле менеджера справочника такой код и при записи он не заполняет реквизит, в чем может быть проблема?

Процедура ПриЗаписи(Отказ)
    ЭтотОбъект.УникальныйИдентификаторСтрока = Строка(Ссылка.УникальныйИдентификатор());
КонецПроцедуры
 
 
   Cyberhawk
 
1 - 14.03.18 - 15:20
При записи уже ничего не запишешь в объект
   Cyberhawk
 
2 - 14.03.18 - 15:21
Объект уже записан в БД и изменению не подлежит
   ilyavorobyev
 
3 - 14.03.18 - 15:21
(1) А перед записью, он ведь не имеет еще ссылки? или через получитьссылкунового?
   Cyberhawk
 
4 - 14.03.18 - 15:21
Устанавливай ссылку новому и в ПередЗаписью сохраняй
   Волшебник
 
5 - 14.03.18 - 15:21
Например, это новый объект и у него ещё нет ссылки.
   Necessitudo
 
6 - 14.03.18 - 15:21
В модуле менеджера? ПриЗаписи?
   ilyavorobyev
 
7 - 14.03.18 - 15:28
Если ЭтотОбъект.ЭтоНовый() Тогда 
        // Получаем возможно уже установленную ранее ссылку нового 

        СсылкаНаОбъект = ЭтотОбъект.ПолучитьСсылкуНового(); 
        Если НЕ ЗначениеЗаполнено(СсылкаНаОбъект) Тогда 
            // Если ссылка нового пустая, то запрашиваем ее у менеджера и устанавливаем 

            СсылкаНаОбъект = Справочники.ХарактеристикиНоменклатуры.ПолучитьСсылку(); 
            ЭтотОбъект.УстановитьСсылкуНового(СсылкаНаОбъект); 
        КонецЕсли; 
        УникальныйИдентификаторСтрока = Строка(ЭтотОбъект.Ссылка.УникальныйИдентификатор());
    КонецЕсли;
   ilyavorobyev
 
8 - 14.03.18 - 15:28
Не заполняет, все равно
   Mankubus
 
9 - 14.03.18 - 15:31
(7) перед записью делаешь?
   ilyavorobyev
 
10 - 14.03.18 - 15:32
(9) Ага
 
 Рекламное место пустует
   Cyberhawk
 
11 - 14.03.18 - 15:33
(8) СП в помощь. Ты делаешь не то. У нового никакой ссылки и нет. Тебе надо ее сгенерировать и установить.
   Cyberhawk
 
12 - 14.03.18 - 15:34
Ты там кем и как работаешь?
   Cyberhawk
 
13 - 14.03.18 - 15:34
На окладе штаны протираешь аль во фране попу мылишь?
   Serg_1960
 
14 - 14.03.18 - 15:40
(7) То, что ты установил ссылку новому объекту, вовсе не означает что теперь можно обращаться по ссылке в базу - объекта ещё нет в базе. Ок?
   ilyavorobyev
 
15 - 14.03.18 - 15:42
(14) Ок а как тогда гуид его получить?
   ilyavorobyev
 
16 - 14.03.18 - 15:44
Все получилось
        ЭтотОбъект.УстановитьСсылкуНового(Справочники.ХарактеристикиНоменклатуры.ПолучитьСсылку(Новый УникальныйИдентификатор));
УникальныйИдентификаторСтрока = Строка(ЭтотОбъект.ПолучитьСсылкуНового().УникальныйИдентификатор());
   VS-1976
 
17 - 14.03.18 - 15:46
(16) В модуле менеджера или всё же объекта? Это несколько разные вещи...
   ilyavorobyev
 
18 - 14.03.18 - 15:49
(17) модуле объекта конечно
   Serg_1960
 
19 - 14.03.18 - 16:07
УИД = Новый УникальныйИдентификатор();
ЭтотОбъект.УстановитьСсылкуНового(Справочники.ХарактеристикиНоменклатуры.ПолучитьСсылку(УИД));
ЭтотОбъект.УникальныйИдентификаторСтрока = УИД;
   Cyberhawk
 
20 - 14.03.18 - 16:17
(19) Любитель давать непрошенные советы? )
   Serg_1960
 
21 - 14.03.18 - 21:43
Ага, меня прям распирает от желания делиться знаниями :)

PS: Посмотри внимательно на алгоритм в (16)
   Cyberhawk
 
22 - 14.03.18 - 23:01
Ага, глядел конечно, то что там не кофильфо стало понятно сразу после прочтения и в голове мысля такая же родилась, как и у тебя в виде (19).
Но там же и фраза "Все получилось", т.е. оно работает, и Я воздержался от акта перфекционизма )
   ilyavorobyev
 
23 - 14.03.18 - 23:23
(19) Спасибо! Переписал, так действительно лучше!


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует