Имя: Пароль:
1C
 
Проведение документа
0 Marry04
 
28.06.16
05:56
Если пользователь вошел под ролью "МастерСмены" и выбрал в качестве отправителя элемент Родителя "Центральный склад" - у документа отсутствует возможность проведения.Все работает
захожу под ролью Администратор, выдает такую ошибку:
{Документ.ПеремещениеТоваров.Форма.ФормаДокумента.Форма(2613)}: Значение не является значением объектного типа (Родитель)
        Если ЗначениеОтправителя.Родитель.Родитель.Родитель = значениеСклада  Тогда
Вот код:

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

            //Если СокрЛП(ЗначениеОтправителя.Родитель) = "Центральные склады" Тогда

                     //РежимПроведения = ложь;
                     //РежимЗаписи=истина;
                     Отказ = истина;
            Сообщить("руководство сказало Нельзя")
            //ОбработкаУдаленияПроведения(ЭтаФорма.ДокументОбъект);
            //ДокументОбъект.Записать( РежимЗаписиДокумента.ОтменаПроведения);
            //ЭлементыФормы.ДействияФормы.Кнопки.Действие4.Доступность = Ложь;
            КонецЕсли;    
          КонецЕсли;
        
             
КонецПроцедуры
9 catena
 
28.06.16
06:34
(8)Тогда пойми, что блок "Если" заканчивается после оператора "КонецЕсли" и остальная часть кода выполняется уже для всех подряд.
10 Marry04
 
28.06.16
06:34
(7) я обращаюсь к реквизиту формы (На форме в свойствах уточнила данные ) через элементы формы
11 Marry04
 
28.06.16
06:35
(9) у меня нет после КонецЕсли никакого кода для всех
12 catena
 
28.06.16
06:38
(11)
А как же?

значениеСклада =     "Центральные склады";
        //Если ЗначениеОтправителя.Родитель.Наименование = "Центральные склады" Тогда

        //Если СокрЛП(ЗначениеОтправителя.Родитель.Наименование) = "Центральные склады" Тогда

        Если ЗначениеОтправителя.Родитель.Родитель.Родитель = значениеСклада  Тогда
13 catena
 
28.06.16
06:39
(10)А если попробовать просто СкладОтправитель?
14 catena
 
28.06.16
06:39
Слушай, давай я научу тебя печь отличный бисквит?
15 Marry04
 
28.06.16
06:40
(12) Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если ОбменДанными.Загрузка = Истина Тогда
Возврат;
КонецЕсли;
Если РежимЗаписи = РежимЗаписиДокумента.Проведение или (РежимЗаписи = РежимЗаписиДокумента.Запись и Проведен) Тогда
СсылкаНаСправочник = Справочники.Склады;
    Роль = "МастерСмены";
    Если РольДоступна(Роль)
    Тогда
        ЗначениеОтправителя = ЭлементыФормы.СкладОтправитель.Значение;
            
        КонецЕсли;
//значениеСклада =     "Центральные склады";
        //Если ЗначениеОтправителя.Родитель.Наименование = "Центральные склады" Тогда
        Если СокрЛП(ЗначениеОтправителя.Родитель.Наименование) = "Центральные склады" Тогда
        //Если ЗначениеОтправителя.Родитель.Родитель.Родитель = значениеСклада  Тогда

            //Если СокрЛП(ЗначениеОтправителя.Родитель) = "Центральные склады" Тогда

                     //РежимПроведения = ложь;
                     //РежимЗаписи=истина;
                     Отказ = истина;
            Сообщить("руководство сказало Нельзя")
            //ОбработкаУдаленияПроведения(ЭтаФорма.ДокументОбъект);
            //ДокументОбъект.Записать( РежимЗаписиДокумента.ОтменаПроведения);
            //ЭлементыФормы.ДействияФормы.Кнопки.Действие4.Доступность = Ложь;
            КонецЕсли;    
          КонецЕсли;
        
             
КонецПроцедуры

вот так пока.но не получается. та же ошибка
16 Marry04
 
28.06.16
06:41
(13) мне нужно именно в зависимости от того, какое значение элемента СкладОтправитель выбрал пользователь на форме ..
17 Marry04
 
28.06.16
06:46
ЗначениеОтправителя = СсылкаНаСправочник .СкладОтправитель.Значение;

тоже ничего не дало
18 Mankubus
 
28.06.16
06:48
(15) ЗначениеОтправителя = СкладОтправитель?
19 catena
 
28.06.16
06:50
(15)Издеваешься?
Встань на строчку
    Если РольДоступна(Роль)
нажми F9, запусти отладчик и понаблюдай за переменной ЗначениеОтправителя.
20 catena
 
28.06.16
06:50
+(19)Если это не поможет, то только бисквит...
21 birkoFFFF
 
28.06.16
06:56
Вроде не пятница...
22 Marry04
 
28.06.16
07:00
Если заходить под ролью мастера цеха все нормально работает!
если заходить под администратором, вот такая ошибка. и в переменной ничего нет. и ничего не отрабатывает потому что роль недоступна
23 birkoFFFF
 
28.06.16
07:03
(22) А теперь еще раз ответь почему этой ошибки быть не должно?

У тебя
  Если РольДоступна("Мастер смены")
    Тогда
        ЗначениеОтправителя = ЭлементыФормы.СкладОтправитель.Значение;
            
А если Администратор, то что? НИЧЕГО! ЗначениеОтправителя не определено, но далее в тексте ты пытаешься получить его родителя. Чьего родителя?
24 Mankubus
 
28.06.16
07:04
вот про отладку почитай полезно будет http://v8.1c.ru/overview/Term_000000064.htm
25 Marry04
 
28.06.16
07:09
(23) Как теперь корректно завершить? чтоб избежать проверки
значения "ЗначениеОтправителя\" для других пользователей
Если РольДоступна(Роль)
    Тогда
        ЗначениеОтправителя = ЭлементыФормы.СкладОтправитель.Значение;
ИНАЧЕ ? ккой-то выход из процедуры , а не только из  цикла этого..
            
        КонецЕсли;
26 Marry04
 
28.06.16
07:10
Возврат?
27 birkoFFFF
 
28.06.16
07:11
(25) Где тут к чертям цикл? Тут ни одного цикла нет.

"КонецЕсли" надо поставить не там где он сейчас, а так где реально условие заканчивается. Т.е. в самый конец, само собой перед "КонецПроцедуры".
28 catena
 
28.06.16
07:20
Первое правило воздушного бисквита - белки и желтки взбивать отдельно...
29 Marry04
 
28.06.16
08:16
всем спасибо огромное!получилось
30 catena
 
28.06.16
08:43
Работает, однако...
31 Marry04
 
30.06.16
05:31
В продолжении темы возникла другая ситуация:
пользователь(не мастер смены)нажимает на кнопку ОК в документе. Но проведение только в НУ идет.и форма не закрывается
32 Marry04
 
30.06.16
05:33
не проводятся по  БУ перемещения товаров.
33 Mankubus
 
30.06.16
05:53
(32) читала ссылку в (24) ?
34 Beretta
 
30.06.16
07:06
(0) О, молодая Мисти.
35 Marry04
 
30.06.16
07:16
(33) да!у меня, пользователя Администратор. все проводится. у других пользователей, при активном данном коде не получается
36 Marry04
 
30.06.16
11:21
Все таки решила в модульь объекта код прописать. В обработку проведения вставила вот такое:
Если РольДоступна("МастерСмены")
    Тогда
    ФормаДокумента = Документы.ПеремещениеТоваров.ПолучитьФорму("ФормаДокумента");
     ЗначениеОтправителя = ФормаДокумента.ЭлементыФормы.СкладОтправитель.Значение;
        //ЗначениеОтправителя =  Документы.ПеремещениеТоваров.СкладОтправитель.Значение;
            Если СокрЛП(ЗначениеОтправителя.Родитель) = "Центральные склады" Тогда
                Отказ = истина;
            
            КонецЕсли;    
     КонецЕсли;

ни на что не ругается. и условия не проходят (захожу под мастером цеха, а эта роль видима недоступна)что не так?
37 Зая Бусечка
 
30.06.16
11:23
"В обработку проведения"
"Документы.ПеремещениеТоваров.ПолучитьФорму("ФормаДокумента")"

10 лет строгого расстрела. Без права переписки.
38 Marry04
 
