Имя: Пароль:
1C
1C 7.7
v7: ВыбратьЭлементыПоРеквизиту +
,
0 boris
 
07.11.11
06:53
Помогите пжл не могу сделать выборку элементов справочника по двумя значению реквизита ВыбратьЭлементыПоРеквизиту


ИмяРеквизита =("Состояния") и (Пол));
Значение = ((ФЛ) и (Муж));
СпрСотр.ВыбратьЭлементыПоРеквизиту(ИмяРеквизита,Значение);

или каким образом можно еще
1 boris
 
07.11.11
06:55
Вопрос: Выборка из справочника, по реквизитам...
2 skunk
 
07.11.11
06:57
запрос
3 ДенисЧ
 
07.11.11
06:57
Запрос напиши
4 boris
 
07.11.11
06:59
Запроса нету

СпрСотр = СоздатьОбъект("Справочник.Сотрудники")
ИмяРеквизита ="Состояния";
Значение = ФЛ;
СпрСотр.ВыбратьЭлементыПоРеквизиту(ИмяРеквизита,Значение);

Так нормально Работает
5 boris
 
07.11.11
07:00
а мне надо "2 критерии" как можно сделать пмг пжл
6 boris
 
07.11.11
07:02
Ауу
7 ДенисЧ
 
07.11.11
07:04
напиши. запрос.
8 Гефест
 
07.11.11
07:05
(7) Запроса нету у него
9 chelentano
 
07.11.11
07:05
(0) выбрать по одному реквизиту, в цикле сравнивать значение по второму
10 boris
 
07.11.11
07:07
(9) это как
скинь пжл пример
11 skunk
 
07.11.11
07:08
это че ... развод?
12 boris
 
07.11.11
07:08
а понял попробую
13 orefkov
 
07.11.11
07:08
Продам запрос. Дорого.
14 Попытка1С
 
07.11.11
07:08
(10) Ты запрос принципиально не хочешь попробовать написать? То что в (9) это быдлокод чистой воды будет.
15 Любопытная
 
07.11.11
07:10
(14) Да не умеет он, как вы не понимаете
16 orefkov
 
07.11.11
07:11
(14)
в 7ке, ежели брать ее штатный запрос, то скорее всего быдлокод из (9) быстрее отработает, чем запрос.
17 boris
 
07.11.11
07:12
(9)
СпрСотр = СоздатьОбъект("Справочник.Сотрудники")
ИмяРеквизита ="Состояния";
Значение = ФЛ;
СпрСотр.ВыбратьЭлементыПоРеквизиту(ИмяРеквизита,Значение);

Пока (СпрСотр.ПолучитьЭлемент()=1) и (СпрСотр.Пол=Муж)  Цикл
  ФИО=СокрЛП(СпрСотр.Фамилия)+" "+СокрЛП(СпрСотр.Имя)+" "+СокрЛП(СпрСотр.Отчество);
КонецЦикла;
КонецПРоцедуры

Эх елки  не получается
18 Попытка1С
 
07.11.11
07:14
(16) Ну советовать автору прямой запрос будет издевательством судя по всему...
19 chelentano
 
07.11.11
07:14
(14) почему быдлокод? во-первых, человек не хочет использовать запрос, во-вторых, скорее всего, отработает быстрее, чем запрос
20 orefkov
 
07.11.11
07:14
Полоску купил, а кодить не купил.
21 chelentano
 
07.11.11
07:15
(20) это в чью сторону выпад?
22 boris
 
07.11.11
07:16
|Клиент=Справочник.Сотрудники.Код;
   |ФИО=Справочник.Сотрудники.ФИО;
   |Пол=Справочник.Сотрудники.Пол;
   |Состояния=Справочник.Сотрудники.Состояния;
   |Условие ((Состояния=ФЛ)и(Пол=Муж) );
   |Группировка ФИО
   |"
   ;

   Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
       Возврат;
   КонецЕсли;

это запрос мне не неудобен
23 chelentano
 
07.11.11
07:17
(17) я добрый сегодня
СпрСотр = СоздатьОбъект("Справочник.Сотрудники")
ИмяРеквизита ="Состояния";
Значение = ФЛ;
СпрСотр.ВыбратьЭлементыПоРеквизиту(ИмяРеквизита,Значение);

Пока (СпрСотр.ПолучитьЭлемент()=1)  Цикл
 Если (СпрСотр.Пол=Муж) Тогда
  ФИО=СокрЛП(СпрСотр.Фамилия)+" "+СокрЛП(СпрСотр.Имя)+" "+СокрЛП(СпрСотр.Отчество);
 КонецЕсли;
КонецЦикла;
24 boris
 
07.11.11
07:17
не могу найти других Альтернатив
25 boris
 
07.11.11
07:18
Ух ты спасибо
26 orefkov
 
07.11.11
07:18
(21)
О, извините. Действительно, v7, одни длиннополосники собрались.
(20) для (17)
27 chelentano
 
07.11.11
07:22
(26) у меня без картинок, полосок не видно, так что не заморачиваюсь :))
28 Мимохожий Однако
 
07.11.11
07:28
(22) в чём неудобство запроса?
29 Chai Nic
 
07.11.11
07:34
(28) Штатные запросы лучше не использовать, особенно на sql-версии, ибо их механизм выполнения в большинстве случаев примерно такой:
1. Скачиваем таблицу (или декартово произведение указанных таблиц, что еще круче) в каталог временных файлов
2. Накладываем нужные фильтры
3. Производим сортировки

Очень часто перебором в цикле с использованием, хотя бы частичным, отборов-индексов получается намного быстрее!
30 Мимохожий Однако
 
07.11.11
07:39
(29)Спасибо. Мне любопытен всё же ответ от автора ветки.
31 ДенисЧ
 
07.11.11
07:51
(29) отсыпь...
32 filh
 
07.11.11
08:08
(29) закусывай что ле с утра...
Программист всегда исправляет последнюю ошибку.