1с розница 2.3. Запрет на отмену проведения документа Реализация товара для определенной роли

1. 22.11.20 13:39 Сейчас в теме
Подскажите или направьте.

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

    КонецЕсли;

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

&НаСервере
Функция ПроверкаРоли(Роль)
    
    Возврат РольДоступна(Роль);
    
КонецФункции
Показать
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
5. FatPanzer 9 22.11.20 14:00 Сейчас в теме
(1) На самом деле, неправильное обращение с РежимЗаписи - это полбеды.
Главная ошибка в том, что вы эту проверку пытаетесь делать на форме. Тогда как распровести документ можно не только с его непосредственной формы. Например, можно это сделать из формы списка... Или внешней обработкой...
6. Illiida 22.11.20 14:03 Сейчас в теме
(5) Вы правы, сейчас хочу в первую очередь решить задачу для формы.
7. FatPanzer 9 22.11.20 14:12 Сейчас в теме
(6) Зачем строить несколько очередей, если можно сразу решить вопрос в одном единственном месте раз и навсегда?
8. Illiida 22.11.20 14:14 Сейчас в теме
(7) Уточните, что это значит?
9. FatPanzer 9 22.11.20 14:15 Сейчас в теме
(8) Это значит то, что проверку надо осуществлять непосредственно перед записью самого объекта. А не в тысяче различных мест (форм, обработок, обменов), откуда эта запись может осуществляться.

Проще один раз пристрелить свою жену, чем каждую неделю стрелять её любовников... (С) Анекдот.
10. Torin 284 22.11.20 14:24 Сейчас в теме
(6)А чем подписка не событие не устраивает?
2. FatPanzer 9 22.11.20 13:47 Сейчас в теме
Спорим, что в проверку роли алгоритм даже не заходит? Потому что РежимЗаписиДокумента.ОтменаПроведения - это значение служебного перечисления, а не булева переменная.
3. Illiida 22.11.20 13:52 Сейчас в теме
(2) Логично, но тогда как произвести проверку на попытку отменить проведение документа?
4. FatPanzer 9 22.11.20 13:53 Сейчас в теме
(3) Наверное для начала надо узнать, чему равен текущий режим записи... И сравнить его с тем значением, для которого надо проверять доступность операции...
11. Illiida 22.11.20 14:56 Сейчас в теме
Остался момент связанный с наличием Роли у пользователя. Функция
&НаСервере
Функция ПроверкаРоли(Роль)
    
    Возврат РольДоступна(Роль);
    
КонецФункции
не работает ((
12. FatPanzer 9 22.11.20 15:05 Сейчас в теме
13. Illiida 22.11.20 15:13 Сейчас в теме
(12)

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

Показать


Недопустимое значение параметра (параметр номер '1')
{Документ.РеализацияТоваров.Форма.ФормаДокумента.Форма(752)}: Возврат РольДоступна(Роль);
{Документ.РеализацияТоваров.Форма.ФормаДокумента.Форма(725)}: Если ПроверкаРоли("Кассир") Тогда Сообщить("Кассир", СтатусСообщения.Важное)

по причине:
Недопустимое значение параметра (параметр номер '1')
14. FatPanzer 9 22.11.20 15:29 Сейчас в теме
(13) Ну? Проверяйте, почему у вас параметр Роль вызывает ошибку в методе РольДоступна(). Может в буквах чего не так написали.
15. Torin 284 22.11.20 16:07 Сейчас в теме
(13) А откуда в Типовой Розница 2.х роль Кассир? Профили групп доступа может?
16. FatPanzer 9 22.11.20 16:13 Сейчас в теме
(15) Ну блин, человеку два шага осталось до самостоятельного просветления и истины... Зачем так обламывать?
17. Illiida 22.11.20 16:26 Сейчас в теме
(16) решение моей задачи оказалось проще, хоть и пришлось прибить гвоздями...
ограничение по конкретному пользователю.
19. FatPanzer 9 22.11.20 16:29 Сейчас в теме
(17)
ограничение по конкретному пользователю.
Прямо в программном коде указали конкретного пользователя? Поздравляю, вы только что стали почетным членом клуба костыльщиков-харкодеров.
21. Illiida 22.11.20 16:50 Сейчас в теме
(19) не являюсь программистом
23. Torin 284 22.11.20 16:53 Сейчас в теме
(21) Обратились бы к специалистам .. вам бы ~ за 1000 рублей сделали бы расширение! И не нужно было бы конфигурацию с поддержки снимать , ради "кривого" костыля!
24. Illiida 22.11.20 16:54 Сейчас в теме
(23) конфа уже снята с поддержки
25. Illiida 22.11.20 16:55 Сейчас в теме
(23) после обновления происходит перенос всего, что ранее дописали
26. Torin 284 22.11.20 16:56 Сейчас в теме
20. Torin 284 22.11.20 16:29 Сейчас в теме
(17)
хоть и пришлось прибить гвоздями...
- костыль ! Фи...

Решение вашей задачи
22. Illiida 22.11.20 16:51 Сейчас в теме
18. Illiida 22.11.20 16:27 Сейчас в теме
(15) спасибо, мысли позднее возникли
Оставьте свое сообщение
Вопросы с вознаграждением