30.06.16
11:27
(37) а как правильно?я просто начинающий..не судите строго(
39 Зая Бусечка
 
30.06.16
11:30
(38) В модуле проведения получать форму - это не то что моветон... За это... Ну смотри выше.
40 Зая Бусечка
 
30.06.16
11:30
Обращаться нужно к реквизитам документа
41 Marry04
 
30.06.16
11:35
(40) Если РольДоступна("МастерСмены")
    Тогда
    ЗначениеОтправителя = Документы.ПеремещениеТоваров.СкладОтправитель.Значение;
    //ФормаДокумента = Документы.ПеремещениеТоваров.ПолучитьФорму("ФормаДокумента");
    // ЗначениеОтправителя = ФормаДокумента.ЭлементыФормы.СкладОтправитель.Значение;
        //ЗначениеОтправителя =  Документы.ПеремещениеТоваров.СкладОтправитель.Значение;
            Если СокрЛП(ЗначениеОтправителя.Родитель) = "Центральные склады" Тогда
                Отказ = истина;
            
            КонецЕсли;    
     КонецЕсли;
Так?
42 Зая Бусечка
 
30.06.16
11:36
(41) Где-то так.
43 Marry04
 
30.06.16
11:40
(42) Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ПеремещениеТоваров.МодульОбъекта(1672)}: Поле объекта не обнаружено (СкладОтправитель)
реквизит так называется ..
44 RomanYS
 
30.06.16
11:41
(41) "Документы.ПеремещениеТоваров.СкладОтправитель.Значение" - это что?
45 Зая Бусечка
 
30.06.16
11:42
.Значение убери
46 Marry04
 
30.06.16
11:44
(45) убрала.не помогает. такая же ошибка
47 RomanYS
 
30.06.16
11:44
(45) а "Документы.ПеремещениеТоваров.СкладОтправитель" это нормально?
(41) где вы это написали?
48 Marry04
 
30.06.16
11:46
(47) в модуле объекта "Перемещение товаров документ" в процедуре ОбработкаПроведения
49 RomanYS
 
30.06.16
11:46
(48) тогда:
ЗначениеОтправителя = СкладОтправитель;
50 Marry04
 
30.06.16
11:59
(49) да получилось
но теперь проблема в другом образовалась: документ не проводится. я пытаюсь его записать , а он пишет через раз: провести не удается!когда записывает, а когда пишет вот такое уведомление..в чем дело может быть?
51 Marry04
 
30.06.16
12:07
и не дает остальным пользователем работать с центральным складом. проводится через раз
52 FIXXXL
 
30.06.16
12:10
(43) реквизит документа точно так называется? не реквизит формы
53 Marry04
 
30.06.16
12:11
(52) эта ошибка исправлена. теперь проблемы заключаются в другом. (50) и (51)
54 vde69
 
30.06.16
12:12
за такое:
Если ЗначениеОтправителя.Родитель.Родитель.Родитель = значениеСклада  Тогда

выгонять из профессии нужно, а если это в процедуре проведения - то расстреливать...
55 Marry04
 
30.06.16
12:13
(54) это все давно исправлено !!!!!
56 FIXXXL
 
30.06.16
12:15
(53) посмотри в журнале регистрации, есть ошибки по твоему документу?
57 Marry04
 
30.06.16
12:20
(56) От имени администратора все работает.сразу проводится. захожу под бухгалтером- не проводится.
58 Marry04
 
30.06.16
12:28
для мастера цеха все нормально записывается!Но для пользователей других, например бухгалтеров..пишет такую ошибку, которую пишет мастеру цеха система о невозможности проведения
59 Marry04
 
30.06.16
12:31
(58) поняла в чем дело:данному пользователю присвоен не только роль бухгалетера,но и мастера смены
60 Marry04
 
30.06.16
12:51
как выбрать активного пользователя из справочника Пользователи с определенным профилем?
61 Marry04
 
30.06.16
12:51
все этопишется в модуле объекта
62 Marry04
 
30.06.16
12:54
пользователь =ПользователиИнформационнойБазы.ТекущийПользователь()
таким образом я получу текущего пользователя активного..а дальше как с профилем связать?
63 FIXXXL
 
30.06.16
13:05
(62) с каким профилем?
доступ на БСП?
64 Marry04
 
