|
Запретить ввод на основании Документа | ☑ | ||
---|---|---|---|---|
0
zhuk125
24.03.16
✎
15:49
|
Подскажите как запретить ввод на основании текущего документа, если его состояние не равно "Утвержден", Утвержден - это реквизит типа"Перечисление".В критерии отбора проверяю подчиненность."Упп для Украины" Пишу такой код в ФормеДокумента в
Процедура ПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Если НЕ Источник.ЭтоНовый() Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗапретСоздНаОсновании.Ссылка |ИЗ | КритерийОтбора.ЗапретСоздНаОсновании(&Документ) КАК ЗапретСоздНаОсновании"; Запрос.УстановитьПараметр("Документ", Источник.Ссылка); Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() и Состояние <> Перечисления.СостоянияДокументов.Утверждено Тогда ВызватьИсключение "созадние на основании не возмонжо" ; КонецЕсли; КонецПроцедуры |
|||
1
Чайник Рассела
24.03.16
✎
15:50
|
а почему перед записью?
|
|||
2
Fragster
гуру
24.03.16
✎
15:51
|
В модуле объекта:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения) Если ДанныеЗаполнения.Состояние <> Утвержден Тогда ВызватьИсключение("Недостаточно утверждений, нужно больше утверждений"); КонецЕсли; |
|||
3
Amra
24.03.16
✎
15:51
|
Почему перед записью, а не при создании нового? Причем тут критерии отбора?
|
|||
4
Fragster
гуру
24.03.16
✎
15:51
|
ну, или что-то типа того
|
|||
5
zhuk125
24.03.16
✎
15:59
|
(3) Видел статью, там ребята говорили передЗаписью делать.. а с критерием отбора -натупил, почему то думал что нужно сравнивать и Доки.
|
|||
6
Rie
24.03.16
✎
16:02
|
(5) Не слушай плохих ребят. Ввод на основании несколько раньше происходит, чем "перед записью".
И - "Читайте книги. В них видно фиги". |
|||
7
samozvanec
24.03.16
✎
16:03
|
(5) ну да, юзер ввел, все заполнил, а записать не дают - очень удобно
|
|||
8
zhuk125
24.03.16
✎
16:30
|
(2) сделал так, ничего не происходит (
|
|||
9
Rie
24.03.16
✎
16:34
|
(8) "Утвержден" замени на правильное значение.
|
|||
10
aleks_default
24.03.16
✎
16:35
|
(2) нужно делать в создаваемом документе
|
|||
11
netsurfer
24.03.16
✎
16:43
|
&ИменемБорисаНуралиева
Если Основание = ИмяДокумента.ПустаяСсылка() Тогда ВсёГуд = Истина; Иначе ВсёГуд = Не ВсёГуд; КонецЕсли |
|||
12
Ёпрст
24.03.16
✎
16:49
|
ежели обычные формы, то делаешь переменную модуля, в
ОбработкаЗаполнения втыкаешь условие, если не катит, переменной присваеваешь нечто, далее в модуле формы в ПередОткрытием смотришь на значение переменной, ежели = нечто (обычно проверка на истину) то предупреждение/сообщение и отказ=истина если уф - принцип почти тот же. Только изврата больше. |
|||
13
Fragster
гуру
24.03.16
✎
16:51
|
(12) какбэ (2) - по стандарту
http://its.1c.ru/db/v8std#content:2149184045:hdoc:_top:вызватьисключение |
|||
14
zhuk125
24.03.16
✎
16:52
|
Разобрался, нужно было вот так сделать. Всем спасибо
Процедура ОбработкаЗаполнения(Основание) Если ТипЗнч(Основание) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда а = Перечисления.СостоянияДокументов.Утверждено; Если Основание.Состояние <> а Тогда ВызватьИсключение("Недостаточно утверждений, нужно больше утверждений"); КонецЕсли; КонецЕсли; КонецПроцедуры |
|||
15
zhuk125
24.03.16
✎
16:52
|
(13) Доступ ограничен )
|
|||
16
Fragster
гуру
24.03.16
✎
16:53
|
(15) чтож ты так, без ИТСа живешь?
|
|||
17
hhhh
24.03.16
✎
16:57
|
(16) жук еще тот
|
|||
18
Ёпрст
24.03.16
✎
16:57
|
(13) ну, как бэ, у меня нет доступа туда и исключение - это за гранью добра и зла.
|
|||
19
Одинесю
24.03.16
✎
16:57
|
А зачем скобки у ВызватьИсключение?
|
|||
20
Fragster
гуру
24.03.16
✎
16:58
|
(19) по инерции. там в (2) еще пара ошибок синтаксических
|
|||
21
aleks_default
24.03.16
✎
17:01
|
а = Перечисления.СостоянияДокументов.Утверждено;
Если Основание.Состояние <> а Тогда феерично |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |