Проверить наследование адреса отчётов, не печатая URL и сведения базы

Учебные задачи

Пустой адрес в настройках пользователя наследуется из общих. Общий пустой адрес означает отсутствие адресата для этого отчёта; дополнительная информация наследуется отдельно.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Учебная копия базы 8.5.1.1343: серверный общий модуль УчебныеЗадачи, процедура ВыполнитьПример() Экспорт. Каждый код без директив вставляйте в тело отдельно.

  2. Текущий учебный пользователь должен иметь Администрирование данных для чтения общих настроек. Не обходите отказ в доступе привилегированным режимом.

  3. ПолучитьНастройкиПользователя вызывается без имени: исследуется только текущий пользователь, не произвольный сотрудник.

  4. Задания только читают. Не вызывайте УстановитьНастройкиПользователя/УстановитьОбщиеНастройки, не имитируйте падение 1С и не отправляйте отчёт во внешние сервисы.

  5. Значения зависят от учебной базы. Диагностический вывод не доказывает отправку отчёта, получение согласия пользователя или доступность сервиса.

Настройки = ОбработкаОшибок.ПолучитьНастройкиПользователя();
Общие = ОбработкаОшибок.ПолучитьОбщиеНастройки();
Если Настройки.АдресСервисаОбработкиОшибок = "" Тогда
    ЭффективныйАдрес = Общие.АдресСервисаОбработкиОшибок;
    Сообщить("Адрес берётся из общих настроек");
Иначе
    ЭффективныйАдрес = Настройки.АдресСервисаОбработкиОшибок;
    Сообщить("Адрес задан в настройках текущего пользователя");
КонецЕсли;
Сообщить("Адрес задан: " + Строка(ЭффективныйАдрес <> ""));
Если ЭффективныйАдрес = "" Тогда
    Сообщить("Нет адреса пользовательского сервиса; этим кодом отчёт не отправляется");
КонецЕсли;
Если Настройки.ДополнительнаяИнформацияОтчета = "" Тогда
    ДополнительнаяИнформация = Общие.ДополнительнаяИнформацияОтчета;
    Сообщить("Дополнительная информация берётся из общих настроек");
Иначе
    ДополнительнаяИнформация = Настройки.ДополнительнаяИнформацияОтчета;
    Сообщить("Дополнительная информация задана для текущего пользователя");
КонецЕсли;
Сообщить("Длина дополнительной строки: " + Строка(СтрДлина(ДополнительнаяИнформация)));

Разбор по шагам

  1. Читаем пользовательские и общие настройки отдельно.

  2. Выбираем адрес по точной пустой строке согласно справке; не выполняем HTTP-запрос по нему.

  3. Для дополнительной информации применяем её собственное правило наследования.

  4. Выводим только источник/наличие адреса и длину дополнительной строки; URL, коды баз и значения строки не попадают в сообщения.

Как проверить результат

  1. Источник двух строк соответствует непустым/пустым полям текущей учебной базы.

  2. При пустом общем и пользовательском адресе диагностическое Адрес задан: Нет; это не проверка отдельного сервиса регистрации аварий 1С.

  3. В выводе нет самого URL, его query-параметров, имени базы или дополнительного текста.

Ожидаемый результат

Определены источники двух параметров отчёта без внешней отправки и вывода их содержимого.

На что обратить внимание

  1. Непустой адрес не доказывает доступность, доверенность сервиса или успешную отправку.

  2. Не объединяйте URL пользовательского сервиса с отдельной настройкой отправки аварий фирме 1С.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.