Доброго времени суток!

Имеется проблема у нескольких клиентов, при попытке загрузки документов через типовую обработку "Универсальный обмен данными XML", при загрузке документа с данными, возникает следующая ошибка:

Настройки в универсальном обмене данными в приложенном файле.

Проблема началась после обновления БП до актуальной последней версии. На следующей версии БП наблюдается такая же проблема. До обновления такой проблемы не возникало

Конфигурации следующие:
Универсальный обмен данными в формате XML (1.0.3.532)
1С:Предприятие 8.3 (8.3.24.1691)
Бухгалтерия предприятия, редакция 3.0 (3.0.162.22) - Типовая, без доработок
---
Этот вариант помог, всё отработало как положено. Но не очень нравится подход, если у кого-то есть другие решения - буду благодарен если отпишитесь. Как временное решение, подойдёт:

В модуле формы "Управляемая форма" - "ПриСозданииНаСервере" заменил БезопасныйРежим с Истины на Ложь:

```1c
    Процедура Расш_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // Проверка прав доступа должна располагаться самой первой.
    Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
    ВызватьИсключение НСтр("ru = 'Использование обработки в интерактивном режиме доступно только администратору.'");
    КонецЕсли;

    ПроверитьВерсиюИРежимСовместимостиПлатформы();

    Объект.ЭтоИнтерактивныйРежим = Истина;
    #Удаление
    Объект.БезопасныйРежим = Истина;
    #КонецУдаления
    #Вставка
    Объект.БезопасныйРежим = Ложь; // < Временное исправление в связи с ошибкой
    #Конецвставки
    Объект.КодировкаФайлаПротоколаОбмена = "КодировкаТекста.UTF8";

    ЗаголовокФормы = НСтр("ru = 'Универсальный обмен данными в формате XML (%ВерсияОбработки%)'");
    ЗаголовокФормы = СтрЗаменить(ЗаголовокФормы, "%ВерсияОбработки%", ВерсияОбъектаСтрокойНаСервере());

    Заголовок = ЗаголовокФормы;

    ЗаполнитьСписокТиповДоступныхДляУдаления();

    КонецПроцедуры
```

Прошу по возможности ещё ответить у кого есть идеи, как это можно организовать
---
у пользователя полные права?
посмотрите на "защиту от опасных действий"
---
Да, полные
---
Я же правильно понимаю - через конфигуратор требуется проверить эту настройку? Если речь о ней - то галочка стоит.
Смущает то, что это работало до обновления, и перестало после, и переключать флажок для пользователей не очень хотелось бы
---
Кстати, отключение флажка "Защита от опасных действий" через конфигуратор не помогло. Ошибка точно такая же
---
Как я описывал в 5 - попробовал, результат не поменялся
---
Здравствуйте. Та же проблема! Удалось разобраться?
---
Всё ещё нет)
Есть предположение что возможно баг конфигурации, думаю в багтрекер напишу
---
А на какой платформе запускаете?
---
В описании темы все версии указаны
---
у меня релиз 3.0.160.22

ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(1996)}:ВызватьИсключение НСтр("ru = 'Действие недоступно в безопасном режиме.'");

этого вообще нет
---
в общих модулях по "Действие недоступно в безопасном режиме" тоже ничего нет.
Посмотрите конфигуратором, что выше стоит по коду, к чему идёт обращение - может видно будет
---
если возможно, скрин с кодом приложите
---
Прикладываю скриншот с текстом
---
У меня на принудительную запись версии объекта стало ругаться.
Типа не из модуля объекта процедура запущена следовательно ПривилегированныйРежим() возвращает ложь
Пришлось обойти с помощью подписки
---
Можете более подробно описать ваше решение пожалуйста? Где что дописать, куда что добавить, например
---
```1c
    Процедура ПроверитьБезопасныйРежимПередЗаписью(Источник, Отказ) Экспорт
    // АПК:75-выкл проверка ОбменДанными.Загрузка не нужна, т.к. данная проверка
    // должна выполняться всегда.

    // АПК:1371-выкл проверка применима для всех объектов метаданных, в т.ч. удаляемых.

    Если ПолучитьОтключениеБезопасногоРежима() Тогда
    УстановитьОтключениеБезопасногоРежима(Ложь);
    КонецЕсли;

    Если БезопасныйРежим() = Ложь Тогда
    Возврат;
    КонецЕсли;

    УстановитьПривилегированныйРежим(Истина);

    Если Не ПривилегированныйРежим() Тогда
    ВызватьИсключение НСтр("ru = 'Действие недоступно в безопасном режиме.'");
    КонецЕсли;

    КонецПроцедуры
```

