как обойти ограничение проведения в модуле формы.

1. aleks-lit 10.12.18 14:03 Сейчас в теме
в модуле документа есть код
Если РольДоступна("БухгалтерНов") И НЕ РольДоступна("ПолныеПрава") тогда
		
		//проверить наличие реализации
		Если Не ЭтоНовый() Тогда
			ОтказЗаписи=Модуль1.ПроверитьНаличиеРеализации(Ссылка);
			Если ОтказЗаписи тогда
			Сообщить("Нельзя редактировать заказ покупателя если он является основанием реализации !!!");
		    Отказ=ОтказЗаписи;
		    КонецЕсли; 
		КонецЕсли;
		
	КонецЕсли;
Показать


сделал в привилегированном модуле:

Процедура УстановитьИсполненоВЗаказеПокупателяПриПроведенииРеализации(Ссыль)  Экспорт
	
		ОбъектЗаказ =Ссыль.ПолучитьОбъект();
		 ОбъектЗаказ.Статус = Перечисления.СтатусыЗаказовПокупателей.Исполнен;
		 ОбъектЗаказ.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
		
КонецПроцедуры


и вызываю его из реализации.
Вернее из подписки на событие при проведении реализации
все равно не проводится заказ.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. dandykry 10 10.12.18 14:47 Сейчас в теме
(1) Первый кусок кода в модуле Заказа или Реализации?

UP: Понял. Никак не обойдешь
4. dandykry 10 10.12.18 14:53 Сейчас в теме
(1)

Процедура УстановитьИсполненоВЗаказеПокупателяПриПроведенииРеализации(Ссыль)  Экспорт
    
        ОбъектЗаказ =Ссыль.ПолучитьОбъект();
    ОбъектЗаказ .ДополнительныеСвойства.Вставить("ПривелигированнаяЗапись", истина);
         ОбъектЗаказ.Статус = Перечисления.СтатусыЗаказовПокупателей.Исполнен;
         ОбъектЗаказ.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
        
КонецПроцедуры


ПривелигированнаяЗапись = Ложь;
Если Не (ДополнительныеСвойства.Свойство("ПривелигированнаяЗапись", ПривелигированнаяЗапись) И ПривелигированнаяЗапись = Истина) Тогда

Если РольДоступна("БухгалтерНов") И НЕ РольДоступна("ПолныеПрава") тогда
        
        //проверить наличие реализации
        Если Не ЭтоНовый() Тогда
            ОтказЗаписи=Модуль1.ПроверитьНаличиеРеализации(Ссылка);
            Если ОтказЗаписи тогда
            Сообщить("Нельзя редактировать заказ покупателя если он является основанием реализации !!!");
            Отказ=ОтказЗаписи;
            КонецЕсли; 
        КонецЕсли;
        
    КонецЕсли;

КонецЕсли;
Показать
aleks-lit; +1 Ответить
5. aleks-lit 10.12.18 15:23 Сейчас в теме
2. Alexei_Siva 182 10.12.18 14:11 Сейчас в теме
Может в модуле документа сделать какую-нибудь переменную типа ПривилегированноеПроведение, или с каким-то подобным названием, устанавливать её когда надо, и если она истина, то, соответственно, не выдавать ошибку?
Привилегированный режим сам по себе явно не даст права на обход запретов, прописанных в обработке проведения
6. FIGOR 10.12.18 16:03 Сейчас в теме
Может не надо перепроводить, достаточно просто записать Объект в режиме "загрузки"

ОбъектЗаказ =Ссыль.ПолучитьОбъект();
ОбъектЗаказ.ОбменДанными.Загрузка = Истина;

ОбъектЗаказ.Статус = Перечисления.СтатусыЗаказовПокупателей.Исполнен;
ОбъектЗаказ.Записать();

да еще сэкономите кучу времени при записи документа.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот