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