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

1С:Предприятие :: 1С:Предприятие 8 общая

ЭтотОбъект.ДополнительныеСвойства непонятно отрабатывает

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

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

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

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


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

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

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

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

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

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