Имя: Пароль:
1C
1С v8
В 8.2. можно сравнивать массивы?
0 RomaH
 
naïve
27.01.12
09:19
Код типа
Массив1 = Новый Массив;
Массив1.Добавить(1);
Массив2 = Новый Массив;
Массив2.Добавить(1);

Если Массив1 = Массив2 Тогда

Условие выполниться? такая запись вообще имеет смысл?
1 aleks-id
 
27.01.12
09:21
дык это... проверь!
2 andrewks
 
27.01.12
09:22
(1) +100
3 RomaH
 
naïve
27.01.12
09:22
такой код можно наблюдать в Документообороте КОРП 1.1.4.1
ОМ ПраваДОступаБизнессПроцессыВызовСервера
Процедура ПраваДоступаПриЗаписиБизнесПроцессовПриЗаписи()
4 zak555
 
27.01.12
09:23
функция сравнение

если размер1 != размер2 тогда
возврат ложь;

//.. цикл по элементам
если мас1[и] <> мас2[и] тогда
возврат ложь;
//...

возврат истина;
5 Spieluhr
 
27.01.12
09:23
в общих модулях есть функция МассивыИдентичны()
6 RomaH
 
naïve
27.01.12
09:24
я как бы ну очень уверен что смысла нет сравнивать РАЗНЫЕ массивы, но исользование этой конструкции в типовой - настораживает

массивы там получаются (в типовой) одинаковые по содержанию, а сравнение показывает что не равно
7 ДенисЧ
 
27.01.12
09:24
Я так думаю, что сравнение идёт по ссылке на объект...
Для того, чтобы не поменять случайно то, что не надо
8 Азат
 
27.01.12
09:24
а если сравнить не массивы, а ЗначениеВСтрокуВнутр() не быстрее получится?
9 Живой Ископаемый
 
27.01.12
09:24
10 andrewks
 
27.01.12
09:25
по логике, сравнение должно идти по ссылке.

т.е., если два разных объекта с одинаковым содержимым - то не равно, а если две ссылки на один и тот же объект - то равны
11 RomaH
 
naïve
27.01.12
09:26
(5) я понимаю что есть - еще раз в ТИПОВОЙ есть такой код, вот и думаю, я дурак или исправлять ...
и ведь в тех поддержку не напишеш - они ссылки на дурацкий код не принимаю - им надо воспроизвести ситуацию - а попробуй её воспроизвести в документообороте
12 Живой Ископаемый
 
27.01.12
09:26
13 RomaH
 
naïve
27.01.12
09:27
(9) опередил, спасибо, успокоил
14 Ненавижу 1С
 
гуру
27.01.12
09:28
Ссылочные типы это порог понимания 80% 1с-ников, ООП нервно курит в сторонке
15 zak555
 
27.01.12
09:29
(12) а теперь

Массив2 = Массив1 ... =)
16 aleks-id
 
27.01.12
09:30
(4)
Массив1 = Новый Массив;
Массив1.Добавить(1);
Массив2 = Новый Массив;
Массив2.Добавить(1);
Сообщить(ЗначениеВСтрокуВнутр(Массив1)=ЗначениеВСтрокуВнутр(Массив2));
Закон Брукера: Даже маленькая практика стоит большой теории.