Имя: Пароль:
1C
1С v8
Запись документа, проверка наценки
0 pnamik
 
23.04.15
10:57
Добрый день.

В модуле ыормы приходной накладной в процедуре передзаписью есть проверка на наценку в следующем виде


Для Каждого ТекСтрока Из ДокументОбъект.Накладная Цикл
        ТекСтрока = ЭлементыФормы.Накладная.ТекущиеДанные;
    Если ТекСтрока.РозничнаяНаценка < 30 Тогда
        Режим = РежимДиалогаВопрос.ДаНет;
        Текст = "Действительно ли наценка меньше 30%?";
        Ответ = Вопрос(Текст, Режим, 0);  
        Если Ответ = КодВозвратаДиалога.Да Тогда
            Предупреждение (Неправильная наценка");
            Отказ = Ложь;

        КонецЕсли;
    КонецЕсли;
     КонецЦикла;


проверяет хорошо, но записывать документ не дает. варианты отказ=истина, кодвозвратадиалога.нет не дает нужного результата. а нужно, чтобы этот код просто проверил наценку, сделал предупреждение, и дал записать документ.

спасибо за возможную помощь
1 D_E_S_131
 
23.04.15
10:58
"Отказ = Ложь;" — убрать
2 D_E_S_131
 
23.04.15
10:58
упс... это не влияет
3 D_E_S_131
 
23.04.15
10:59
Где-то выше нет "Отказ = Истина;"?
4 pnamik
 
23.04.15
11:03
(3) есть выше отказ истина
5 Sanek_GAL
 
23.04.15
11:04
Отладчик и проверять параметр "Отказ" в процедурах записи в модуле формы и модуле объекта. Где-то он в Истина становится.
6 Sanek_GAL
 
23.04.15
11:04
(4) Вот поэтому и не записывает
7 Ненавижу 1С
 
гуру
23.04.15
11:05
константы в коде - нехорошо
8 pnamik
 
23.04.15
11:07
после

ТекСтрока = ЭлементыФормы.Накладная.ТекущиеДанные;

есть такая проверка



    Если ТекСтрока.ЦенаПоступления = 0 Тогда
        Предупреждение ("Цена поступления должна больше нуля");
        Отказ = Истина;
        Возврат;
    КонецЕсли;
9 Ненавижу 1С
 
гуру
23.04.15
11:08
(8) то есть если текущая строка будет ненулевой, то все ок?
10 pnamik
 
23.04.15
11:14
проверку наценку вывел в отдельный код, теперь записывает документ, только каждое сообщение два раза появляется. т,е наценка действительно меньше, потом предупреждение, еще паз наценка, потом предупреждееие, дальше запись