Имя: Пароль:
1C
1С v8
Сравнение не срабатывает
0 fleur
 
13.11.12
13:39
РезНом = Справочники.Номенклатура.НайтиПоНаименованию(ТЗ[Счетчик].Номенклатура);
РезХар = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(ТЗ[Счетчик].ХарактеристикаНоменклатуры);
ШтрихкодСтроки="";
Штрих = РегистрыСведений.Штрихкоды;
ОтборШтрих = Новый Структура("Владелец");
ОтборШтрих.Владелец = РезНом;
ВыборкаШтрих = Штрих.Выбрать(ОтборШтрих);
Пока ВыборкаШтрих.Следующий() Цикл

Если ВыборкаШтрих.ХарактеристикаНоменклатуры = РезХар  Тогда

//в этой строке не срабатывает сравнение, хотя в отладчике все одинаково

Сообщить("Штрихкод " + ВыборкаШтрих.Штрихкод);
ШтрихкодСтроки = ВыборкаШтрих.Штрихкод;
КонецЕсли;
КонецЦикла;
1 del123
 
13.11.12
13:41
Типы точно совпадают?
2 del123
 
13.11.12
13:42
и ты уверена что нашла нужную характеристику, именно от РезНом, а не от другого элемента номенклатуры?
3 fleur
 
13.11.12
13:42
да, тип строка
4 Reset
 
13.11.12
13:43
Из
РезХар = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(ТЗ[Счетчик].ХарактеристикаНоменклатуры);
можно предположить, что ТЗ[Счетчик].ХарактеристикаНоменклатуры - это строка.

Но здесь
Если ВыборкаШтрих.ХарактеристикаНоменклатуры = РезХар  Тогда

Сравнивается эта строка со ссылкой
5 del123
 
13.11.12
13:43
(3) а в РезХар элемент справочника номенклатуры же
6 Reset
 
13.11.12
13:44
Вместо б-кода
Если ВыборкаШтрих.ХарактеристикаНоменклатуры = РезХар  Тогда

написать б-код
Если ВыборкаШтрих.ХарактеристикаНоменклатуры = ТЗ[Счетчик].ХарактеристикаНоменклатуры  Тогда
7 del123
 
13.11.12
13:46
(6) Чет я не понял, а почему ВыборкаШтрих.ХарактеристикаНоменклатуры строка?:)
8 Reset
 
13.11.12
13:47
(7) Это я прогнал.
9 Reset
 
13.11.12
13:47
Уже сам увидел :)
10 del123
 
13.11.12
13:47
ИМХО надо в
РезХар = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(ТЗ[Счетчик].ХарактеристикаНоменклатуры,,,РезНом);
11 fleur
 
13.11.12
13:48
точно, попробую
12 Reset
 
13.11.12
13:48
(10) Да, ты прав в (2)
13 Reset
 
13.11.12
13:49
(11) А ТЗ[Счетчик].Номенклатура точно строка?
14 fleur
 
13.11.12
13:50
да, я ошиблась, в обоих случаях ссылка при сравнении, их можно так сравнивать?
15 Reset
 
13.11.12
13:52
(14) Я бы сказал их Нужно так сравнивать :)
16 fleur
 
13.11.12
13:52
так как отбираю по владельцу в РС Штрихкоды, то можно было РезХар и по-старому оставить
17 Reset
 
13.11.12
13:53
(16) Нельзя, ты будешь сравнивать РезХар произвольного владельца с характеристикой конкретного
18 Шапокляк
 
13.11.12
13:53
(0) Вы нашли по наименованию характеристику не той номенклатуры (не РезНом). Поэтому в дальнейшем вы в регистре штрихкодов не находите запись с этой характеристикой
19 Reset
 
13.11.12
13:54
Твоя шляпка и шляпка твоей подруги - это разные шляпки, несмотря на то что одинаковые
20 НЕА123
 
13.11.12
13:57
(19)
возможен все-таки случай, когда ее шляпка - это шляпка подруги.
21 fleur
 
13.11.12
13:57
Я исправила владельца, тем не менее не видит, что они одинаковые(характеристики)
22 Reset
 
13.11.12
13:58
(20) Это если владелец имеет свойство периодичности
23 fleur
 
13.11.12
14:00
На некоторых элементах номенклатуры срабатывает это сравнение
24 Reset
 
13.11.12
14:01
Если нужно найти ш-к для конкретной х-ки, то логично сразу искать с ней, включив ее в отбор
25 Шапокляк
 
13.11.12
14:03
И при поиске характеристики делать так, чтобы она принадлежала найденной ранее номенклатуре
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший