|
Отмена проведения | ☑ | ||
---|---|---|---|---|
0
Marry04
24.06.16
✎
05:43
|
Нужно чтобы в документе "Перемещение товаров" при установке пользователем "Администратор" склада центрального, возможность проведения отсутствовала. Но пишет вот такую ошибку:
{Документ.ПеремещениеТоваров.Форма.ФормаДокумента.Форма(1901)}: Ошибка при вызове метода контекста (РольДоступна) Если РольДоступна("Администратор")=Истина по причине: Недопустимое значение параметра (параметр номер '1') Вот код: Процедура СкладОтправительПриИзменении(Элемент) СсылкаНаСправочник = Справочники.Склады; Если РольДоступна("Администратор")=Истина Тогда ЗначениеОтправителя = ЭлементыФормы.СкладОтправитель.Значение; Если ЗначениеОтправителя.Родитель = "Центральные склады" Тогда ЭлементыФормы.ДействияФормы.Кнопки.Действие4.Доступность = Ложь; КонецЕсли; КонецЕсли; РаботаСДиалогами.УстановитьЗаголовокФормыДокументаСУчетомСклада(Строка(ВидОперации), ЭтотОбъект, ЭтаФорма, СкладПолучатель); // Установить видимость реквизитов и заголовков колонок. УстановитьВидимость(); ПриИзмененииВидаСклада(); КонецПроцедуры |
|||
1
Marry04
24.06.16
✎
05:43
|
упп 1.3 обычное приложение
|
|||
2
Amra
24.06.16
✎
05:50
|
Нет такой роли в конфигурации. Ждем следующего вопроса почему не отрабатывает условие "Если ЗначениеОтправителя.Родитель = "Центральные склады" Тогда"
|
|||
3
80ksa
24.06.16
✎
05:54
|
Администратор это видимо ИмяПользователя а на Роль, Машенька мужского пола))
|
|||
4
Marry04
24.06.16
✎
06:02
|
Есть такая роль в конфигурации.
Процедура СкладОтправительПриИзменении(Элемент) СсылкаНаСправочник = Справочники.Склады; Роль = "Администратор пользователей"; Если РольДоступна(Роль) Тогда ЗначениеОтправителя = ЭлементыФормы.СкладОтправитель.Значение; Если ЗначениеОтправителя.Родитель = "Центральные склады" Тогда ЭлементыФормы.ДействияФормы.Кнопки.Действие4.Доступность = Ложь; КонецЕсли; КонецЕсли; РаботаСДиалогами.УстановитьЗаголовокФормыДокументаСУчетомСклада(Строка(ВидОперации), ЭтотОбъект, ЭтаФорма, СкладПолучатель); // Установить видимость реквизитов и заголовков колонок. УстановитьВидимость(); ПриИзмененииВидаСклада(); КонецПроцедуры |
|||
5
Marry04
24.06.16
✎
06:05
|
Если ЗначениеОтправителя.Родитель.Наименование = "Центральные склады" Тогда
исправила |
|||
6
Marry04
24.06.16
✎
06:14
|
(2) есть такая Роль.да, дейсвительно ошиблась. но потом исправила. но все равно
|
|||
7
Marry04
24.06.16
✎
06:23
|
(2) (3) Получилось. Невнимательность делает свое дело. Но теперь при выборе соответствующего склада, кнопка активна все равно
|
|||
8
Marry04
24.06.16
✎
06:36
|
ДокументОбъект.Записать( РежимЗаписиДокумента.ОтменаПроведения);так пробовала еще больше ошибок вылазиет
|
|||
9
Amra
24.06.16
✎
06:51
|
(7) "Если ЗначениеОтправителя.Родитель = "Центральные склады" Тогда" на что исправила то?)
|
|||
10
vicof
24.06.16
✎
06:52
|
Отойди от компьютера, пока делов не натворила
|
|||
11
Marry04
24.06.16
✎
06:54
|
(9) Если ЗначениеОтправителя.Родитель.Наименование = "Центральные склады"
|
|||
12
Marry04
24.06.16
✎
07:03
|
не понимаю как отменить проведение.помогите пожалуйста!
|
|||
13
Amra
24.06.16
✎
07:07
|
(11) Если СокрЛП(ЗначениеОтправителя.Родитель.Наименование) = "Центральные склады"
|
|||
14
Marry04
24.06.16
✎
07:14
|
(13) Не помогло, документ также проводиться
|
|||
15
Mankubus
24.06.16
✎
07:19
|
(14) в обработке проведения ставь отказ = истина
|
|||
16
Beretta
24.06.16
✎
07:20
|
Надо научить пользователей хитрому алгоритму. Создать документ или отменить проведение, изменить склад, записать, провести из списка =)
|
|||
17
Marry04
24.06.16
✎
07:23
|
(15) я писала представлнный обработчик при изменении отправителясклада.
если я поставлю отказ=истина. то для всех пользователей проведение будет недоступно |
|||
18
Beretta
24.06.16
✎
07:26
|
(16)+ после записи выйти из базы, зайти другим пользователем и провести. Из списка.
|
|||
19
Beretta
24.06.16
✎
07:27
|
(18)+ ...при желании =)
|
|||
20
Marry04
24.06.16
✎
07:29
|
(19) нет, им не нужны такие заморочки. нужно чтоб возможности не было проводить просто.
|
|||
21
Marry04
24.06.16
✎
07:29
|
(15) обработки проведения нет . есть токлько ДействияФормыДействиеЗаполнитьИПровести(Кнопка)
|
|||
22
Mankubus
24.06.16
✎
07:32
|
(17) Так ты перед этим условие напиши
Если МоеУсловие ТОгда Отказ = Истина КонецЕсли |
|||
23
Beretta
24.06.16
✎
07:33
|
(20) это не заморочки. Это последоватедьность действий, которая позволяет им элегантно забить на то что ты делаешь и сделать так как они хотят
Тебе в (15) правильную вещь советуют. |
|||
24
Михаил 1С
24.06.16
✎
07:33
|
(0) Мм, ну, простейший способ - взять модуль Объекта, в нем процедуру ПередЗаписью и далее - Если роль такая-то и склад такой-то, то Отказ=Истина, Сообщить("руководство сказало Нельзя").
Можно еще доп.проверку поставить - если РежимЗаписи=Проведение или (РежимЗаписи=Запись и Проведен), чтобы разрешить обычную запись без проведения. |
|||
25
Михаил 1С
24.06.16
✎
07:34
|
А в процедуре СкладОтправительПриИзменении() ничего не пиши.
|
|||
26
Marry04
24.06.16
✎
07:35
|
(24) нет обработчика ПередЗаписью
|
|||
27
Михаил 1С
24.06.16
✎
07:36
|
(26) Поищи, в моих документах он есть.
|
|||
28
Beretta
24.06.16
✎
07:37
|
(26) И никогда больше не будет? =)
|
|||
29
Marry04
24.06.16
✎
07:37
|
(27) В модуле данного документа нет такого метода.
|
|||
30
Михаил 1С
24.06.16
✎
07:37
|
(26) создай его сама
|
|||
31
Михаил 1С
24.06.16
✎
07:38
|
Поищи рядом с кнопкой "Процедуры и функции" - это сверху, третья строка менюшек
|
|||
32
Marry04
24.06.16
✎
07:39
|
(31) в поиске нет такого метода. но в любом случае данные записываются как-то. значит метод по другому называется
|
|||
33
MrStomak
24.06.16
✎
07:41
|
(32) Поищи ПередЗаписьюДляМаши(), тут парни наверное напутали просто
|
|||
34
Marry04
24.06.16
✎
07:42
|
(31) ПослеЗаписи есть. а перед нет.
|
|||
35
Mankubus
24.06.16
✎
07:48
|
(34) Смотри (31)
|
|||
36
Mankubus
24.06.16
✎
07:49
|
(35) + или нажми Ctrl+Alt+P
|
|||
37
catena
24.06.16
✎
07:54
|
(34)Ну создай, в чем проблема-то?
|
|||
38
Marry04
24.06.16
✎
07:57
|
(31) Создала. Только теперь записать не могу даже его. мне нужно, чтоб только провести нельзя было его.
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) СсылкаНаСправочник = Справочники.Склады; Роль = "АдминистраторПользователей"; Если РольДоступна(Роль) Тогда ЗначениеОтправителя = ЭлементыФормы.СкладОтправитель.Значение; КонецЕсли; //Если ЗначениеОтправителя.Родитель.Наименование = "Центральные склады" Тогда Если СокрЛП(ЗначениеОтправителя.Родитель.Наименование) = "Центральные склады" Тогда Отказ = истина; Сообщить("руководство сказало Нельзя") //ОбработкаУдаленияПроведения(ЭтаФорма.ДокументОбъект); //ДокументОбъект.Записать( РежимЗаписиДокумента.ОтменаПроведения); //ЭлементыФормы.ДействияФормы.Кнопки.Действие4.Доступность = Ложь; КонецЕсли; КонецПроцедуры |
|||
39
Beretta
24.06.16
✎
08:01
|
(38) Эх, Маша не читатель - Маша писатель.
В (24) было рассказано про проверку условия режима записи. И обращение к элементам формы убери. Совсем. |
|||
40
MrStomak
24.06.16
✎
08:01
|
(38)
Брррр. В начале нужно писать Если ОбменДанными.Загрузка = Истина Тогда Возврат; КонецЕсли; Потом весь твой кусок нужно включать в тело условия; Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда Потом ЗначениеОтправителя = СкладОтправитель. И я очень надеюсь ты не на живых людях эксперименты ставишь! |
|||
41
catena
24.06.16
✎
08:01
|
(38) читай (24)
|
|||
42
MrStomak
24.06.16
✎
08:08
|
(39)Вангую, что она вообще не в модуле объекта находится.
|
|||
43
Marry04
24.06.16
✎
08:10
|
РежимПроведения = ложь;
РежимЗаписи=истина; Отказ = истина; В форме документа |
|||
44
Marry04
24.06.16
✎
08:11
|
(43) так не правильНО?
|
|||
45
Marry04
24.06.16
✎
08:17
|
Спасибо всем большое!Все получилось!
|
|||
46
Marry04
24.06.16
✎
08:18
|
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка = Истина Тогда Возврат; КонецЕсли; Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда СсылкаНаСправочник = Справочники.Склады; Роль = "АдминистраторПользователей"; Если РольДоступна(Роль) Тогда ЗначениеОтправителя = ЭлементыФормы.СкладОтправитель.Значение; КонецЕсли; Если СокрЛП(ЗначениеОтправителя.Родитель.Наименование) = "Центральные склады" Тогда Отказ = истина; Сообщить("руководство сказало Нельзя") КонецЕсли; КонецЕсли; КонецПроцедуры вот так получилось |
|||
47
catena
24.06.16
✎
08:26
|
"СкладОтправитель" - реквизит формы или документа?
|
|||
48
MrStomak
24.06.16
✎
08:30
|
(44) Теперь убирай это из формы и переноси в модуль объекта. Иначе твоя проверка при проведении из списка работать не будет.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |