Имя: Пароль:
1C
1С v8
Непонятка в ОбработкаЗаполнения в УФ
0 simol
 
01.06.12
12:53
Объясните пожалуйста.

В процедуре ОбработкаЗаполнения в модуля иерархического справочника во входном параметре ДанныеЗаполнения находится структура.


Свойства Родитель и ДатаОкончания. Первое соответствует стандартному реквизиту, а второй реквизиту объекта.

Процедура ОбработкаЗаполнения пустая.

Вопрос: Почему при открытии формы Родитель заполнен, а ДатаОкончания нет?

Наименования точно совпадают, так как если в ОбработкаЗаполнения  Добавить:
   Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
       ДатаОкончания = ДанныеЗаполнения.ДатаОкончания;
   КонецЕсли;    

То ДатаОкончания заполняется.
1 simol
 
01.06.12
12:54
+(0)Разумеется свойства структуры ДанныеЗаполнения  заполнены
2 Buster007
 
01.06.12
12:57
потому что РОдитель это стандартный реквизит 1С, на который возможно существуют предопределенные функции по заполнению в платформе, а вот на твой выдуманный реквизит, как-то 1С не сообразило сделать предопределенную функцию и предоставила тебе возможность самому заполнить его.
3 acsent
 
01.06.12
12:59
а галочка у реквизита стоит?
4 Buster007
 
01.06.12
12:59
или поставь у реквизита ДатаОкончания Заполнять из данных заполнения
5 simol
 
01.06.12
13:00
(4) О, спасибо!
6 simol
 
01.06.12
13:02
Плохо, что по этим галкам заполняется после процедуры ОбработкаЗаполнения
7 simol
 
01.06.12
13:03
+(6)

Пришлось такое куралесить
   Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
       ДанныеЗаполнения.Свойство("Родитель", Родитель);
       Если Не ДанныеЗаполнения.Свойство("ДатаОкончания", ДатаОкончания) И ЗначениеЗаполнено(Родитель) Тогда
           ДатаОкончания = Родитель.ДатаОкончания - (Цел(Родитель.Трудозатраты / 8) + 1) * 24*60*60            
       КонецЕсли;    
   КонецЕсли;
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс