Имя: Пароль:
1C
1С v8
ЭтотОбъект.ДополнительныеСвойства непонятно отрабатывает
0 serg-lom89
 
19.11.18
12:57
Всем добрый день

в модуле объекта спр. Контрагенты в процедуре ПередЗаписью() добавил код

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

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


затем в процедуре ПриЗаписи()

    СтруктураДопСвойств =  ЭтотОбъект.ДополнительныеСвойства;
    ЭтоНовый_ЦБ = СтруктураДопСвойств.Свойство("ЭтоНовый_ЦентральнойБазы");

определяю это новый или нет,и вот тут самое интересное.

    СтруктураДопСвойств =  ЭтотОбъект.ДополнительныеСвойства;
    ЭтоНовый_ЦБ = СтруктураДопСвойств.Свойство("ЭтоНовый_ЦентральнойБазы");
ЭтоНовый_ЦБ всегда возвращает истина,когда новый и когда перезаписываешь элемент повторно.

а вот ЭтоНовый_ЦБ = СтруктураДопСвойств.ЭтоНовый_ЦентральнойБазы;
возвращает только когда Новый элемент..
ЧЯДНТ?
1 RomanYS
 
19.11.18
13:01
Свойство() возвращает наличие параметра, а не его значение
2 RomanYS
 
19.11.18
13:03
если наличие параметра гарантировано, используй
ЭтоНовый_ЦБ = СтруктураДопСвойств.ЭтоНовый_ЦентральнойБазы;
если параметра может не быть
ЭтоНовый_ЦБ = СтруктураДопСвойств.Свойство("ЭтоНовый_ЦентральнойБазы") И СтруктураДопСвойств.ЭтоНовый_ЦентральнойБазы;
3 serg-lom89
 
19.11.18
13:09
(2) Т.е. если свойства может не быть,тогда надо сразу проверить есть ли свойство и только потом проверять значение параметра?
4 RomanYS
 
19.11.18
13:10
(3) именно
СтруктураДопСвойств.ЭтоНовый_ЦентральнойБазы - получишь ошибку, если параметра нет
5 serg-lom89
 
19.11.18
13:16
(4) да )))
Спасибо большое ))))
6 Target1025
 
17.04.19
08:36
(0) Столкнулся с этой проблемой сегодня. В моем случае - добавленный документ при обновлении базы не внес в подписку на событие ПередЗаписьюДокументаДляУдаленияДвижений
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.