Имя: Пароль:
1C
1С v8
не срабатывает функция
0 AlexC111
 
01.08.12
16:33
Вот сама функция, находится в общем модуле.

Функция ПолучитьШтрихКод(Владелец, ЕдиницаИзмерения = Неопределено, ХарактеристикаНоменклатуры = Неопределено,
                        СерияНоменклатуры = Неопределено, Качество = Неопределено) Экспорт

   ПолученныйШтрихкод = Неопределено;
   Запрос = Новый Запрос;
   
   Если ТипЗнч(ЕдиницаИзмерения) = Тип ("Неопределено") Тогда
       ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.ПустаяСсылка();
   КонецЕсли;
   
   Если ТипЗнч(ХарактеристикаНоменклатуры) = Тип ("Неопределено") Тогда
       ХарактеристикаНоменклатуры = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка();
   КонецЕсли;
   Если ТипЗнч(СерияНоменклатуры) = Тип ("Неопределено") Тогда
       СерияНоменклатуры = Справочники.СерииНоменклатуры.ПустаяСсылка();
   КонецЕсли;
   Если ТипЗнч(Качество) = Тип ("Неопределено") Тогда
       Качество = Справочники.Качество.ПустаяСсылка();
   КонецЕсли;
   Запрос.УстановитьПараметр("Владелец", Владелец);
   Запрос.УстановитьПараметр("ЕдиницаИзмерения", ЕдиницаИзмерения);
   Запрос.УстановитьПараметр("ХарактеристикаНоменклатуры", ХарактеристикаНоменклатуры);
   Запрос.УстановитьПараметр("СерияНоменклатуры", СерияНоменклатуры);
   Запрос.УстановитьПараметр("Качество", Качество);
   Запрос.Текст = "
   |ВЫБРАТЬ //ПЕРВЫЕ 1
   |    РегШтрихкоды.ТипШтрихкода,
   |    РегШтрихкоды.Штрихкод,
   |    РегШтрихкоды.Код
   |    ИЗ РегистрСведений.Штрихкоды КАК РегШтрихкоды
   |
   |ГДЕ
   |    НЕ РегШтрихкоды.Штрихкод Есть NULL И
   |    РегШтрихкоды.Владелец = &Владелец И
   |    РегШтрихкоды.ЕдиницаИзмерения = &ЕдиницаИзмерения И
   |    РегШтрихкоды.ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры И
   |    РегШтрихкоды.СерияНоменклатуры = &СерияНоменклатуры И
   |    РегШтрихкоды.Качество = &Качество
   |";

   Выборка = Запрос.Выполнить().Выгрузить();
   
   Если Выборка.Количество() > 0 Тогда
       ПолученныйШтрихкод = Выборка[0];
   КонецЕсли;

   Возврат ПолученныйШтрихкод;

КонецФункции // ПолучитьШтрихКод()

А вот что я пытаюсь сделать:

   Процедура ДействияФормыПроверитьШтрихкод(Кнопка)

   Для Каждого ТекущаяСтрока Из ЭтотОбъект.Товары Цикл
   
   Владелец = ТекущаяСтрока.Номенклатура;
   ЕдиницаИзмерения = ТекущаяСтрока.ЕдиницаИзмерения;
   ШК = УправлениеРозничнойТорговлей.ПолучитьШтрихКод(Владелец,ЕдиницаИзмерения);
   Сообщить("шк = "+ТипЗнч(ШК)+" "+ШК);
   
   Для Каждого ТекущаяСтрока1 Из ШК цикл
   Сообщить("ТекущаяСтрокатипзнч= "+ТипЗнч(ШК));    
   сообщить(ТекущаяСтрока1.Штрихкод);    
   конеццикла;

   КонецЦикла;
   КонецПроцедуры

В итоге просто получаю "шк = Неопределено" всё!
Хотя штрих-код на заданные позиции есть. Не понимаю, в чём проблема? Почему не выводит(
1 Нуф-Нуф
 
01.08.12
16:36
а отладчки что говорит?
2 Reset
 
01.08.12
16:40
Что такое УправлениеРозничнойТорговлей?
3 Reset
 
01.08.12
16:40
Имя общего модуля?
4 mikecool
 
01.08.12
16:41
нет такого штрихкода, неверные параметры
5 Reset
 
01.08.12
16:43
+(3) Если да, то (4), т.к. функция хоть и кривенькая, но работоспособная
6 palpetrovich
 
01.08.12
16:43
Характеристики и Серия  заполнены? точно?

зы: недавно натнулся на подобную проблему, решалось так:
И (ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры = ЦенаРозничная.ХарактеристикаНоменклатуры или ЦенаРозничная.ХарактеристикаНоменклатуры=Значение(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка))
7 DrShad
 
01.08.12
16:43
какой адский пипец в (0)
8 rrunover
 
01.08.12
16:57
>ТипЗнч(ЕдиницаИзмерения) = Тип ("Неопределено")
Думать!

>НЕ РегШтрихкоды.Штрихкод Есть NULL
Думать!!

>ПолученныйШтрихкод = Выборка[0];
Думать!!!
9 rrunover
 
01.08.12
16:59
Да, и запрос переписать.
Ошибка? Это не ошибка, это системная функция.