Имя: Пароль:
1C
1С v8
Поиск номенклатуры по штрихкоду.
0 rereresega
 
28.09.15
15:57
Здравствуйте, не могу понять в чем ошибка, есть простенькая функция

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

При первом запросе функция возвращает Неопределенно, для штрихкода, который есть в базе, при последующих запросах функция отрабатывает правильно.
1 rereresega
 
28.09.15
15:59
1с 8.3, конфигурация Управление аптечной сетью.
2 Nuobu
 
28.09.15
16:01
(0) Отладчик что про ШтрихКод говорит? Заполнен?
3 Buster007
 
28.09.15
16:02
первый раз штрихкод не заполнен.
4 Buster007
 
28.09.15
16:02
+(3) была когда-то такая же проблема. Как решал уже не помню, но по-моему там что-то с драйвером сканера не так было.
5 Nuobu
 
28.09.15
16:03
(3) Я тоже подозреваю, что штрихкод из ССЫЛКИ вытаскивется, а не из объекта.
6 Mort
 
28.09.15
16:03
Функция с директивой на сервере почти всегда г/код
7 Сильф
 
28.09.15
16:04
Неплохо было бы отладчиком проверить, что подаётся в качестве параметра в эту функцию, может там пустое значение.
8 Dmitriy_76
 
28.09.15
16:13
(6) в модуле формы ПриСозданииНаСервере() тоже г\к ?
9 rereresega
 
28.09.15
16:18
(2)(3)(5)(7) Проверил отладчиком, в функцию передается правильное заполненное значение, в результате и правильный возврат из функции. Скорее всего проблема со сканером штрихкода.
10 rereresega
 
28.09.15
16:20
(8) Событие ПриСозданииНаСервере() я не обрабатываю, если понадобится это событие, постараюсь не подвести вас.
11 Dmitriy_76
 
28.09.15
16:22
(10) вопрос в (8) был к (6)
12 rereresega
 
28.09.15
16:26
(11) Извините за мою невнимательность, не обратил внимание на ники, показалось, что от одного человека.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший