XOR(Исключающее ИЛИ) в языке 1С

В 1С нет такого удобного логического оператора как исключающее ИЛИ, а между тем он довольно удобен.

Например нам нужно проверить табличную часть документа на соответсвие виду операции в документе т.е. если это реализация объекта строительства, то в табл. части должны быть элементы справочника "Объекты строительства", если же это другая любая операция, то в табл. части должны быть не "Объекты строительства".

Тогда в цикле по строкам табличной части нужно писать:


Если (ВидОперации<>ОбъектСтроительства и ТипЗнч(Номенклатура)<>тОбъектСтроительства) или
(ВидОперации=ОбъектСтроительства и ТипЗнч(Номенклатура)=тОбъектСтроительства)

Тогда
//всё ОК
Иначе
//Ошибка
КонецЕсли;

с исключающим ИЛИ (XOR) было бы менее громоздко


Если (ВидОперации=ОбъектСтроительства XOR ТипЗнч(Номенклатура)=тОбъектСтроительства)

Тогда
//всё ОК
Иначе
//Ошибка
КонецЕсли;

а теперь как это симитировать в 1С


Если ?(ВидОперации=ОбъектСтроительства,1,0)=?(ТипЗнч(Номенклатура)=тОбъектСтроительства,1,0))

Тогда
//всё ОК
Иначе
//Ошибка
КонецЕсли;

вроде неплохо да?

Можно попытаться сделать условие еще более изящным

Что-то вроде:

Если (ВидОперации=ОбъектСтроительства)=(ТипЗнч(Номенклатура)=тОбъектСтроительства) Тогда

Похожие материалы

Справочники

Документы

Отчеты

Обработки