30.06.16
13:11
пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
        НайденнаяСсылка = Справочники.Пользователи.НайтиПоНаименованию(пользователь);
        Если Справочники.Пользователи.ИдентификаторПользователяИБ =   НайденнаяСсылка И СокрЛП(Справочники.Пользователи.Профиль) = "Мастер смены" Тогда
            ЗначениеОтправителя = СкладОтправитель;
            Если СокрЛП(ЗначениеОтправителя.Родитель) = "Центральные склады" Тогда
                Отказ = истина;    
            КонецЕсли;    
            
        КонецЕсли;


вот таким образом: пишет
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ПеремещениеТоваров.МодульОбъекта(1686)}: Поле объекта не обнаружено (ИдентификаторПользователяИБ)

нименовние переменной взять из реквизитов справочника
65 Marry04
 
30.06.16
13:11
в  справочники Пользователи есть поле "Профиль", что и соответствует "Мастеру смены" (63)
66 FIXXXL
 
30.06.16
13:13
Справочники.Пользователи.ИдентификаторПользователяИБ - это весь справочник
тебе элемент нужен, который НайденнаяСсылка
в нем ищи
67 FIXXXL
 
30.06.16
13:15
Профиль - строкового типа?
68 FIXXXL
 
30.06.16
13:22
еще раз перечитал (0)
может тебе проще запретить к выбору "Центральный склад" для "Мастер смены" в документе?
чем лазать по профилям, ты там совсем утонешь :)
69 Marry04
 
30.06.16
13:35
пользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
        НайденнаяСсылка = Справочники.Пользователи.НайтиПоНаименованию(пользователь);
        Если НайденнаяСсылка.ИдентификаторПользователяИБ =   НайденнаяСсылка И СокрЛП(НайденнаяСсылка.Профиль) = "Мастер смены" Тогда
            ЗначениеОтправителя = СкладОтправитель;
            Если СокрЛП(ЗначениеОтправителя.Родитель) = "Центральные склады" Тогда
                Отказ = истина;    
            КонецЕсли;    
            
        КонецЕсли;
            
Проводит..ни на что не реагирует
70 Marry04
 
30.06.16
13:36
(68) у многих бухгалтеров также имеется роль "Мастер смены", но им нужно проводить с центрального склада..
71 Marry04
 
30.06.16
13:40
Если НайденнаяСсылка.ИдентификаторПользователяИБ =   НайденнаяСсылка И СокрЛП(НайденнаяСсылка.Профиль) = "Мастер смены" Тогда
            ЗначениеОтправителя = СкладОтправитель;
            Если СокрЛП(ЗначениеОтправителя.Родитель) = "Центральные склады" Тогда
                Отказ = истина;    
            КонецЕсли;    
            
        КонецЕсли;
            
в услвие даже не заходит
72 catena
 
30.06.16
13:55
(71)Потому что НайденнаяСсылка.ИдентификаторПользователяИБ никогда не будет равно НайденнаяСсылка.
73 Marry04
 
30.06.16
13:56
(72) да, типы не совпадают..
74 catena
 
30.06.16
13:58
(73)И что будем делать?
75 FIXXXL
 
30.06.16
14:12
(70) вот в том и дело, что подход неверный в корне
Роль должна работать на расширение прав, больше Ролей - шире доступ
за обрезание доступа, завязанное на роли, надо по пальцам стучать

я тебе посоветую стереть весь копрокод в обработке проведения, подумать и написать заново

к примеру, сделать РегистрСведений Запрещенные склады
в нем Пользователь и Склад

если так хочется запретить проведение, в процедуре ОбработкаПроведения проверяешь наличие склада-реквизита в РС Запрещенные склады и даешь отлуп, если найден

в РС в реквизит Склад пиши и Группы и элементы (Выбор групп и элементов), проверку делай запросом с видом сравнения ВИерархии
76 FIXXXL
 
30.06.16
14:13
(75) Склад не реквизит конечно, а измерение РС
77 Marry04
 
04.07.16
09:52
Сделала регистр сведений "Запрет проведения". В нем одно поле -пользователь. с профилем мастер цеха.
далее хочу сделать отмену проведения в обработчике, написала вот такой код:но почему-то проведение не дает. то есть записи в регистре сведении о текущем пользователе отсутстуют, ноэто не так.


