Имя: Пароль:
1C
 
Есть ли в 1С исключающее или (xor)?
0 sdr
 
02.08.06
08:06
Если есть то как называется?
1 Vint Kras
 
02.08.06
08:07

или и
2 sdr
 
02.08.06
08:09
че то не катит, говорит ошибка в выражении
Если (ИмяРеквизита = "Номенклатура") или<<?>> и (ИмяРеквизита = "ЦенаОпт") Тогда
3 Vint Kras
 
02.08.06
08:09
Если (ИмяРеквизита = "Номенклатура") или (ИмяРеквизита = "ЦенаОпт") Тогда
4 Rovan
 
гуру
02.08.06
08:12
(0) подошло (3) ? или нужно что более заумное ?? :-)
5 Иде я
 
02.08.06
08:13
(3) Некорректный пример
6 Wel06
 
02.08.06
08:14
Так:

Если ((ИмяРеквизита = "Номенклатура") или (ИмяРеквизита = "ЦенаОпт"))и
(не((ИмяРеквизита = "Номенклатура") и (ИмяРеквизита = "ЦенаОпт"))) Тогда
7 Иде я
 
02.08.06
08:15
Ага, только Xor чуууууууууууууууууууууууууууууууууууть-чууууууууууууууууууууууууууууууууууууууууууууууууууууууть покороче :)
8 BlaBlaBla
 
02.08.06
08:20
обратись к дядюшке Шахиджаняну он тебя научит как с этим справляться,
9 BlaBlaBla
 
02.08.06
08:21
будешь прекрасно обходится без xor
10 sdr
 
02.08.06
08:23
пример, действительно нейдачный, во многих языках есть or и xor, допусти как в php:
Пример    Имя  Результат
$a or $b  Or   TRUE, если $a или $b TRUE.
$a xor $b Xor  TRUE, если $a или $b TRUE, но не оба.
11 sdr
 
02.08.06
08:25
т.е. xor выдаст ложь, если оба выражения истинны
12 sdr
 
02.08.06
08:26
А как действует "или" в 1C? Как or или xor?
13 Wel06
 
02.08.06
08:33
Как or
14 774816
 
02.08.06
08:34
xor в 1с нет
15 igork1966
 
02.08.06
08:37
A XOR B

A = НЕ B
Не покатит?
16 igork1966
 
02.08.06
08:41
(15) ага, в 7ке непокатит. ;-(
17 Иде я
 
02.08.06
08:43
По теории все выражения OR XOR AND NOT можно представить в виде И И ИЛИ
точно не помню - на первом курсе было
18 igork1966
 
02.08.06
08:43
A И (НЕ B)
19 igork1966
 
02.08.06
08:44
(18) сории неправильно.
20 Мишка на сеРвере
 
02.08.06
08:50
Если ((А=условие) или (В=условие)) и (А<>В) Тогда
 //
КонецЕсли;
21 igork1966
 
02.08.06
08:51
(20) А<>В  если A и B - логические выражения, то непокатит по той же причине,
что и (15)


(17) Естественно
(A И B) И НЕ (A И B)
22 igork1966
 
02.08.06
08:53
(21) описался
(A ИЛИ B) И НЕ (A И B)
23 igork1966
 
02.08.06
09:00
А вот еще вариант:
a xor b ? (a and (not b)) or ((not a) and b).
24 Zmich
 
02.08.06
09:03
(+22). Или так: (А И НЕ (В)) ИЛИ (НЕ (А) И В)
25 romix
 
модератор
02.08.06
09:14
Матрейя
2 - 25.11.05 - 13:38
Народ кто поможет с кодом АДО в 1С 7 ТиС

Function XOR(Val ParA, Val ParB)
 Res = 0;
 Koef = 1;
 For BitNumber = 1 To 8 Do
   BitA = ParA % 2;
   BitB = ParB % 2;
   ParA = Int(ParA / 2);
   ParB = Int(ParB / 2);
   BitC = (BitA + BitB) % 2;
   Res = Res + BitC * Koef;
   Koef = Koef * 2;
 EndDo;
 Return Res;
EndFunction
             

// индексы значений с списке  

// server = 2, db = 4, uid = 6, pwd = 8, checksum = 10

Function ConnectionString()  export
   Var SQLKeyCode[36], ConnectCode[200];
   ConnectFile = IBDir() + "1Cv7.DBA";
   If FS.ExistFile(ConnectFile) = 0 Then
       Message("Это не SQL - база!", "!");
       Return (0);
   EndIF;
   FSO = CreateObject("Scripting.FileSystemObject");
   F = FSO.OpenTextFile(ConnectFile, 1);
   ConnectLen = 0;
   While F.AtEndOfStream = 0 Do
       ConnectLen = ConnectLen + 1;
       ConnectCode[ConnectLen] = Asc(F.Read(1));
   EndDo;
   F.Close();
   FSO = 0;
   SQLKey = "19465912879oiuxc ensdfaiuo3i73798kjl";
   For i = 1 To 36 Do
       SQLKeyCode[i] = Asc(Сред(SQLKey, i, 1));
   EndDo;
   Connect = "";
   For i = 1 To ConnectLen Do
       Connect = Connect + Chr(XOR(ConnectCode[i], SQLKeyCode[(i - 1) % 36 + 1]));
   EndDo;
   vl=createobject("ValueList");
   Connect=StrReplace(Connect,"{","");
   Connect=StrReplace(Connect,"}","");
   vl.fromSeparatedString(Connect);
   return (vl);
EndFunction

constr=ConnectionString();
server=constr.getValue(2);database=constr.getValue(4);uid=constr.getValue(6); pwd=constr.getValue(8);
con=createobject("ADODB.Connection"); con.cursorlocation=3; err="";
               con.open("provider=SQLOLEDB;data source="+trimall(server)+";DataBase="+trimall(database)+";uid="+trimall(uid)+";pwd="+""+trimall(pwd));
               
               qwerty="здесь текст твоего запроса";
rs=con.execute(qwerty);
26 igork1966
 
02.08.06
09:17
(25) Насколько я понимаю речь шла про логический XOR.
Независимо от того, куда вы едете — это в гору и против ветра!