Имя: Пароль:
1C
1С v8
Ошибка в проведении документа
0 amadeus2010
 
17.05.12
10:37
Добрый день,столкнулся с такой проблемой.Написал цикл в обработке проведения,проверяющий заполнение обязательных полей табличной части документа.Вроде цикл работает проверяет строки и если есть не заполненные то выдает ошибку не проводит документ.проблема вот в чем если заполнить все поля документа,то все равно выдает сообщение Операция не выполнена и документ не проводиться.Вот код цикла;

Для Каждого Строка Из Контрагенты Цикл
   
   Если Строка.Контрагент.Пустая() Тогда
         Предупреждение("Не заполнены необходимые данные,документ не будет проведен!");
         КонецЕсли;
   
     Если Строка.Ордтейкер.Пустая() Тогда
        Предупреждение("Не заполнены необходимые данные,документ не будет проведен!");
              КонецЕсли;
   
    Если Строка.Департамент.Пустая() Тогда
        Предупреждение("Не заполнены необходимые данные,документ не будет проведен!");
       
    КонецЕсли;
             Отказ=Истина;
            // Возврат;
       КонецЦикла;

в чемм кроется ошибка?
1 Wobland
 
17.05.12
10:40
Отказ обязательно будет Истиной
2 Wobland
 
17.05.12
10:40
форматируйте код, блин
3 Wobland
 
17.05.12
10:41
а ещё есть проверка заполнения - свойство такое
4 Wobland
 
17.05.12
10:46
кстати, не пробовал групповое проведение делать? или на сервере
5 Wobland
 
17.05.12
10:46
или обойтись одним если
6 МойКодУныл
 
17.05.12
10:47
(4) а еще,если хочется кодом, в типовых была процедурка ПроверитьЗаполнениеТабличнойЧасти(), там уже все написано:)
7 Wobland
 
17.05.12
10:47
или не использовать в качестве имён переменных такие слова как Число, Строка...
8 mikecool
 
17.05.12
10:47
(1) бгг +1
9 salvator
 
17.05.12
10:48
(0) Не вижу в этом коде заполнение реквизитов
10 Wobland
 
17.05.12
10:52
(1) а ни фига ж не всегда, только если в ТЧ кто-то есть
11 amadeus2010
 
17.05.12
10:55
реквизиты заполняются из ексель по кнопке заполнить и там же проверяются на заполнение полей ТЧ, а мне нужно сделать так чтобы документ не проводился если не заполнены обязательные поля ТЧ, поэтому и написал такой цикл
12 Wobland
 
17.05.12
10:58
ещё можно искать в ТЧ, а не циклом ходить...
13 hhhh
 
17.05.12
11:03
(11) нельзя в обработке проведения писать Предупреждение. Тебя пользователи придушат. Пиши Сообщить().
14 Сергей Д
 
17.05.12
11:04
Отказ=Ложь;
Для Каждого Строка Из Контрагенты Цикл
   
   Если Строка.Контрагент.Пустая() Тогда
         Предупреждение("Не заполнены необходимые данные,документ не будет проведен!");
             Отказ=Истина;
         КонецЕсли;
   
     Если Строка.Ордтейкер.Пустая() Тогда
         Предупреждение("Не заполнены необходимые данные,документ не будет проведен!");
             Отказ=Истина;
               КонецЕсли;
   
    Если Строка.Департамент.Пустая() Тогда
         Предупреждение("Не заполнены необходимые данные,документ не будет проведен!");
             Отказ=Истина;
    КонецЕсли;

       КонецЦикла;
15 Wobland
 
17.05.12
11:05
(14) два
16 amadeus2010
 
17.05.12
11:23
(14)спасибо за подсказку
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший