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