Имя: Пароль:
1C
1С v8
Как определить пустая выборка или нет?
0 Boudybuilder
 
02.10.12
22:18
Отбор = Новый Структура("Наименование", );
   Отбор.Вставить("Наименование",Текст);
   ВыборкаСерий = Справочники.СерииНоменклатуры.Выбрать(,,Отбор);
   Если ВыборкаСерий. Тогда



Как мне определить есть чтото в выбореке или нет, чтобы поставить условие?
1 Feanorko
 
02.10.12
22:19
Запросом не судьба?
2 ДенисЧ
 
02.10.12
22:19
Выборка.КОличество() ?
Так навскидку
3 DrShad
 
02.10.12
22:19
Количество()
4 ОбычныйЧеловек
 
02.10.12
22:19
Если ВыборкаСерий.Следующий() Тогда
5 DrShad
 
02.10.12
22:20
Следующий()
6 Александр_
Тверь
 
02.10.12
22:20
а то что чувак по наименованию какие-то серии ищет никого не смущает?
7 Boudybuilder
 
02.10.12
22:21
Что быстрее сработает запрос или выборка?
8 ОбычныйЧеловек
 
02.10.12
22:21
(6) художник так видит...
9 DrShad
 
02.10.12
22:22
(6) поверь - ТС уже ничем и никого не смущает :)
10 Feanorko
 
02.10.12
22:22
(6) структуру создает тоже не оптимально :)
11 Александр_
Тверь
 
02.10.12
22:22
(7) а как ты думаешь, платформа как данные получает?
12 Feanorko
 
02.10.12
22:23
(7) не принципиально в данном случае
13 DrShad
 
02.10.12
22:23
(11) он не думает, причем никогда
14 H A D G E H O G s
 
02.10.12
22:25
Запрос всегда быстрее выборки.
15 H A D G E H O G s
 
02.10.12
22:26
Объект СправочникВыборка необходимо выбросить из платформы.
К херам.
16 Александр_
Тверь
 
02.10.12
22:26
(14) это если не рассматривать файловый вариант.
А вот на файловом надо попробовать. Реализация может отличаться.
17 DrShad
 
02.10.12
22:26
(14) выборка тот же запрос
18 Boudybuilder
 
02.10.12
22:27
(14) Спасибо! Переделаю нафиг!
19 H A D G E H O G s
 
02.10.12
22:27
(16) Я никогда не рассматриваю файловые варианты.
20 Александр_
Тверь
 
02.10.12
22:27
(18) знаешь, судя по (0) тебе много чего там надо переделать.
Искать серии по наименованиям не самый удачный ход.
21 H A D G E H O G s
 
02.10.12
22:28
(17) Нет, взрощенный семеркой, совсем не тот же.
22 Александр_
Тверь
 
02.10.12
22:28
(19) а 1С предприятие, знаешь ли, и в файловом работает тоже :) причем очень много людей работают с 1С именно в файловом режиме. А как у ТС - не известно.
23 GANR
 
02.10.12
22:29
(15) Ну как это? Они дают возможность программисту просмотреть контекст выборки через точку нажав "Ctrl + Пробел".
24 Feanorko
 
02.10.12
22:29
(21) жж0шь :)
25 DrShad
 
02.10.12
22:31
(21) ну расскажи нам как отрабатывает метод Выбрать()
26 GANR
 
02.10.12
22:31
(0)1С рекомендует делать так

Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
// код
КонецеЕсли;
27 H A D G E H O G s
 
02.10.12
22:33
(22) Мне фиолетово, че там будет на файловой, почти уверен, что примерно одинаковые результаты; я за масштабирование, ибо на sql на можной табличке результаты будут разные на порядок, ну если только ТС чето не перезаписывает.
28 H A D G E H O G s
 
02.10.12
22:37
(25)
ВЫБРАТЬ ПЕРВЫЕ 25
   Номенклатура.*
   ИЗ
   Справочник.Номенклатура КАК Номенклатура
ГДЕ
   Номенклатура.Ссылка > &ПредыдущаяПоследняяСсылка

УПОРЯДОЧИТЬ ПО
   Номенклатура.Ссылка
29 H A D G E H O G s
 
02.10.12
22:37
И это все в цикле херачим.
30 H A D G E H O G s
 
02.10.12
22:37
И Номенклатура.*
31 DrShad
 
02.10.12
22:41
(28) ну вот, только ты еще забыл отбор
32 H A D G E H O G s
 
02.10.12
22:42
(31) Ну я тебе про механизм работы писал.
33 DrShad
 
02.10.12
22:43
(32) ну так запрос ведь
34 Vladal
 
02.10.12
22:44
(29) Запрос в цикле?
Рыбу ножом???
35 H A D G E H O G s
 
02.10.12
22:45
Да, да, запрос.
Ты победил.
36 DrShad
 
02.10.12
22:54
:)
37 Boudybuilder
 
02.10.12
23:41
Сделал запросом . Все работает прекрасно.
Находит серию если такова уже есть. Открывает модально форму , выбираю полюбившуюся номенклатуру и подставляю в док.  Номенклатуру подставляет ок, но СериюНоменклатуры оставляет пустым... Почему?


Это в доке :





Процедура СерияНоменклатурыОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    СерииНоменклатуры.Владелец,
                  |    СерииНоменклатуры.Ссылка
                  |ИЗ
                  |    Справочник.СерииНоменклатуры КАК СерииНоменклатуры
                  |ГДЕ
                  |    СерииНоменклатуры.Наименование = &Наименование
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    СерииНоменклатуры.Владелец";
   Запрос.УстановитьПараметр("Наименование",Текст);
   Результат = Запрос.Выполнить();
   Если НЕ Результат.Пустой() Тогда
       СтандартнаяОбработка = Ложь;
       НайденыеСерии = Результат.Выбрать();
       Форма = ЭтотОбъект.ПолучитьФорму("НайденыСерии");
       Форма.Заголовок = "Подбор номенклатуры в документ № "+ ЭтотОбъект.Номер;
       Пока НайденыеСерии.Следующий() Цикл
           НовСтр = Форма.Номенклатура.Добавить();
           НовСтр.Номенклатура = НайденыеСерии.Владелец;
           НовСтр.Серия = НайденыеСерии.Ссылка;
       КонецЦикла;
       Форма.Объект = ЭтотОбъект;
       
       
       
       Форма.ОткрытьМодально();
       
       
       
   КонецЕсли;
   
КонецПроцедуры











А это в форме подбора :






Перем Объект Экспорт;

Процедура НоменклатураВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
   
   СтандартнаяОбработка = Ложь;
   Объект.Номенклатура = ВыбраннаяСтрока.Номенклатура;
   Объект.СерияНоменклатуры = ВыбраннаяСтрока.Серия;
   ЭтаФорма.Закрыть();
   
КонецПроцедуры
38 ChAlex
 
02.10.12
23:46
(37)  почитали бы как организовывать выбор(подбор) в литературе и все станет на свои метса
39 Boudybuilder
 
02.10.12
23:51
(38) Почитаем , но сейчас времени - 0
40 pumbaEO
 
02.10.12
23:59
(28) а где РАЗРЕШЕННЫЕ ?
41 H A D G E H O G s
 
03.10.12
00:00
(40) Мне все можно.
42 Boudybuilder
 
03.10.12
00:15
(37) И все же... Что с этим?
43 Boudybuilder
 
03.10.12
00:21
СтандартнаяОбработка = Ложь;
Вот в чем дело!" )))