Имя: Пароль:
1C
1С v8
Проверка на пустое значение в поле ввода
0 amadeus2010
 
15.05.12
12:19
Добрый день, помогите пожалуйста разобраться есть необходимость проверить на пустые строки поля формы.Из ексель загружается документ,после загрузки документа на форму перед записью и проведением сделал проверку на пустые значения в полях ввода формы документа.Привожу часть кода:

Строка                = Контрагенты.Добавить();
       Строка.Контрагент= ПолучитьКонтрагентаПоКодуОракл(формат(Число(ВРег(СокрЛП(Лист.Cells(ПоСтрокам,1).Value))), "ЧГ=0"));
       Если  Не ЗначениеЗаполнено(Строка.Контрагент) Тогда
           Сообщить("Заполните поле контрагент!");
           КонецЕсли;
           
       Строка.Ордтейкер = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(ВРег(СокрЛП(Лист.Cells(ПоСтрокам,2).Value)));
          Если НЕ ЗначениеЗаполнено(Строка.Ордтейкер) Тогда
           Сообщить("Заполните поле ордертейкер!");
           КонецЕсли;

           
       
       Строка.Департамент = Справочники.Подразделения.НайтиПоНаименованию(СокрЛП(Лист.Cells(ПоСтрокам,3).Value));
            Если НЕ ЗначениеЗаполнено(Строка.Департамент)  Тогда
           Сообщить("Заполните поле департамент!");
           КонецЕсли;
                           
       DAY = ?(ЕстьНеЦифрыВСтроке(СокрЛП(Лист.Cells(ПоСтрокам,4).Value)) , 0, Число(СокрЛП(Лист.Cells(ПоСтрокам,4).Value)));
       
           Если DAY=0  Тогда
               Строка.ДеньПосещения=Перечисления.ДниПосещения.ПустаяСсылка();
           Иначе    
               Строка.ДеньПосещения=Перечисления.ДниПосещения[DAY-1];
           КонецЕсли;
           Если ПустаяСтрока(Строка.ДеньПосещения) Тогда
               Сообщить("Не заполнено поле Дни посещения!");
               КонецЕсли;

Если оставить пустые ячейки в ексель файле,то Условие срабатывает только для Строка.ДеньПосещения, а  для Строка.Департамент вместо выдачи сообщения о пустом поле выводится первое значение из справочника Подразделения. Где может быть ошибка в коде?
1 salvator
 
15.05.12
12:24
В НайтиПоНаименованию 2-й параметр Истина попробуй поставить
2 amadeus2010
 
15.05.12
13:24
Я поставил в
Строка.Департамент = Справочники.Подразделения.НайтиПоНаименованию(СокрЛП(Лист.Cells(ПоСтрокам,3).Value)).Родитель.ЭтоГруппа;
            Если НЕ ЗначениеЗаполнено(Строка.Департамент)  Тогда
           Сообщить("Заполните поле департамент!");
           КонецЕсли;
трассировкой показал значения департамента, в предприятии не заполнил поле Департамент и выдал сообщение указаное в коде. В реквизитах документа Департамент указан как Подразделения.Ссылка. Может и здесь указать вместо Родитель.ЭтоГруппа Родитель.Ссылка
3 amadeus2010
 
15.05.12
16:48
Подскажите пожалуйста как в данную проверку можно добавить строку в которой не заполнено значение

Если ПустаяСтрока(Строка.Ордтейкер) Тогда
            Предупреждение("Укажите имя и фамилию ордертейкера"+Строка№);
            КонецЕсли;
4 hhhh
 
15.05.12
16:56
ну попробуйте по-очереди: Родитель, ЭтоГруппа и Ссылка. Чего прокатит, то и ставьте.
5 amadeus2010
 
15.05.12
17:13
Я сделал так
       Строка.Ордтейкер = Справочники.СотрудникиОрганизаций.НайтиПоНаименованию(ВРег(СокрЛП(Лист.Cells(ПоСтрокам,2).Value)));
       Если ПустаяСтрока(Строка.Ордтейкер) Тогда
            Предупреждение("Укажите имя и фамилию ордертейкера"+Строка.Ордтейкер);
            КонецЕсли;

вроде бы работает
6 salvator
 
15.05.12
17:28
(3) Добавь переменную счетчик
Предупреждение("Укажите имя и фамилию ордертейкера, Строка № "+Счетчик);