Имя: Пароль:
1C
1С v8
8.2 УФ. После ПриСозданииНаСервере() не сохраняется реквизит.
0 Drac0
 
28.02.12
01:29
День добрый. Продолжается освоение 8.2 и произошел затык на ровном месте: в форме документа назначил событию ПриСозданииНаСервере одноименную процедуру, где реквизиту Собственник присваивается значение константы. Код проще некуда:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   ДокОб = ДанныеФормыВЗначение(Объект,Тип("ДокументОбъект.СписокТСОсмотр"));
   Если ДокОб.ЭтоНовый() = Истина Тогда
       ДокОб.Собственник = Константы.ОсновнаяОрганизация.Получить();
   КонецЕсли;
КонецПроцедуры

Но когда форма открывается этот реквизит оказывается незаполненным. Хотя отладчиком проверяю и на выходе из ПриСозданииНаСервере этот реквизит заполнен. Где происходит потеря - не могу понять. Других событий нет. Что я не так делаю? Буду благодарен за помощь.
1 НикДляЗапросов
 
28.02.12
01:31
Записать не пробовал?
2 H A D G E H O G s
 
28.02.12
01:32
ЗначениеВДанныеФормы забыл.

А вообще - бред.
3 Drac0
 
28.02.12
01:33
Пробовал. Этот реквизит обязателен к заполнению, поэтому ругается на то, что он не заполнен.
4 H A D G E H O G s
 
28.02.12
01:34
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Если НЕ ЗначениеЗаполнено(Объект.Ссылка) = Истина Тогда
       Объект.Собственник = Константы.ОсновнаяОрганизация.Получить();
   КонецЕсли;
КонецПроцедуры
5 Ranger_83
 
28.02.12
01:34
НЕ понимаю почему не делаешь так:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   
   Если ЭтоНовый() = Истина Тогда
       Собственник = Константы.ОсновнаяОрганизация.Получить();
   КонецЕсли;
КонецПроцедуры
6 GROOVY
 
28.02.12
01:34
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   
   Объект.Собственник = Константы.ОсновнаяОрганизация.Получить();
   
КонецПроцедуры
7 GROOVY
 
28.02.12
01:34
Хы...
8 H A D G E H O G s
 
28.02.12
01:35
(5) Потому что Собственник - реквизит объекта,  а не формы.
9 GROOVY
 
28.02.12
01:35
А вообще подобные штуки надо делать в модуле объекта в событии "ОбработкаЗаполнения".
10 H A D G E H O G s
 
28.02.12
01:35
(9) Бррр.
11 Drac0
 
28.02.12
01:36
(6)А потом другие значения будут затираться этим при открытии )
12 Ranger_83
 
28.02.12
01:36
(8)Этот реквизит формы ссылается на реквизит объекта
13 GROOVY
 
28.02.12
01:37
(10) Спокойно, обработка специально предназначена для заполнения реквизитов при создании, копировании, вводе на основании. Завязывать создание объекта на форму не верно!
14 Drac0
 
28.02.12
01:37
(5) потому что так не работает :)
15 H A D G E H O G s
 
28.02.12
01:38
(13) А вообще - подобные штуки надо делать в своей подписке на события, в своем модуле, дабы не корежить типовые.
16 H A D G E H O G s
 
28.02.12
01:38
(14) Пичаль.
17 Drac0
 
28.02.12
01:38
(13)Форм может быть несколько и логика обработок указанных событий может для каждой отличаться.
18 GROOVY
 
28.02.12
01:39
(15) Мы про типовые?
19 GROOVY
 
28.02.12
01:39
(17) А еще форм может вообще не быть. А объекты будут создаваться.
20 Drac0
 
28.02.12
01:40
(19) И...?
21 GROOVY
 
28.02.12
01:40
(17) Короче (4), (6) работает? Чем не устраивает?
22 GROOVY
 
28.02.12
01:41
(20) в (0) Написано что реквизит обязателен к заполнению, чем он без формы заполнится?
23 Drac0
 
28.02.12
01:46
(21) (4) работает, спасибо!
24 GROOVY
 
28.02.12
01:49
(просебя, бубня) вот после таких и сиди переписывай когда обмен данными делаешь... Эх...
25 Drac0
 
28.02.12
01:52
(24) Тока ногами не пинайте. 8-ка для меня пока полный ахалай-махалай -_-
Программист всегда исправляет последнюю ошибку.