Имя: Пароль:
1C
1C 7.7
v7: Условие на сравнение ссылок не работает в 1С 7.7
0 EvgeniuXP
 
06.01.12
12:53
Почему не работает код:

ФилиалМ=Филиалы.НайтиПоНаименованию("Марс");

...

далее сравниваем

Если Контрагент.Филиал=ФилиалМ Тогда
   Сообщить("Контрагент найден");
КонецЕсли;


а вот если напишем:

Если Контрагент.Филиал.ТекущийЭлемент()=ФилиалМ.ТекущийЭлемент()
  Сообщить("Контрагент найден");
КонецЕсли;

то это условие работает.
1 Rie
 
06.01.12
12:55
(0) Потому что НайтиПоНаименованию возвращает 0 или 1, а не ссылку.
2 Kreont
 
06.01.12
12:55
Сравнивай с Филиалы
3 Mikeware
 
06.01.12
12:57
ПОтому, что НайтиПоНаименованию() возвращает 1"найдено" или 0"не найдено"
зы. продам СП. Дорого©
4 1Сергей
 
06.01.12
12:59
(0) Убери в личной карточке из достижений "Программист 1С 7.7"
5 andrewks
 
06.01.12
13:02
одно не понял - откуда в ФилиалМ появляется ТекущийЭлемент()
6 Mikeware
 
06.01.12
13:03
(5) 1.ТекущийЭлемент() :-)))
7 Mikeware
 
06.01.12
13:04
(4) Не умеющим читать документацию и пользоваться отладчиком - стоит убрать из ЛК слово "программист" применительно к любвым системам...
зы. а может, у чувака просто похмелье? :-)
8 1Сергей
 
06.01.12
13:06
(7) скорее запой
9 Mikeware
 
06.01.12
13:08
(8) "несоблдение режима похмеления ведет к систематическому запою"©
10 EvgeniuXP
 
06.01.12
19:35
Работает:

   ФилиалМ=СоздатьОбъект("Справочник.Филиалы");
   
   Если ФилиалМ.НайтиПоНаименованию("Марс",0,1)=0 Тогда
       Возврат;    
   КонецЕсли;
   
   Кредиты=СоздатьОбъект("Справочник.Кредиты");
   Кредиты.ВыбратьЭлементы(0);
   Пока Кредиты.ПолучитьЭлемент()=1 Цикл
       Если Кредиты.Филиал.ТекущийЭлемент()=ФилиалМ.ТекущийЭлемент() Тогда
           Кредиты.Удалить(0);
       КонецЕсли;
   КонецЦикла;

не работает:

       Если Кредиты.Филиал=ФилиалМ Тогда
           Кредиты.Удалить(0);
       КонецЕсли;
11 dva1c
 
06.01.12
19:37
(9) Давно пытался впихнуть СП дорого. Ниче не вышло. ))
12 EvgeniuXP
 
06.01.12
19:38
(3) не много не верно написал, вместо первой строки
ФилиалМ=Филиалы.НайтиПоНаименованию("Марс");

нужно

Если ФилиалМ.НайтиПоНаименованию("Марс")=0 Тогда
    Возврат;
КонецЕсли;
13 filh
 
06.01.12
19:39
(11) лох, ДенисЧ уже столько продал...
14 filh
 
06.01.12
19:40
(12) врешь!
15 filh
 
06.01.12
19:40
(12) 86?
16 dva1c
 
06.01.12
19:41
(13) Опс! А ларчик просто открывался! ))
17 EvgeniuXP
 
06.01.12
19:42
(14) что вру? не работает:

Если ФилиалМ.НайтиПоНаименованию("Марс")=0 Тогда
    Возврат;
КонецЕсли;

...

далее сравниваем

Если Контрагент.Филиал=ФилиалМ Тогда
   Сообщить("Контрагент найден");
КонецЕсли;

а добавить .ТекущийЭлемент() там и там в условии - работает!
18 dva1c
 
06.01.12
19:42
+(16) Да и не конкурент я ДенисЧ ;)
19 EvgeniuXP
 
06.01.12
19:48
так тоже работает:

Если Контрагент.Филиал=ФилиалМ.ТекущийЭлемент() Тогда
   Сообщить("Контрагент найден");
КонецЕсли;
20 EvgeniuXP
 
06.01.12
19:50
даже если так напишем, тоже не работает:

Если Филиалы.НайтиПоНаименованию("Марс")=0 Тогда
  Возврат;
КонецЕсли;

ФилиалМ=Филиалы.ТекущийЭлемент();

Если Контрагент.Филиал=ФилиалМ Тогда
   Сообщить("Контрагент найден");
КонецЕсли;
21 EvgeniuXP
 
06.01.12
19:51
(20) контрагентов всех перебираем, просто упустил этот цикл.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн