Имя: Пароль:
1C
1С v8
УТ 10.3 Штрихкод в ТЧ Инвентаризация Товаров на складе
0 VODKA
 
08.06.13
19:17
Подскажите пожалуйста как сделать.
Создала функцию
Функция ПолучитьШтрихКод(Номенклатура, ХарактеристикаНоменклатуры)
   //Если        ТипЗнч(Номенклатура) = Тип("СправочникСсылка.Номенклатура") И ТипЗнч(ХарактеристикаНоменклатуры) = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда
   Запрос2 = Новый Запрос;
   Запрос2.УстановитьПараметр("Номенклатура",Номенклатура);
   Запрос2.УстановитьПараметр("Характеристика", ХарактеристикаНоменклатуры);
   
   Запрос2.Текст =
   "ВЫБРАТЬ
   |    Штрихкоды.Владелец.Ссылка,
   |    Штрихкоды.ХарактеристикаНоменклатуры.Ссылка,
   |    Штрихкоды.Штрихкод
   |ИЗ
   |    РегистрСведений.Штрихкоды КАК Штрихкоды
   |ГДЕ
   |    Штрихкоды.Владелец.Ссылка = &Номенклатура
   |    И Штрихкоды.ХарактеристикаНоменклатуры.Ссылка = &Характеристика";
   Рез = Запрос2.Выполнить().Выбрать();
   Рез.Следующий();
   
   Штрих= Рез.Штрихкод;
       
КонецФункции


Вызываю ее в Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
   таким образом:
ДанныеСтроки.Штрихкод =ПолучитьШтрихКод(ДанныеСтроки.Номенклатура, ДанныеСтроки.ХарактеристикаНоменклатуры);



НО что-то все работает не как ожидалось...не те штрихкоды документе( некоторые повторяются много раз,логику не могу уловить) и сам он виснет
1 Wobland
 
08.06.13
19:25
закусывать надо. и позволять функции заниматься её делом - возвращать чего-нибудь
2 Wobland
 
08.06.13
19:26
и .Ссылку долой
3 VODKA
 
08.06.13
19:27
Функция ПолучитьШтрихКод(Номенклатура, ХарактеристикаНоменклатуры)
   //Если         ТипЗнч(Номенклатура) = Тип("СправочникСсылка.Номенклатура") И ТипЗнч(ХарактеристикаНоменклатуры) = Тип("СправочникСсылка.ХарактеристикиНоменклатуры") Тогда

   Запрос2 = Новый Запрос;
   Запрос2.УстановитьПараметр("Номенклатура",Номенклатура);
   Запрос2.УстановитьПараметр("Характеристика", ХарактеристикаНоменклатуры);
   
   Запрос2.Текст =
   "ВЫБРАТЬ
   |    Штрихкоды.Владелец.Ссылка,
   |    Штрихкоды.ХарактеристикаНоменклатуры.Ссылка,
   |    Штрихкоды.Штрихкод
   |ИЗ
   |    РегистрСведений.Штрихкоды КАК Штрихкоды
   |ГДЕ
   |    Штрихкоды.Владелец.Ссылка = &Номенклатура
   |    И Штрихкоды.ХарактеристикаНоменклатуры.Ссылка = &Характеристика";
   Рез = Запрос2.Выполнить().Выбрать();
   Рез.Следующий();
   
   Штрих= Рез.Штрихкод;
Возврат Штрих;
       
КонецФункции
4 Wobland
 
08.06.13
19:27
(3) а если следующий не настанет?
5 Wobland
 
08.06.13
19:27
а зачем в селекте три поля?
6 VODKA
 
08.06.13
19:29
Ну если там будут лишнее поля что селект работать не  будет чтоль?....да вот это не предусмотрела....вот он и зацикливается у меня..
7 VODKA
 
08.06.13
19:30
не знаю как быть с этим следующим...
8 Wobland
 
08.06.13
19:30
(6) добавь левое соединение с остатками
9 Wobland
 
08.06.13
19:31
(7) думай, думай
10 VODKA
 
08.06.13
19:32
а без этого нельзя? я сначала хотела сделать по аналогии с артикулом....через общ модуль...но чтото как то тоже не вышло..по тем же причинам..
11 Wobland
 
08.06.13
19:33
(10) без думать в этой профессии вообще никак. хотя, некоторые умудряются
12 VODKA
 
08.06.13
19:34
я и не в этой профессии
13 Wobland
 
08.06.13
19:34
(12) тогда не трожь
14 VODKA
 
08.06.13
19:35
спасибо, Вобладн
15 Wobland
 
08.06.13
19:35
(14) авек, как грится, плезир
16 VODKA
 
08.06.13
21:24
ап
Независимо от того, куда вы едете — это в гору и против ветра!