Имя: Пароль:
1C
1С v8
Регистр сведений СрезПоследних()
0 Metalik
 
11.03.13
17:33
Добрый день! Знаю что тема заезженная, но никак не могу справиться с проблемой получения данных из регистра.

Итак, существует регистр сведений ЦеныУслуг с двумя измерениями, соответственно пытаюсь вытянуть данные следующими способами:

1:

Отбор = Новый Структура("Услуга, КлассАвто", ВыборкаУслуг.Наименование, КлассАвто);

ЗначРес = РегистрыСведений.ЦеныУслуг.СрезПоследних(ТекущаяДата(), Отбор);

РЕЗУЛЬТАТ: ЗначРес.Количество() = 0

-------------------------------------
2:

Отбор = Новый Структура("Услуга, КлассАвто", ВыборкаУслуг.Наименование, КлассАвто);

ЗначРес = РегистрыСведений.ЦеныУслуг.ПолучитьПоследнее(ТекущаяДата(), Отбор);

РЕЗУЛЬТАТ: ЗначРес содержит нулевые значения

-------------------------------------
3:

Запрос = Новый Запрос;
Запрос.Текст =
   "ВЫБРАТЬ
   |    ЦеныУслугСрезПоследних.Цена,
   |    ЦеныУслугСрезПоследних.Цена1,
   |    ЦеныУслугСрезПоследних.Цена2,
   |    ЦеныУслугСрезПоследних.Цена3,
   |    ЦеныУслугСрезПоследних.Цена4
   |ИЗ
   |    РегистрСведений.ЦеныУслуг.СрезПоследних(&Дата, ) КАК ЦеныУслугСрезПоследних
   |ГДЕ
   |    ЦеныУслугСрезПоследних.Услуга = &Услуга
   |    И ЦеныУслугСрезПоследних.КлассАвто = &КлассАвто";

Запрос.УстановитьПараметр("Дата", ТекущаяДата());
Запрос.УстановитьПараметр("КлассАвто", КлассАвто);
Запрос.УстановитьПараметр("Услуга", ВыборкаУслуг.Наименование);

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

РЕЗУЛЬТАТ: Выборка.Количество() = 0

-----------------------------------
Данные проверяются по конкретной записи, в случае если данные выводить в запросе (3), но без условий "Услуга" и "КлассАвто" соответствующая строчка с записью имеется.

Если можно, объясните, пожалуйста, "где собака зарыта" по каждому варианту.
1 palpetrovich
 
11.03.13
17:35
Услуга - точно Наименование?
2 fisher
 
11.03.13
17:37
Сравни типы ВыборкаУслуг.Наименование и измерения "Услуга"
3 Волшебник
 
11.03.13
17:37
попробуй КонецДня(ТекущаяДата())
4 hhhh
 
11.03.13
17:38
(1) это вирус. Все сегодня фигачат в регистр наименования, а некоторые даже комментарии бесконечной длины.
5 fisher
 
11.03.13
17:38
(3) "в случае если данные выводить в запросе (3), но без условий "Услуга" и "КлассАвто" соответствующая строчка с записью имеется"
6 Metalik
 
11.03.13
17:39
Да, точно - ссылка на справочник.
7 pessok
 
11.03.13
17:41
дежавю...
8 Metalik
 
11.03.13
17:41
КонецДня(ТекущаяДата()) не прокатил(((
9 Metalik
 
11.03.13
17:42
Регистр переодический в пределах секунды
10 hhhh
 
11.03.13
17:43
аоткуда взялось ВыборкаУслуг.Наименование? Пиши ВыборкаУслуг.Ссылка
11 Metalik
 
11.03.13
17:43
"ВыборкаУслуг.Наименование" - из предыдущего запроса, типы данных соответствуют
12 Metalik
 
11.03.13
17:44
ЗапросУслуг.Текст =
       "ВЫБРАТЬ
       |    Услуги.Описание,
       |    Услуги.Ссылка КАК Наименование
       |ИЗ
       |    Справочник.Услуги КАК Услуги
       |ГДЕ
       |    Услуги.ЭтоГруппа = ЛОЖЬ
       |    И Услуги.Родитель = &Группа
       |    И Услуги.Подразделение = &Подразделение";

   ЗапросУслуг.УстановитьПараметр("Группа", Группа);
   ЗапросУслуг.УстановитьПараметр("Подразделение", Подразделение);
13 palpetrovich
 
11.03.13
17:46
(12) путаник :)
а одним запросом  - не судьба?
14 palpetrovich
 
11.03.13
17:48
и еще, а кто этот РС делал? Что за Цена1, Цена2, Цена3...?
15 hhhh
 
11.03.13
17:48
(12) и Выборка.Следующий() есть?
16 Жан Пердежон
 
11.03.13
17:49
в (6) ответ, к чему дальше мусолить?
17 palpetrovich
 
11.03.13
17:50
(16) ты не въехал :)
18 Metalik
 
11.03.13
17:51
одним нет, нужна всего одна запись а не массив, Цена1, Цена2 и тд - статус клиента Выборка.Следующий естественно есть в (6) ответ про соответствие типов ВыборкаУслуг.Наименование
19 Metalik
 
11.03.13
17:52
Проблема осталась - не могу вытащить из регистра сведений конкретную запись
20 hhhh
 
11.03.13
17:57
(19) а если не через задницу писать, а так?

 |ИЗ
   |    РегистрСведений.ЦеныУслуг.СрезПоследних(&Дата, Услуга = &Услуга
   |    И КлассАвто = &КлассАвто) КАК ЦеныУслугСрезПоследних
21 palpetrovich
 
11.03.13
17:59
так попробуй
"ВЫБРАТЬ
   |    ЦеныУслугСрезПоследних.Цена,
   |    ЦеныУслугСрезПоследних.Цена1,
   |    ЦеныУслугСрезПоследних.Цена2,
   |    ЦеныУслугСрезПоследних.Цена3,
   |    ЦеныУслугСрезПоследних.Цена4
   |ИЗ
   |    РегистрСведений.ЦеныУслуг.СрезПоследних(&Дата, Услуга В ИЕРАРХИИ(&ГруппаУслуг) И КлассАвто = &КлассАвто) КАК ЦеныУслугСрезПоследних
   | ГДЕ
   |    ЦеныУслугСрезПоследних.Услуга.Подразделение = &Подразделение
22 Sammo
 
11.03.13
18:02
Одним запросом - внутреннее соединеие среза последних с отбором по классы авто и справочника услуг.
23 hhhh
 
11.03.13
18:03
КлассАвто надо проверить
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс