Имя: Пароль:
1C
1С v8
Не выводит результат запроса
,
0 poet
 
29.08.12
16:47
Не пойму почему не работает - пробовал через Консоль отчетов - работает и дает нужный результат, правда условие отбора выставлял в поле отбора. А такой же запрос из Формы не выдает желаемый результат.
А в табло запросов выдает следующее "Выборка.Следующий    {(1)}: Поле объекта не виявлено (Следующий)    "


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

Запрос.УстановитьПараметр("Штрихкод", Строка(ПолеСканированиеШтрихкода));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
   ЭлементыФормы.ФИОСотрудника.Значение = Выборка.Наименование;
   Сообщить(Выборка.Наименование);
КонецЦикла;  
ЭлементыФормы.ФИОСотрудника.Значение = "";
КонецПроцедуры
1 salvator
 
29.08.12
16:52
СокрЛП(Строка(ПолеСканированиеШтрихкода)) попробуй
2 andrewks
 
29.08.12
16:56
ТипЗнч(Выборка) = ?
3 poet
 
29.08.12
16:57
не помогло в моем и в предложенном случае
ПолеСканированиеШтрихкода    "2927559000399"    Строка
ошибка та же
4 poet
 
29.08.12
16:58
(2) в табло пусто - не заполненно
5 andrewks
 
29.08.12
16:58
у тебя реквизита формы Выборка нет, часом?
6 poet
 
29.08.12
17:01
(5) нет
7 salvator
 
29.08.12
17:02
ФизическиеЛица.Штрихкод - строковой тип вообще?
8 andrewks
 
29.08.12
17:03
на (2) ответ будет?

Выборка = Запрос.Выполнить().Выбрать();
Сообщить("ТипЗнч = "+ТипЗнч(Выборка) );
Пока Выборка.Следующий() Цикл
9 poet
 
29.08.12
17:03
да - и имеет ту же длинну что и строка ввода на форме
только что поменял и там и там на число - результат тот же
10 Wobland
 
29.08.12
17:03
(0) в табло запросов скобки вставь
11 Wobland
 
29.08.12
17:03
(9) с одной н
12 andrewks
 
29.08.12
17:05
при чём здесь строка, когда "Поле объекта не виявлено (Следующий)  "  ?
13 poet
 
29.08.12
17:06
(8) ТипЗнч = Выборка с результата запроса
14 andrewks
 
29.08.12
17:06
почисть кэш
15 salvator
 
29.08.12
17:06
Запрос.УстановитьПараметр("Штрихкод", Строка(Элемент.Значение));
16 Wobland
 
29.08.12
17:06
(14) не взлетит
17 andrewks
 
29.08.12
17:07
млять, только щас перечитал сабж, и обратил внимание на

А в табло запросов выдает следующее "Выборка.Следующий

(10)  +1
18 poet
 
29.08.12
17:09
(17) ???
19 Wobland
 
29.08.12
17:09
кстати, что это - табло запросов?
20 Wobland
 
29.08.12
17:10
(18) читай (10) до просветления
21 andrewks
 
29.08.12
17:10
+(7)   каков тип и разорядность ФизическиеЛица.Штрихкод?
22 poet
 
29.08.12
17:12
(21)тип строка, длинна 13 символов
(20)а если я на темной стороне силы? вопчем смотрю в книгу...
23 Wobland
 
29.08.12
17:14
(22) цвет стороны твоей неважен, поле в метод преврати
24 Reset
 
29.08.12
17:15
Если табло запросов - это просто табло, то если он вставит скобки, лучше станет, но ненамного.
Т.к. это не просто функция, возвращающая статус, она еще и курсор по выборке двигает.
Хотя я не пробовал, что получится (в голову не приходило)
25 poet
 
29.08.12
17:18
ага пр преминении значения в табло надо было скобки поставить - вышло
Выборка.Следующий()    Ложь    Булево
26 poet
 
29.08.12
17:18
хм - я знаю что это значение есть - мне ж оно и надо... непонимать
27 Reset
 
29.08.12
17:19
А выборка.Количество() сколько?
28 Wobland
 
29.08.12
17:19
(26) которое из многих?
29 poet
 
29.08.12
17:19
(27) 1 позиция - уникальна
30 Reset
 
29.08.12
17:20
(29) Я тя спрашиваю, что говорит твоя замечательная табла запросов, если в ней посчитать (27)
31 Wobland
 
29.08.12
17:20
(29) случай общий рассматривай всегда, увидишь больше
32 Wobland
 
29.08.12
17:21
попробую ещё совет. примени себе ты (0)
33 poet
 
29.08.12
17:33
(31), (32) а можно немножко разжевать, я вас не понимаю мастер
34 Reset
 
29.08.12
17:37
+ к (7) и (21) может вообще ссылка. А в консоли он вбил через ввод по строке
35 Wobland
 
29.08.12
17:44
(33)Процедура ПолеСканированиеШтрихкодаПриИзменении(Элемент)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    ФизическиеЛица.Штрихкод,
|    ФизическиеЛица.ПометкаУдаления,
|    ФизическиеЛица.Наименование
|ИЗ
|    Справочник.ФизическиеЛица КАК ФизическиеЛица
|ГДЕ
|    ФизическиеЛица.Штрихкод = &Штрихкод";

Запрос.УстановитьПараметр("Штрихкод", Элемент.Значение); //?
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
   Сообщить(Выборка.Наименование);
КонецЦикла;  
КонецПроцедуры
36 Wobland
 
29.08.12
17:45
я бы даже сказал

"ВЫБРАТЬ
|    ФизическиеЛица.Наименование
|ИЗ
|    Справочник.ФизическиеЛица КАК ФизическиеЛица
|ГДЕ
|    ФизическиеЛица.Штрихкод = &Штрихкод";
37 poet
 
