Имя: Пароль:
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
проверку наценку вывел в отдельный код, теперь записывает документ, только каждое сообщение два раза появляется. т,е наценка действительно меньше, потом предупреждение, еще паз наценка, потом предупреждееие, дальше запись
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн