Полный пример отправки проверяет собственную конфигурацию, совпадение адреса, режим вопроса пользователю и запрет чувствительных категорий. Успех вызова не выдаётся за приём отчёта сервисом.
Где и как запускать
Полный модуль собственной управляемой формы: клиентская команда и клиентская функция создания контролируемого отчёта. В последнем уроке есть также серверная проверка политики.
Подготовка
Используйте собственную пустую учебную базу УчебнаяКонфигурацияСинтаксиса и отдельного учебного пользователя. Создайте управляемую обработку с командой ВыполнитьПример. Полный код каждого урока вставляйте в отдельную копию модуля формы.
Запускайте в тонком клиенте Windows или поддерживаемом толстом клиенте. Здесь не пример мобильного сервера: методы записи/отправки отчёта по справке клиентские.
Создаётся только контролируемое исключение с учебным сообщением. Не провоцируйте аварийное завершение 1С и не подменяйте его реальной рабочей ошибкой, содержащей персональные данные.
Отчёт автоматически использует настройки пользователя. До опыта вручную настройте в собственной базе запрет включения имени пользователя, сведений базы, подробного текста, системной информации и снимков. Просматривайте интерактивный отчёт перед сохранением/отправкой; сам конструктор не является анонимизацией.
Это необязательное упражнение с реальной сетью. Выполняйте только если вы самостоятельно подготовили и проверили принадлежащий вам учебный сервис приёма отчётов платформы. Не используйте чужой URL, рабочую поддержку, случайный HTTP-обработчик или фиктивный домен.
В собственной форме создайте строковые реквизиты УчебныйАдресСервиса и ПодтверждениеОтправки с полями ввода; изначально оба пустые. Настройки адреса/политики выставьте вручную только своему учебному пользователю. Общие дополнительные сведения должны быть пустыми.
Для чтения общих настроек учебный пользователь должен иметь Администрирование данных. Код не меняет политику, не обходит отказ в доступе и не включает привилегированный режим.
Перед запуском введите адрес своего сервиса и точную фразу ОТПРАВИТЬ УЧЕБНЫЙ ОТЧЕТ В МОЙ СЕРВИС. В открывшейся форме просмотрите все категории, адресата и окончательно подтвердите либо отмените. Отдельно проверьте журнал собственного получателя.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Если ПодтверждениеОтправки <> "ОТПРАВИТЬ УЧЕБНЫЙ ОТЧЕТ В МОЙ СЕРВИС" Тогда
ВызватьИсключение "Нужно явное подтверждение учебной отправки";
КонецЕсли;
Если ПустаяСтрока(УчебныйАдресСервиса) Тогда
ВызватьИсключение "Укажите адрес своего заранее настроенного учебного сервиса";
КонецЕсли;
ПроверитьСвойУчебныйСервисНаСервере(УчебныйАдресСервиса);
Отчет = СоздатьСобственныйУчебныйОтчет();
Отчет.Описание = "Собственный учебный отчёт: книга guide-book, количество 3";
Отчет.ДополнительныеДанные = Новый Структура("Ключ,Количество", "guide-book", 3);
Если Отчет.ДополнительныеФайлы.Количество() <> 0 Тогда
ВызватьИсключение "Есть неожиданные вложения; отправка запрещена";
КонецЕсли;
ПодтверждениеОтправки = "";
Отчет.Отправить(Истина);
Сообщить("Метод вернул управление. Это не подтверждение согласия, сетевой доставки или принятия отчёта сервисом");
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ПроверитьСвойУчебныйСервисНаСервере(ОжидаемыйАдрес)
Настройки = ОбработкаОшибок.ПолучитьНастройкиПользователя();
Общие = ОбработкаОшибок.ПолучитьОбщиеНастройки();
Если Настройки.АдресСервисаОбработкиОшибок <> ОжидаемыйАдрес Тогда
ВызватьИсключение "Адрес текущего пользователя не совпал с вашим учебным сервисом; наследование здесь запрещено";
КонецЕсли;
Если Настройки.ОтправлятьОтчетНаКлиенте <> РежимОтправкиИнформацииОбОшибке.СпрашиватьПользователя Тогда
ВызватьИсключение "Для упражнения требуется режим СпрашиватьПользователя";
КонецЕсли;
Запрет = РежимОтправкиИнформацииОбОшибке.НеОтправлять;
Если Настройки.ВключатьИмяПользователяВОтчетНаКлиенте <> Запрет
Или Настройки.ВключатьПодробныйТекстОшибкиВОтчетНаКлиенте <> Запрет
Или Настройки.ВключатьСведенияОбИнформационнойБазеВОтчетНаКлиенте <> Запрет
Или Настройки.ВключатьИнформациюОСистемеВОтчетНаКлиенте <> Запрет
Или Настройки.ВключатьСнимокОконВОтчетНаКлиенте <> Запрет Тогда
ВызватьИсключение "Чувствительные категории не запрещены явно; отправка запрещена";
КонецЕсли;
Если Не ПустаяСтрока(Настройки.ДополнительнаяИнформацияОтчета)
Или Не ПустаяСтрока(Общие.ДополнительнаяИнформацияОтчета) Тогда
ВызватьИсключение "Дополнительная информация пользователя/общих настроек не пуста";
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция СоздатьСобственныйУчебныйОтчет()
Попытка
ВызватьИсключение "Учебная ошибка проверки книги guide-book";
Исключение
Информация = ИнформацияОбОшибке();
Возврат Новый ОтчетОбОшибке(Информация);
КонецПопытки;
КонецФункцииРазбор по шагам
Клиентская команда требует непустой адрес и собственное явно введённое подтверждение. Пустое значение по умолчанию не инициирует отправку.
Серверная процедура проверяет имя своей конфигурации, точный пользовательский адрес без наследования и режим СпрашиватьПользователя. Она только читает текущие настройки.
Пять чувствительных категорий должны быть явно НеОтправлять. Авто не принимается за анонимизацию. Дополнительная строка пользователя и общих настроек обязана быть пустой.
Конструктор получает нашу контролируемую ошибку, а не реальный аварийный дамп. Проверка пустых вложений предшествует Отправить.
Отправить(Истина) открывает интерактивную форму. Метод не возвращает доказательство доставки; запрет/отсутствие адресата могут означать отсутствие действий, а отмена пользователя — отсутствие отправки.
Фраза сбрасывается перед вызовом, чтобы повторный запуск требовал нового намеренного подтверждения. Проверка настроек не защищает от их конкурентного изменения и не является полноценной системой безопасности.
Как проверить результат
При пустом адресе, неверной фразе, неподходящей политике или чужой конфигурации отправка не вызывается.
На собственном настроенном сервисе подтвердите учебный отчёт и проверьте факт приёма по его журналу. Отмена окна не должна выдаваться за доставку.
В тесте не используются рабочие сведения, снимки, вложения или токены. Сам код в данном руководстве в 1С и по сети не проверялся.
Ожидаемый результат
Подготовлен полный добровольный пример отправки с проверками и отдельным подтверждением реальной доставки.
На что обратить внимание
Реальная отправка — внешнее действие. Без своего проверенного сервиса пропустите запуск этого упражнения, сохранив пример для изучения.
Проверка имени конфигурации не доказывает владение адресатом; это обеспечивается вашей подготовкой и контролем собственного сервиса.
Не публикуйте JSON или содержимое отчёта только потому, что учебные поля безопасны: автоматические поля требуют отдельного просмотра.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.