Имя: Пароль:
1C
 
Типовой код из 1с Документооборот, сложности с пониманием
0 YFedor
 
05.07.23
16:28
Добрый день!

Поясните, пожалуйста, зачем такой код:

// Ввод нового
    Если Объект.Ссылка.Пустая() Тогда
        СостояниеТекст = Строка(Перечисления.СостоянияДокументов.НаРегистрации);
        
        ВОтветНа = Справочники.ИсходящиеДокументы.ПустаяСсылка();
        НачальноеВОтветНа = ВОтветНа;
        
        Если ЗначениеЗаполнено(ВОтветНа) Тогда //ЗАЧЕМ ЭТО?
            РеквизитыВОтветНа = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ВОтветНа,
                "РегистрационныйНомер, ДатаРегистрации, Заголовок");
            Если ЗначениеЗаполнено(РеквизитыВОтветНа.РегистрационныйНомер)
                    И ЗначениеЗаполнено(РеквизитыВОтветНа.ДатаРегистрации) Тогда
                    ВОтветНаСтрока = СтрШаблон(НСтр("ru = '№ %1 от %2'"),
                        РеквизитыВОтветНа.РегистрационныйНомер, Формат(РеквизитыВОтветНа.ДатаРегистрации, "ДЛФ=D"));
            Иначе
                ВОтветНаСтрока = РеквизитыВОтветНа.Заголовок;
            КонецЕсли;
        КонецЕсли;
        
        ПредметПереписки = Неопределено;
        НачальныйПредметПереписки = ПредметПереписки;
        
        ПервичноеОбращение = Справочники.ВходящиеДокументы.ПустаяСсылка();
        НачальноеПервичноеОбращение = ПервичноеОбращение;
        
        ОсновноеОбращение = Справочники.ВходящиеДокументы.ПустаяСсылка();
        НачальноеОсновноеОбращение = ОсновноеОбращение;
        
        Элементы.Обзор.Видимость = Ложь;
        Элементы.СтраницаФайлы.Видимость = Истина;
        
    Иначе

Этот код в модуле объекта справочника, в процедуре "ПриСозданииНаСервере"
Меня интересует вот эта строка: "Если ЗначениеЗаполнено(ВОтветНа) Тогда //ЗАЧЕМ ЭТО?"

"//ЗАЧЕМ ЭТО?" - это я добавил, при выкладываниии сюда.

Ведь к моменту выполнения этой строки "ВОтветНа" всегда пустая ссылка и, поэтому, не заполнено.
1 majkk
 
05.07.23
16:32
(0) ctrl-c ctrl-v
2 ДиВаH2
 
05.07.23
17:13
(0) В ДО 2.1 очень плохо с кодом, постоянно проверяют одно и тоже условие в разных блоках, могут в переменную закинуть результат условия и спустя пару абзацев забыть про эту переменную и опять начать проверку.

Разные команды в разное время просто тупо вставляли свой код ))
3 Franchiser
 
05.07.23
18:47
Может быть на случай , что не удалось выполнить присвоение пустой ссылки ?
4 YFedor
 
06.07.23
09:16
(3) А как такое может быть? Здесь ведь просто оператор присвоения, если не удалось, то будет ошибка.
5 mikecool
 
06.07.23
09:26
(0) если вы не видете смысла - возможно его там просто нет
6 Галахад
 
06.07.23
09:26
Скорее всего "ВОтветНа = " появилась позднее.
7 Гипервизор
 
06.07.23
11:06
(0) Тоже раньше задавал такие вопросы, было трепетное отношение к типовому коду. Потом пришло понимание, что его пишут совсем не небожители.
Как там в "Смешариках": "Я такой же дурак, как и вы! Только чуть-чуть… эрудированней."
8 Valdis2007
 
06.07.23
16:08
да просто люди раньше на плюсах писали, там все время проверять все надо, тк нет ГК. вот и проверяют
9 Mort
 
07.07.23
00:18
Лучше бы автор назвал переменную ВОтветНах, а так недосказанность некоторая.
Стандартная ситуация - у одного умника было слишком много времени, у второго слишком мало.
Ошибка? Это не ошибка, это системная функция.