отладкой встаньте на строку 1996 и посмотрите что за "Источник", оттуда и плясать.
есть подписка на событие "ПроверитьБезопасныйРежимПередЗаписью", там куча констант.
Источник как раз и будет той константой, при которой запись вызывает подписку на событие.

у пользователя скорее всего нет доступа на эту константу
---
Источник не константа, а СправочникОбъект.Пользователи. И у пользователя с полными правами доступ туда уж точно есть
---
"Смущает то, что это работало до обновления, и перестало после, и переключать флажок для пользователей не очень хотелось бы" - ради эксперимента - снимите и сделайте обмен
---
Ответил вам раннее - ничего не поменялось, ошибка сохранилась. (Извиняюсь за повтор сообщений, ветка соскочила)
---
Обработка встроена в Допы?
а в самой обработке в "Сведения..." что стоит в ПараметрыРегистрации.БезопасныйРежим?

или через файл-открыть?
---
Обработка типовая, об этом я тоже описал в проблеме. В самой обработке нет "Сведений")
Либо я вас совсем не понимаю
---
тогда
в модуле формы "УправляемаяФорма" "ПриСозданииНаСервере"

```1c
    Объект.БезопасныйРежим = Истина;
```

измените на ложь через расширение и попробуйте, больше у меня вариантов нет
---
Не поверите, оно уже там стоит в типовом варианте)
---
Простите, тупанул, поменяю, попробую
---
Этот вариант помог, всё отработало как положено. Но не очень нравится подход, если у кого-то есть другие решения - буду благодарен если отпишитесь. Как временное решение, подойдёт:

В модуле формы "Управляемая форма" - "ПриСозданииНаСервере" заменил БезопасныйРежим с Истины на Ложь:

```1c
    Процедура Расш_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    // Проверка прав доступа должна располагаться самой первой.
    Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
    ВызватьИсключение НСтр("ru = 'Использование обработки в интерактивном режиме доступно только администратору.'");
    КонецЕсли;

    ПроверитьВерсиюИРежимСовместимостиПлатформы();

    Объект.ЭтоИнтерактивныйРежим = Истина;
    #Удаление
    Объект.БезопасныйРежим = Истина;
    #КонецУдаления
    #Вставка
    Объект.БезопасныйРежим = Ложь; // < Временное исправление в связи с ошибкой
    #Конецвставки
    Объект.КодировкаФайлаПротоколаОбмена = "КодировкаТекста.UTF8";

    ЗаголовокФормы = НСтр("ru = 'Универсальный обмен данными в формате XML (%ВерсияОбработки%)'");
    ЗаголовокФормы = СтрЗаменить(ЗаголовокФормы, "%ВерсияОбработки%", ВерсияОбъектаСтрокойНаСервере());

    Заголовок = ЗаголовокФормы;

    ЗаполнитьСписокТиповДоступныхДляУдаления();

    КонецПроцедуры
```

Прошу по возможности ещё ответить у кого есть идеи, как это можно организовать
---
раз работает, тогда проще не через #ИзменениеИКонтроль, а при ПриСозданииНаСервереПосле просто написать "Объект.БезопасныйРежим = Ложь;"
насчет того - "работало раньше", 1С-цы что-то сильно прикрутили и не учли какой-то момент, поэтому в багтрекер нужно написать, т.к. в релизе 3.0.160.22 нет тех условий выполнения, которые есть в 3.0.162.22. Отсюда и все проблемы
---
Если не сложно, скиньте расширение.
---
Как вариант можно обработку УниверсальныйОбменДаннымиXML сохранить как внешнюю и поправить процедуру ПриСозданииНаСервере

Объект.БезопасныйРежим = Ложь; // Истина
---
Для того чтобы ошибка ушла необходимо в свойствах обработки установить БезопасныйРежим = Ложь
Это можно сделать в расширении, как сказано выше или в правилах.
Например после загрузки правил обмена написать
БезопасныйРежим = Ложь;
Или
ЭтотОбъект.БезопасныйРежим = Ложь

Это же надо написать и перед загрузкой данных.
---
я запустила клиентское приложение с параметром запуска привилегированного режима и все заработала. Может все таки так проще сделать, чем менять модуль формы?