Если СокрЛП (СкладОтправитель.Родитель) =   "Центральные склады"  Тогда
        ПользовательСКЛАД = ПользователиИнформационнойБазы.ТекущийПользователь();
        ПользовательСТР = Строка(ПользовательСКЛАД);
        
        
        Запрос = Новый Запрос (
        "
        | ВЫБРАТЬ                                        
        |   ЗапретПроведения.Пользователь
        |ИЗ
        |   РегистрСведений.ЗапретПроведения КАК ЗапретПроведения
        |ГДЕ
        |   Пользователь = &Параметр
        |"
        );
        
        Запрос.УстановитьПараметр("Параметр", ПользовательСТР);    
        РезультатЗапроса = Запрос.Выполнить();
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        
        Если ВыборкаДетальныеЗаписи <>0  Тогда
            
            //Отказ = истина;    
            
        КонецЕсли;                                                          
        
    КонецЕсли;
78 Marry04
 
04.07.16
09:59
точнее записи о данном пользователе есть в регистре, а проведение идет все равно документа
79 SadrArt
 
04.07.16
10:02
Если ВыборкаДетальныеЗаписи <>0

5 баллов
80 catena
 
04.07.16
10:06
(77)Прекращай работать со строками. Завтра пользователя переименуют, склад по-другому назовут и кирдык проверкам.
Ну и похоже, что опять строку со справочником сравниваешь....
81 Marry04
 
04.07.16
10:09
(79) пока так бы мне сделать. склад не переименуют. и пользователей я обработкой внешей загоняю в регистр.
82 Vanilla26
 
04.07.16
10:11
(81) ВыборкаДетальныеЗаписи.Количество()
83 Mankubus
 
04.07.16
10:16
не надо ПользовательСТР к строке преобразовывать (77)
84 Marry04
 
04.07.16
10:24
(80) мне нужно сравнить :совпадает ли имя текущего пользователя с измерением регистра.измерение -пользователь (тип: справочникссылка.)
85 Marry04
 
04.07.16
10:25
(83) а как мне сравнить с значением в регистре?
86 HardBall
 
04.07.16
10:28
(84) Толсто.
87 Vanilla26
 
04.07.16
10:28
(85) сотри всё и попробуй так))))))))

Отказ = РегистрыСведений.ЗапретПроведения.Выбрать(Новый Структура("Пользователь",ПользователиИнформационнойБазы.ТекущийПользователь()),).Следующий();
88 Marry04
 
04.07.16
10:40
(87) Документ.ПеремещениеТоваров.МодульОбъекта(1667)}: Ошибка при вызове метода контекста (Выбрать)
      Отказ = РегистрыСведений.ЗапретПроведения.Выбрать(Новый Структура("Пользователь",ПользователиИнформационнойБазы.ТекущийПользователь()),).Следующий();
по причине:
Недопустимое значение параметра (параметр номер '1')
89 Vanilla26
 
04.07.16
10:43
(88) регистр периодический значит
две запятые перед Новый
90 Marry04
 
04.07.16
10:46
(89) {Документ.ПеремещениеТоваров.МодульОбъекта(1667)}: Слишком много фактических параметров
      Отказ = РегистрыСведений.ЗапретПроведения.Выбрать(,,Новый Структура("Пользователь",ПользователиИнформационнойБазы.ТекущийПользователь()),).Следующий();
91 Vanilla26
 
04.07.16
10:55
(90) значит всё же НЕ периодический..скорее всего беда с типами...пробуй так
Отказ = РегистрыСведений.ЗапретПроведения.Выбрать(Новый Структура("Пользователь",ПараметрыСеанса.ТекущийПользователь),).Следующий();
92 Marry04
 
04.07.16
11:02
(91) да, непериодический он
93 Vanilla26
 
04.07.16
11:05
(92) что (91) выдаёт ? заменили ПользователиИнформационнойБазы.ТекущийПользователь() на ПараметрыСеанса.ТекущийПользователь?
94 Marry04
 
04.07.16
11:08
(93) Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ПеремещениеТоваров.МодульОбъекта(1667)}: Ошибка при вызове метода контекста (Выбрать)

по причине:
Недопустимое значение параметра (параметр номер '1')
95 Vanilla26
 
04.07.16
11:17
(94)
    
Запрос = Новый Запрос (
        "
        | ВЫБРАТЬ                                        
        |   ЗапретПроведения.Пользователь
        |ИЗ
        |   РегистрСведений.ЗапретПроведения КАК ЗапретПроведения
        |ГДЕ
        |   Пользователь = &Параметр
        |"
        );
        
        Запрос.УстановитьПараметр("Параметр", ПараметрыСеанса.ТекущийПользователь);    
        РезультатЗапроса = Запрос.Выполнить().Выбрать();
        
        Если РезультатЗапроса.Количество() <>0  Тогда
            
            Отказ = истина;    

        КонецЕсли;  


Если и это не прокатит значит измерение в регистре не СправочникСсылка.Пользователи
96 Marry04
 
04.07.16
11:31
(95) спасибо большое!!получилось. а в чем разница? ПользователиИнформационнойБазы.ТекущийПользователь() и ПараметрыСеанса.ТекущийПользователь. особой не могу понять
97 Vanilla26
 
04.07.16
11:36
(96) тип разный..отладчик кто то уже предлагал освоить)
98 Marry04
 
07.07.16
05:11
не стала я связывать с регистром сведений. решила без него обойтись. исправила код таким образом, но проведение как шло, так и шло. что не так?
Если СокрЛП (СкладОтправитель.Родитель) =   "Центральные склады"  Тогда
        СсылкаНаПользвателяСоответствПрофиля = Справочники.ПрофилиПолномочийПользователей.НайтиПоНаименованию("мастер смены");
        
        Запрос = Новый Запрос (
        "
        | ВЫБРАТЬ                                        
        |   Пользователи.Ссылка
        |ИЗ
        |   Справочник.Пользователи КАК Пользователи
        |ГДЕ
        |   Пользователи.Наименование = &Параметр   И    ПрофильПолномочийПользователя = &ПрофильПолномочийПользователя
        |"
        );
        
        Запрос.УстановитьПараметр("Параметр",ПараметрыСеанса.ТекущийПользователь);
        Запрос.УстановитьПараметр("ПрофильПолномочийПользователя",СсылкаНаПользвателяСоответствПрофиля);
        РезультатЗапроса = Запрос.Выполнить().Выбрать();
        
        Если РезультатЗапроса.Количество() <>0  Тогда
            Отказ = истина;    
            
        КонецЕсли;
        
    КонецЕсли;
99 Mikhail Volkov
 
07.07.16
05:39
(98) Несоответствие типов параметров, например, ПараметрыСеанса.ТекущийПользователь - справочник, а Пользователи.Наименование - строка
100 Marry04
 
07.07.16
05:47
(99) я поняла это уже..исправила на Пользователи.Ссылка -бесполезно
101 hhhh
 
07.07.16
05:55
(100) вот это какая-то фигня

        Если РезультатЗапроса.Количество() <>0  Тогда
            Отказ = истина;    
            
        КонецЕсли;

почему

РезультатЗапроса.Количество() <>0

??
102 catena
 
07.07.16
06:42
(98)Ты же это уже проходила, как же бухгалтера, у которых есть "мастер смены" и "еще куча других ролей"?
103 Marry04
 
07.07.16
07:27
(102) не путайте с ролью.это профиль.профиль "мастер смены" только у мастеров, которым и нужно запретить проведение
104 Marry04
 
07.07.16
07:31
(101) если в запросе есть записи с соответствующим текущим пользователем  и профилем "мастер смены", происходит отказ проведения
105 hhhh
 
07.07.16
07:55
ну у вас 3 варианта

        Запрос = Новый Запрос (
        "
        | ВЫБРАТЬ                                        
        |   Пользователи.Ссылка
        |ИЗ
        |   Справочник.Пользователи КАК Пользователи
        |ГДЕ
        |   Пользователи.Наименование = &Параметр  
        |"
        );

потом

        Запрос = Новый Запрос (
        "
        | ВЫБРАТЬ                                        
        |   Пользователи.Ссылка
        |ИЗ
        |   Справочник.Пользователи КАК Пользователи
        |ГДЕ
        |     ПрофильПолномочийПользователя = &ПрофильПолномочийПользователя
        |"
        );

и третий

Если ИСТИНА ИЛИ СокрЛП (СкладОтправитель.Родитель) =   "Центральные склады"  Тогда

попробуйте, который из них работает, по результатам отпишитесь
106 Marry04
 
07.07.16
08:08
(105) а разве нельзя в один запрос все поместить?
107 Marry04
 
07.07.16
08:08
в конструкцию ГДЕ
108 hhhh
 
07.07.16
08:19
(106) вам надо найти, где ошибка. У вас 3 условия. Если вы вставите все 3, то так и не поймете, которое из них гадкое.