Поставил платформу 8.3.11 (ERP 2.4.1.240), включил поиск циклических ссылок и не смог даже войти в базу, т.к. система обнаружила циклическую ссылку и предоставила только 2 варианта - Завершить работу или Перезапустить клиент (что на мой взгляд плохое решение от разработчиков, т.к. правильней, с моей точки зрения, собрать все возможные циклические ссылки и вывалить их в тех.журнал или журнал регистрации, чтобы разработчик мог сосредоточиться только на критически важных участках, а не идти по "хлебным крошкам"). Участок в общем модуле СтандартныеПодсистемыКлиент:
Из кода можно понять, что создается структура "Параметры", куда потом добавляется объект ОписаниеОповещения, которому передается ссылка на эту же структуру. Понятно, что в таком случае структура будет жить вечно пока её принудительно никто не удалит. Из логики кода мне пока сложно понять сделано это умышленно или нет. Что думаете по этому поводу?
Процедура ПередНачаломРаботыСистемы(Знач ОповещениеЗавершения = Неопределено) Экспорт
Если ПараметрыПриложения = Неопределено Тогда
ПараметрыПриложения = Новый Соответствие;
КонецЕсли;
Если ОповещениеЗавершения <> Неопределено Тогда
ОбщегоНазначенияКлиентСервер.ПроверитьПараметр("СтандартныеПодсистемыКлиент.ПередНачаломРаботыСистемы",
"ОповещениеЗавершения", ОповещениеЗавершения, Тип("ОписаниеОповещения"));
КонецЕсли;
УстановитьРазделениеСеанса();
Параметры = Новый Структура;
// Внешние параметры описания результата.
Параметры.Вставить("Отказ", Ложь);
Параметры.Вставить("Перезапустить", Ложь);
Параметры.Вставить("ДополнительныеПараметрыКоманднойСтроки", "");
// Внешние параметры управления выполнением.
Параметры.Вставить("ИнтерактивнаяОбработка", Неопределено); // ОписаниеОповещения.
Параметры.Вставить("ОбработкаПродолжения", Неопределено); // ОписаниеОповещения.
Параметры.Вставить("НепрерывноеВыполнение", Истина);
Параметры.Вставить("ПолученныеПараметрыКлиента", Новый Структура);
// Внутренние параметры.
Параметры.Вставить("ОповещениеЗавершения", ОповещениеЗавершения);
Параметры.Вставить("ОбработкаЗавершения", Новый ОписаниеОповещения(
"ДействияПередНачаломРаботыСистемыОбработкаЗавершения", ЭтотОбъект, Параметры));
ОбновитьПараметрыРаботыКлиента(Параметры, Истина, ОповещениеЗавершения <> Неопределено);
Параметры.Вставить("ОбработкаПродолжения", Новый ОписаниеОповещения(
"ДействияПередНачаломРаботыСистемыПослеПроверкиВерсииПлатфор мы", ЭтотОбъект, Параметры));
ПоказатьИз кода можно понять, что создается структура "Параметры", куда потом добавляется объект ОписаниеОповещения, которому передается ссылка на эту же структуру. Понятно, что в таком случае структура будет жить вечно пока её принудительно никто не удалит. Из логики кода мне пока сложно понять сделано это умышленно или нет. Что думаете по этому поводу?
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот