|
Проведение документа | ☑ | ||
---|---|---|---|---|
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, то так и не поймете, которое из них гадкое.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |