Ошибка при загрузке данных через встроенную обработку БП Универсальный обмен данными XML
Доброго времени суток!
Имеется проблема у нескольких клиентов, при попытке загрузки документов через типовую обработку "Универсальный обмен данными XML", при загрузке документа с данными, возникает следующая ошибка:
Настройки в универсальном обмене данными в приложенном файле.
Проблема началась после обновления БП до актуальной последней версии. На следующей версии БП наблюдается такая же проблема. До обновления такой проблемы не возникало
Конфигурации следующие:
Универсальный обмен данными в формате XML (1.0.3.532)
1С:Предприятие 8.3 (8.3.24.1691)
Бухгалтерия предприятия, редакция 3.0 (3.0.162.22) - Типовая, без доработок
Имеется проблема у нескольких клиентов, при попытке загрузки документов через типовую обработку "Универсальный обмен данными XML", при загрузке документа с данными, возникает следующая ошибка:
Ошибка записи объекта
ТипОбъекта = Пользователь
Объект = Иван Иванов
ОписаниеОшибки = Ошибка при вызове метода контекста (Записать)
ПозицияМодуля = {ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(1996)}:ВызватьИсключение НСтр("ru = 'Действие недоступно в безопасном режиме.'");
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(6422)}:Объект.Записать();
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9245)}:ЗаписатьОбъектВИБ(Объект, ТипОбъекта);
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(12820)}:ПоследнийОбъектЗагрузки = ПрочитатьОбъект();
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13160)}:ПроизвестиЧтениеДанных();
{Обработка.УниверсальныйОбменДаннымиXML.Форма.УправляемаяФорма.Форма(1415)}:ОбъектДляСервера.ВыполнитьЗагрузку();
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Действие недоступно в безопасном режиме.
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
КодСообщения = 26
ПоказатьТипОбъекта = Пользователь
Объект = Иван Иванов
ОписаниеОшибки = Ошибка при вызове метода контекста (Записать)
ПозицияМодуля = {ОбщийМодуль.СтандартныеПодсистемыСервер.Модуль(1996)}:ВызватьИсключение НСтр("ru = 'Действие недоступно в безопасном режиме.'");
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(6422)}:Объект.Записать();
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9245)}:ЗаписатьОбъектВИБ(Объект, ТипОбъекта);
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(12820)}:ПоследнийОбъектЗагрузки = ПрочитатьОбъект();
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13160)}:ПроизвестиЧтениеДанных();
{Обработка.УниверсальныйОбменДаннымиXML.Форма.УправляемаяФорма.Форма(1415)}:ОбъектДляСервера.ВыполнитьЗагрузку();
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Действие недоступно в безопасном режиме.
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
КодСообщения = 26
Настройки в универсальном обмене данными в приложенном файле.
Проблема началась после обновления БП до актуальной последней версии. На следующей версии БП наблюдается такая же проблема. До обновления такой проблемы не возникало
Конфигурации следующие:
Универсальный обмен данными в формате XML (1.0.3.532)
1С:Предприятие 8.3 (8.3.24.1691)
Бухгалтерия предприятия, редакция 3.0 (3.0.162.22) - Типовая, без доработок
Прикрепленные файлы:
По теме из базы знаний
- Загрузка данных XML с возможностью перезаполнения загружаемых объектов
- Универсальный обмен данными XML через web-сервисы
- Обмен данными между УТ 10.3 и Розницей 2.2 (правила обмена данными между "Управлением торговлей" ред. 10.3. и "Розницей" ред. 2.2)
- Обмен данными онлайн через Веб-сервис с использованием обработки "Универсальный обмен данными XML"
- Правила обмена (конвертации) типовых УПП 1.3 --> БП 3.0 с отбором по организации
Найденные решения
(23) Этот вариант помог, всё отработало как положено. Но не очень нравится подход, если у кого-то есть другие решения - буду благодарен если отпишитесь. Как временное решение, подойдёт:
В модуле формы "Управляемая форма" - "ПриСозданииНаСервере" заменил БезопасныйРежим с Истины на Ложь:
Прошу по возможности ещё ответить у кого есть идеи, как это можно организовать
В модуле формы "Управляемая форма" - "ПриСозданииНаСервере" заменил БезопасныйРежим с Истины на Ложь:
Процедура Расш_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверка прав доступа должна располагаться самой первой.
Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
ВызватьИсключение НСтр("ru = 'Использование обработки в интерактивном режиме доступно только администратору.'");
КонецЕсли;
ПроверитьВерсиюИРежимСовместимостиПлатформы();
Объект.ЭтоИнтерактивныйРежим = Истина;
#Удаление
Объект.БезопасныйРежим = Истина;
#КонецУдаления
#Вставка
Объект.БезопасныйРежим = Ложь; // < Временное исправление в связи с ошибкой
#Конецвставки
Объект.КодировкаФайлаПротоколаОбмена = "КодировкаТекста.UTF8";
ЗаголовокФормы = НСтр("ru = 'Универсальный обмен данными в формате XML (%ВерсияОбработки%)'");
ЗаголовокФормы = СтрЗаменить(ЗаголовокФормы, "%ВерсияОбработки%", ВерсияОбъектаСтрокойНаСервере());
Заголовок = ЗаголовокФормы;
ЗаполнитьСписокТиповДоступныхДляУдаления();
КонецПроцедуры
ПоказатьПрошу по возможности ещё ответить у кого есть идеи, как это можно организовать
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Процедура ПроверитьБезопасныйРежимПередЗаписью(Источник, Отказ) Экспорт
// АПК:75-выкл проверка ОбменДанными.Загрузка не нужна, т.к. данная проверка
// должна выполняться всегда.
// АПК:1371-выкл проверка применима для всех объектов метаданных, в т.ч. удаляемых.
Если ПолучитьОтключениеБезопасногоРежима() Тогда
УстановитьОтключениеБезопасногоРежима(Ложь);
КонецЕсли;
Если БезопасныйРежим() = Ложь Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
Если Не ПривилегированныйРежим() Тогда
ВызватьИсключение НСтр("ru = 'Действие недоступно в безопасном режиме.'");
КонецЕсли;
КонецПроцедуры
Показатьотладкой встаньте на строку 1996 и посмотрите что за "Источник", оттуда и плясать.
есть подписка на событие "ПроверитьБезопасныйРежимПередЗаписью", там куча констант.
Источник как раз и будет той константой, при которой запись вызывает подписку на событие.
у пользователя скорее всего нет доступа на эту константу
(23) Этот вариант помог, всё отработало как положено. Но не очень нравится подход, если у кого-то есть другие решения - буду благодарен если отпишитесь. Как временное решение, подойдёт:
В модуле формы "Управляемая форма" - "ПриСозданииНаСервере" заменил БезопасныйРежим с Истины на Ложь:
Прошу по возможности ещё ответить у кого есть идеи, как это можно организовать
В модуле формы "Управляемая форма" - "ПриСозданииНаСервере" заменил БезопасныйРежим с Истины на Ложь:
Процедура Расш_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверка прав доступа должна располагаться самой первой.
Если Не ПравоДоступа("Администрирование", Метаданные) Тогда
ВызватьИсключение НСтр("ru = 'Использование обработки в интерактивном режиме доступно только администратору.'");
КонецЕсли;
ПроверитьВерсиюИРежимСовместимостиПлатформы();
Объект.ЭтоИнтерактивныйРежим = Истина;
#Удаление
Объект.БезопасныйРежим = Истина;
#КонецУдаления
#Вставка
Объект.БезопасныйРежим = Ложь; // < Временное исправление в связи с ошибкой
#Конецвставки
Объект.КодировкаФайлаПротоколаОбмена = "КодировкаТекста.UTF8";
ЗаголовокФормы = НСтр("ru = 'Универсальный обмен данными в формате XML (%ВерсияОбработки%)'");
ЗаголовокФормы = СтрЗаменить(ЗаголовокФормы, "%ВерсияОбработки%", ВерсияОбъектаСтрокойНаСервере());
Заголовок = ЗаголовокФормы;
ЗаполнитьСписокТиповДоступныхДляУдаления();
КонецПроцедуры
ПоказатьПрошу по возможности ещё ответить у кого есть идеи, как это можно организовать
(26) раз работает, тогда проще не через #ИзменениеИКонтроль, а при ПриСозданииНаСервереПосле просто написать "Объект.БезопасныйРежим = Ложь;"
насчет того - "работало раньше", 1С-цы что-то сильно прикрутили и не учли какой-то момент, поэтому в багтрекер нужно написать, т.к. в релизе 3.0.160.22 нет тех условий выполнения, которые есть в 3.0.162.22. Отсюда и все проблемы
насчет того - "работало раньше", 1С-цы что-то сильно прикрутили и не учли какой-то момент, поэтому в багтрекер нужно написать, т.к. в релизе 3.0.160.22 нет тех условий выполнения, которые есть в 3.0.162.22. Отсюда и все проблемы
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот