Имя: Пароль:
1C
1C 7.7
v7: Почему срабатывает условие?
0 andryus
 
05.02.12
20:00
Есть код в процедуре ПриЗаписи документа
   Если (ЛицевойСчет.ТипСчета<>Перечисление.ВидыЛицевыхСчетов.ДляПредпринимательской) ИЛИ (ЛицевойСчет.ТипСчета<>Перечисление.ВидыЛицевыхСчетов.ДляСубсидий) Тогда
       ВыбратьСтроки();
       Пока ПолучитьСтроку()=1 Цикл
           Если ПустоеЗначение(Контрагент)=1 Тогда
               Предупреждение("В строке: "+НомерСтроки+" не выбран контрагент. Документ не проведен");
               СтатусВозврата(0);
               Возврат;
           КонецЕсли;
           Если ПустоеЗначение(Договор)=1 Тогда
               Предупреждение("В строке: "+НомерСтроки+" не выбран договор. Документ не проведен");
               СтатусВозврата(0);
               Возврат;
           КонецЕсли;
       КонецЦикла;
   КонецЕсли;

Почему срабатывает условие, когда на самом деле в документе выбрано значение по которому ЛицевойСчет.ТипСчета=Перечисление.ВидыЛицевыхСчетов.ДляПредпринимательской

?? Помогите
1 aleks-id
 
05.02.12
20:02
потому что срабатывает условие ЛицевойСчет.ТипСчета<>Перечисление.ВидыЛицевыхСчетов.ДляСубсидий
2 Любоч
 
05.02.12
20:03
В условии ИЛИ замени на И
3 aleks-id
 
05.02.12
20:03
тьфу ты
потому что срабатывает ЛицевойСчет.ТипСчета<>Перечисление.ВидыЛицевыхСчетов.ДляПредпринимательской
4 1Сергей
 
06.02.12
08:50
Такое условие всегда будет срабатывать, какой бы тип счета ни был
5 andrewks
 
06.02.12
08:56
((Автор<>Двоечник) ИЛИ (Автор<>Отличник)) тождественно равно ИСТИНА
6 trad
 
06.02.12
09:07
по правилам Булевой алгебры выражение
(ТипСчета<>ДляПредпринимательской) ИЛИ (ТипСчета<>ДляСубсидий)
можно преобразовать в
НЕ((ТипСчета=ДляПредпринимательской) И (ТипСчета=ДляСубсидий))
ТипСчета одновременно не может принимать два значение (если конечно это не квантовая бухгалтерия), тогда всегда будет НЕ(Ложь) = Истина
7 babayzver
 
06.02.12
12:36
(0) Просто измени ИЛИ на И