Имя: Пароль:
1C
1С v8
Запрет на выбор номенклатуры
,
0 XiPyPg2012
 
13.11.13
11:09
Подскажите как реализовать следующее:

Конфигурация УТ 11.

Есть справочник Номенклатура и документ ЗаказКлиента.
В справочнике группу : Группа1,Группа2,Группа3,Группа4.

Теперь нужно чтоб если у пользователя не ДоступнаРоль("ПолныеПрава") тогда в ЗаказКлиента в табличной части Товары запрет выбора из группы3 и группы4 и выдать сообщение("увас недостаточно прав для выбора из этой группы, выберите позицию из группы1 или группы2")

Ну смысл думаю понятен, это реально вобще сделать и как это можно реализовать?
1 Wobland
 
13.11.13
11:10
чего бы сразу РЛС не сделать?
2 Нуф-Нуф
 
13.11.13
11:12
сделаю удаленно. 3000р. пиши в личку
3 XiPyPg2012
 
13.11.13
11:14
(2) ага спасибо за 3 косаря я и сам сделаю как нибудь по уродски типо при проведение проверять каждую строку если номенклатура в иерархии выдавать ошибку отменять проведения и выдавать сообщение.....а тут помойму бесплатно люди советуют и предлогают варианты.
4 XiPyPg2012
 
13.11.13
11:23
если бы я знал как работать с РЛС было бы проше, ладно пока нет других предложений, почитаем про РЛС)
5 Wobland
 
13.11.13
11:29
(3) один бесплатный совет и один вариант у тебя уже есть
6 XiPyPg2012
 
13.11.13
11:32
(5) короче понятно, так я не знаю с чем едят РЛС, если сделать в обработкеВыбора проверку эт с точки зрения вселенского идиотизма не сильно аморальн? = )
7 Wobland
 
13.11.13
11:34
лично я с настороженностью отношусь к употреблению РольДоступна(). но в этом частном случае вникать лениво
8 XiPyPg2012
 
13.11.13
11:35
(7) эт я научился у паренька который входит в топ 100 програмиистов страны)) подсмотрел где-то в его коде )
9 Wobland
 
13.11.13
11:36
1Сники в топ100?
10 Wobland
 
13.11.13
11:37
(9) не, бывают программисты. именно программисты. но их мало
11 XiPyPg2012
 
13.11.13
12:15
Если ВыбранноеЗначение "ВИерархии" СельхозУслуги или ВыбранноеЗначение "ВИерархии" СтроительныеУслуги  Тогда

чем можно заменить в Иерархии ??
12 Wobland
 
13.11.13
12:35
(11) зачем?
13 XiPyPg2012
 
13.11.13
13:30
&НаКлиенте
Процедура ТоварыНоменклатураОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    СтандартнаяОбработка = ПроверитьВыборНаСервере(ВыбранноеЗначение);
КонецПроцедуры

&НаСервере
функция ПроверитьВыборНаСервере(ВыбранноеЗначение)
СтандартнаяОбработка = Истина;
СельхозУслуги = Справочники.Номенклатура.НайтиПоКоду("ОД00000322");
СтроительныеУслуги = Справочники.Номенклатура.НайтиПоКоду("КР-00034330");
//Если ВыбранноеЗначение ВИерархии СельхозУслуги или ВыбранноеЗначение ВИерархии СтроительныеУслуги  Тогда

СтандартнаяОбработка = Ложь;    

КонецЕсли;
возврат СтандартнаяОбработка;
КонецФункции

потому что вот тут надо сделать проверку
14 XiPyPg2012
 
13.11.13
13:48
Все это выглядит примерно так :


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

&НаСервере
функция ПроверитьВыборНаСервере(ВыбранноеЗначение)
    СтандартнаяОбработка = Истина;
    Если не РольДоступна("ПолныеПрава") или не РольДоступна("ПЛ_ДобавлениеВЗаказНарядСтарыхУслуг") Тогда
        СельхозУслуги = Справочники.Номенклатура.НайтиПоКоду("ОД00000322");
        СтроительныеУслуги = Справочники.Номенклатура.НайтиПоКоду("КР-00034330");
        Если ВыбранноеЗначение.ПринадлежитЭлементу(СельхозУслуги) или ВыбранноеЗначение.ПринадлежитЭлементу(СтроительныеУслуги)  Тогда
            СтандартнаяОбработка = Ложь;    
        КонецЕсли;
    КонецЕсли;
    возврат СтандартнаяОбработка;
КонецФункции
15 zladenuw
 
13.11.13
13:50
я бы это дело в РС засунул и при записи, если есть запрещенные номенклатуры. отказ давал бы
16 anaed
 
13.11.13
14:01
(11) В СП - методы СправочникСсылка и СправочникОбъект