29.08.12
17:52
(36) Выборка.Следующий()    Ложь    Булево
те же яйца - оно находит значение и говорит: да оно есть и на этом сбрасывает цыкл, причем не выполняя даже условия после КонцаЦыкла
38 Wobland
 
29.08.12
17:53
(37) это мова такая - цыкл? что то хочешь от выборки? что ты к ней пристал?
39 poet
 
29.08.12
17:55
было б к чему придратся
40 poet
 
29.08.12
17:56
перекидывал 1 в 1 с (35) и подправлял как по (36)
41 Wobland
 
29.08.12
17:56
(39) глаз режет. читать так: что ты хочешь от выборки?
42 poet
 
29.08.12
17:58
хочу получить то единственное значение Наименование (к примеру: Пупкин Вась Вась), которое есть в справочнике ФизЛица в одном уникальном значении сопостовимо искомому штрихкоду
43 Wobland
 
29.08.12
18:00
(42) уверен в уникальности? (35) делал? что сообщалось?
44 Wobland
 
29.08.12
18:00
+(43) и не нужно тут говорить, что ты видел свои данные, и такой штрих там один
45 poet
 
29.08.12
18:05
папой клянусь блин
46 Reset
 
29.08.12
18:05
(45) Сообщалось "папой клянусь"?
47 Wobland
 
29.08.12
18:08
(45) а в общем случае?
48 hhhh
 
29.08.12
18:14
(45) встречный вопрос тебе: почему поиск слова Следующий на этой страничке не находит твоего слова? Ты его на украинской клавиатуре набирал, что ли?
49 RomikYar
 
29.08.12
18:26
Эту процедуру ты запускаеш на серевере или на клиенте
50 RomikYar
 
29.08.12
18:27
Или у тебя это кнопка?
51 RomikYar
 
29.08.12
18:31
&НаКлиенте
Процедура ПолеСканированиеШтрихкодаПриИзменении(Элемент)
    ТекНаим = ПолучитьФИзЛицо();
КонецПроцедуры
&НаСервере
Функция ПолучитьФИзЛицо()

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

Запрос.УстановитьПараметр("Штрихкод", Элемент.Значение); //?

Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Если Выборка.Количество()>0 Тогда
   Возврат Выборка.Наименование;
Иначе
   Возврат Неопределенно;
КонецЕсли;
 
КонецФункции
52 RomikYar
 
29.08.12
18:32
Попробуй так вот!
код выше
53 Wobland
 
29.08.12
18:36
(52) какое из восьмидесяти наименований вернётся?
54 RomikYar
 
29.08.12
18:46
Функция ПолучитьФИзЛицо()
   
   Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ФизическиеЛица.Штрихкод,
   |    ФизическиеЛица.ПометкаУдаления,
   |    ФизическиеЛица.Наименование
   |ИЗ
   |    Справочник.ФизическиеЛица КАК ФизическиеЛица
   |ГДЕ
   |    ФизическиеЛица.Штрихкод = &Штрихкод";
   
   Запрос.УстановитьПараметр("Штрихкод", ЭтаФорма.Значение); //?
   
   
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   Если Выборка.Количество()>0 Тогда
       Возврат Выборка.Наименование;
   Иначе
       Возврат Неопределено;
   КонецЕсли;
   
КонецФункции
Процедура КнопкаВыполнитьНажатие(Кнопка)
   ТекНаим = ПолучитьФИзЛицо();
   Сообщить(ТекНаим);
   // Вставить содержимое обработчика.
КонецПроцедуры

Вот это у меня сработало
55 RomikYar
 
29.08.12
18:47
Вернется то чего найдет
56 RomikYar
 
29.08.12
18:47
по штрихкоду
57 RomikYar
 
29.08.12
18:50
А вообще нужно смотреть откуда идет вызов этой процедуры
58 Wobland
 
29.08.12
18:53
(55) это понятно. какое из?
59 RomikYar
 
29.08.12
18:59
Первое, второе в обработке делал
60 Wobland
 
29.08.12
19:03
(59) не доходит?
пример:
Наименование  ШК
 Сидоров     20
 Козлов      20
вернётся любой. тебе это нужно?
61 Reset
 
29.08.12
19:09
Я совсем запутался. RomikYar - клон poet'a?
62 catena
 
29.08.12
20:04
(37)
"Выборка.Следующий()    Ложь    Булево
те же яйца - оно находит значение и говорит: да оно есть и на этом сбрасывает цыкл, причем не выполняя даже условия после КонцаЦыкла"

Ты в табло смотришь Выборка.Следующий()? А ниче, что это сдвигает выборку вместе с кодом, что при одной полученной записи как раз и не дает войти в цикл?
63 Reset
 
29.08.12
23:16
(62) Я пытался отговорить :) (24) Но ему похоже все равно, плывет на своей волне
64 RomikYar
 
30.08.12
10:23
(59) не доходит?
пример:
Наименование  ШК
 Сидоров     20
 Козлов      20
вернётся любой. тебе это нужно?

Если включить в цикл то вернет последнего!!!!
65 RomikYar
 
30.08.12
10:23
Я совсем запутался. RomikYar - клон poet'a?

Сам ты клон!
66 andrewks
 
30.08.12
10:24
(65) а чего тогда сам с собой разговариваешь?
67 RomikYar
 
30.08.12
10:24
Предложи другое!
68 andrewks
 
30.08.12
10:25
ну, для разнообразия, можно попробовать пообщаться с другими участниками форума
69 Wobland
 
30.08.12
17:04
(64) да хоть завключайся. порядок записей в результате запросе хаотичен
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший