Имя: Пароль:
1C
1С v8
Можно ли получить набор записей по регистру сведений с отбором по ресурсу
0 bahtik
 
24.09.13
13:37
Здравствуйте! Простой вопрос: можно ли получить набор записей по регистру сведений с отбором по ресурсу без использования запроса?
1 Euguln
 
24.09.13
13:37
Можно, но смысл?
2 bahtik
 
24.09.13
13:44
Ну и как? В моем случае регистр "ДисконтныеКартыКлиентов" с одним измерением "Клиент" и ресурсом "ДисконтнаяКарта". Вот мне в документе "Выдача дисконтной карты" нужно проверить, не принадлежит ли выдаваемая карта кому-то уже. Можно, конечно, сделать запрос, но мне показалось, что будет лучше сделать без него и тут я столкнулся с тем, что нет метода для отбора по ресурсу.
3 Defender aka LINN
 
24.09.13
13:45
(2) А набор записей, видимо, данные из БД получит чОрным колдунством, да?
Откуда вообще такая паническая боязнь запросов у людей, не понимаю...
4 Euguln
 
24.09.13
13:47
(2) Когда кажется - креститься надо.
Интересно, а у клиента может быть две дисконтные карты?
Не лучше сделать ресурс измерением.
5 bahtik
 
24.09.13
13:49
(3) Причем здесь боязнь? Просто так будет более компактный и читабельный код.
6 bahtik
 
24.09.13
13:50
(4) Не лучше. Не может быть двух дисконтных карт. И если сделать ресурс измерением, то нужно будет делать еще и проверку на то, не принадлежит ли этому клиенту другая карта.
7 bahtik
 
24.09.13
13:52
(3) Если нет такого метода, естественно я СМЕЛО, ничего не БОЯСЬ, сделаю маленький и нестрашный запросик и все. Но мне просто стало интересно, можно ли решить этот вопрос без запроса.
8 bahtik
 
24.09.13
13:53
(1) Так как же?
9 bahtik
 
24.09.13
13:53
Или все таки нельзя?
10 Euguln
 
24.09.13
13:55
(9) см. 1
11 bahtik
 
24.09.13
13:57
(10) Как?
12 IVT_2009
 
24.09.13
13:58
<code>
Функция ПолучитьЦену(РЦ) Экспорт
    Отбор = Новый Структура("Товар", РЦ);
    ХХ = РегистрыСведений.ЦеныТоваров.ПолучитьПоследнее(ТекущаяДата(),Отбор);
    мм = 0;
    Для Каждого Нс из ХХ Цикл
        ММ = Нс.Значение;
    КонецЦикла;
    Возврат мм;
КонецФункции
</code>
13 IVT_2009
 
24.09.13
14:00
это конечно кака-код времен изучения мною 1с, но он работает. Запросом все же было бы проще.
14 bahtik
 
24.09.13
14:01
(12) Не подходит. Отбор только по измерениям. Вот текст из СП:

<Отбор> (необязательный)
Тип: Структура.
Структура, содержащая отбор по измерениям регистра.
15 Euguln
 
24.09.13
14:01
НаборЗаписей = РегистрыСведений.ДисконтныеКартыКлиентов.СоздатьНаборЗаписей();
НаборЗаписей.Прочитать();
Для Каждого ЗаписьНабора Из НаборЗаписей Цикл
Если ЗаписьНабора.ДисконтнаяКарта = ПроверяемаяКарта Тогда
КонецЕсли;
КонецЦикла;
16 bahtik
 
24.09.13
14:03
(15) Ну и где здесь отбор? Вот это точно кака-код ))
17 bahtik
 
24.09.13
14:04
(13) Я хотел сделать так:

Отбор = Новый Структура("ДисконтраяКарта", ДисконтнаяКарта);
    ВыборкаЗаписей = РегистрыСведений.ДисконтныеКартыКлиентов.Выбрать(,,Отбор);

Но и тут в отборе могут использоваться только измерения и реквизиты. Ресурсов нет.
18 Euguln
 
24.09.13
14:04
(16) вот отбор:
Если ЗаписьНабора.ДисконтнаяКарта = ПроверяемаяКарта Тогда
КонецЕсли;
19 Euguln
 
24.09.13
14:05
(16) какой вопрос - такой ответ
20 bahtik
 
24.09.13
14:05
Уважаемый, это не отбор, а обход с проверкой. А это СОВСЕМ РАЗНЫЕ вещи.
21 bahtik
 
24.09.13
14:06
(19) Во-первых, я все таки понял, что нельзя, а во-вторых, займись лучше делом, чем тут сидеть и флудить в таком случае.
22 Euguln
 
24.09.13
14:06
(20) по сути - отбор. Только не на уровне платформы.
23 Euguln
 
24.09.13
14:06
(21) халасо, насяльника.
24 bahtik
 
24.09.13
14:06
Нет, это даже не по сути.
25 Defender aka LINN
 
24.09.13
14:06
(5) Вынести это в отдельную процедуру - одобрение Синода нужно?
26 bahtik
 
24.09.13
14:07
Короче, я так понял, отбор сделать нельзя...
27 bahtik
 
24.09.13
14:08
(25) Да дело не в том. Просто я решил понять, есть ли такой метод или нет.
28 bahtik
 
24.09.13
14:08
Т.к. сам я его не обнаружил.
29 timurhv
 
24.09.13
14:22
30 bahtik
 
24.09.13
14:42
(29) Спасибо! Вот это то, что меня интересовало:

"Для ресурсов индексы быть не могут в принципе, т.к. они не предназначены для отбора вообще и на основании их данных формируются таблицы итогов.

Но для решения конкретной задачи, быстрее запроса не придумаешь.

Да он будет работать медленно т.к. таблицы итогов задействоваться не будут, но для решения данной задачи придётся."