|
v7: Как организовать проверку документа | ☑ | ||
---|---|---|---|---|
0
sedoi_starik
25.09.13
✎
12:20
|
Подскажите как правильно следует сделать проверку на предмет введенных данных в форме документа. Предположим мне необходимо проверить сто реквизит шапки был не пустым значением. Я сделал так, в форме документа - модуль создал процедуру.
Процедура ПриЗаписи() Если ПустоеЗначение(ИмяПользов)=1 Тогда Сообщить ("не ввели имя пользователя"); // тут бы добавил что бы документ не закрывался и не записывался // что бы пользователь смог сделать работу на ошибками //но не знаю как Иначе //А тут у меня идет запись данных в справочник КонецЕсли; КонецПроцедуры Как такое организовать? |
|||
1
Стрелок
25.09.13
✎
12:21
|
статусвозврата(0);
возврат |
|||
2
VladZ
25.09.13
✎
12:24
|
Лучше так:
Процедура ПриЗаписи() Если ВсеУсловияСоблюдены()=0 Тогда статусвозврата(0); возврат; КонецЕсли; КонецПроцедуры В функции ВсеУсловияСоблюдены() прописываешь все свои "свистелки и гуделки". Будет читабельнее. |
|||
3
sedoi_starik
25.09.13
✎
12:26
|
(1) (2) Спасибо, все гуд.
|
|||
4
Бирюк
25.09.13
✎
12:27
|
(0) В свойствах метаданных у обязательного для заполнения реквизита придумай какой-нибудь спецсимвол. И через метаданные и ПолучитьАтрибут() проверяй заполнено или нет.
|
|||
5
sedoi_starik
25.09.13
✎
12:27
|
А еще подскажите как с метками работать?
|
|||
6
sedoi_starik
25.09.13
✎
12:28
|
(4) О_о это как?
|
|||
7
Бирюк
25.09.13
✎
12:41
|
Ну примерно так.
В Комментарии реквизита ставишь символ & - признак обязательности. Далее Для й=1 по Метаданные.Документ("Новый1").РеквизитШапки() Цикл л_ИмяРеквизита=Метаданные.Документ("Новый1").РеквизитШапки(й).Идентификатор; л_Комментарий=Метаданные.Документ("Новый1").РеквизитШапки(й).Комментарий; л_ЗначениеРеквизита=рд_Документ.ПолучитьАтрибут(л_ИмяРеквизита); Сообщить("_"+ л_ИмяРеквизита+"_"+л_Комментарий+"_"+л_ЗначениеРеквизита); КонецЦикла; Для й=1 по Метаданные.Документ("Новый1").РеквизитШапки() Цикл л_ИмяРеквизита=Метаданные.Документ("Новый1").РеквизитШапки(й).Идентификатор; л_Комментарий=Метаданные.Документ("Новый1").РеквизитШапки(й).Комментарий; л_ЗначениеРеквизита=рд_Документ.ПолучитьАтрибут(л_ИмяРеквизита); Сообщить("_"+ л_ИмяРеквизита+"_"+л_Комментарий+"_"+л_ЗначениеРеквизита); КонецЦикла; и и ищи в комментарии & |
|||
8
Бирюк
25.09.13
✎
12:42
|
извиняюсь, 2 раза скопипастил
|
|||
9
PRO100 NigGaZ
25.09.13
✎
12:55
|
Мне больше нравится как 1сники сделали
НеВсеОсновныеЗапонены = 1; Если ПустоеЗначение(Склад) = 1 Тогда ИмяПоля = """Склад"""; ИдПоля = "Склад"; ИначеЕсли ПустоеЗначение(Фирма) = 1 Тогда ИмяПоля = """Фирма"""; ИдПоля = "Фирма"; Иначе НеВсеОсновныеЗапонены = 0; КонецЕсли; Если НеВсеОсновныеЗапонены <> 0 Тогда СтатусВозврата(0); Предупреждение("Не заполенено поле " + ИмяПоля, 60); Активизировать(ИдПоля); Возврат; КонецЕсли; |
|||
10
sedoi_starik
25.09.13
✎
13:08
|
(7) так как то очень сильно замудрено.
(9) само то. |
|||
11
Бирюк
25.09.13
✎
13:13
|
(10) Дань универсальности..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |