Имя: Пароль:
1C
1С v8
Выборка по регистру сведений
0 AnisaL
 
18.03.13
15:32
Добрый день! Выборка по регистру сведений:

   Отбор = Новый Структура;
   Отбор.Вставить("Должность", Элемент.Значение);
   Выборка = РегистрыСведений.ДолжностиИИхРуководители.СрезПоследних(ТекущаяДата(),Отбор);
   
   //Если Выборка.Количество() > 0 Тогда
       Для каждого Строка из Выборка Цикл
ВЫдает ошибку
1 AnisaL
 
18.03.13
15:33
{Справочник.ФизическиеЛица.Форма.ФормаЭлемента(817)}: Итератор для значения не определен
       Для каждого Строка из Выборка Цикл
2 AnisaL
 
18.03.13
15:33
Так как тогда обойти выборку?
3 mikecool
 
18.03.13
15:33
Пока Выборка.Следующий()
4 mikecool
 
18.03.13
15:34
купи у меня СП, отдам недорого
5 salvator
 
18.03.13
15:34
В Выборка что находится в отладчике?
6 НафНаф
 
18.03.13
15:34
(3)(4) ??

Возвращаемое значение:

Тип: ТаблицаЗначений.
7 salvator
 
18.03.13
15:35
(4) Почитай в своем СП про срез последних.
8 AnisaL
 
18.03.13
15:35
(4) Не поняла ??
9 mikecool
 
18.03.13
15:35
(7) бгг
10 mikecool
 
18.03.13
15:36
(8) не, тогда дорого продам )))
11 НафНаф
 
18.03.13
15:36
подозреваю, что Выборка это другой реквизит
12 mikecool
 
18.03.13
15:37
(11) +1
а при пустой выборке ТЗ будет или неопределено?
13 AnisaL
 
18.03.13
15:38
{Справочник.ФизическиеЛица.Форма.ФормаЭлемента(818)}: Значение не является значением объектного типа (Следующий)
       Пока Выборка.Следующий() Цикл
14 Reset
 
18.03.13
15:38
(0) ДолжностиИИхРуководители - не периодический
Угадал?
15 mikecool
 
18.03.13
15:39
(13) Значит Выборка = Неопределено
16 AnisaL
 
18.03.13
15:39
(14) да, непериодический
17 AnisaL
 
18.03.13
15:39
(15) точно
18 Reset
 
18.03.13
15:40
+ к(14) Используйте Получить() вместо СрезПоследних
19 Reset
 
18.03.13
15:42
или запрос
20 AnisaL
 
18.03.13
15:48
(18) у регистра три измерения
21 mikecool
 
18.03.13
15:50
(20) учись писать запросы
22 Reset
 
18.03.13
15:51
(20) Если три, а отбор нужен по 1 или 2 - тогда только запрос
23 Reset
 
18.03.13
15:52
не ну можно через набор записей, но имхо это изврат.
Привыкай к запросам :)
24 AnisaL
 
18.03.13
15:57
(23) Я к ним и так привыкла) хотела через выборку сделать
25 GANR
 
18.03.13
16:03
(24) Только ЗАПРОС! Выкинуть надо из платформы все эти функции по выборке посредством менеджера  (СправочникВыборка, ДокументВыборка и Срез...)

   Запрос = Новый Запрос;
   Запрос.Параметры.Вставить("ДатаСреза", ТекущаяДата());
   Запрос.Параметры.Вставить("Должность", Должность);
   Запрос.Текст =
   "ВЫБРАТЬ
   |    *
   |ИЗ
   |    РегистрСведений.ДолжностиИИхРуководители.СрезПоследних(
   |            &ДатаСреза,
   |            Должность = &Должность) КАК ДолжностиИИхРуководители" ;
   
   Результат = Запрос.Выполнить();
   Выборка = Результат.Выбрать();
   
   Пока Выборка.Следующий() Цикл
       // код обработки
       // с отладчиком
   КонецЦикла;
26 Reset
 
18.03.13
16:11
(25) Если использовать запрос, у непериодического регистра появится СрезПоследних? :)
27 GANR
 
18.03.13
16:14
(26) Аааа... Вот оно что.
28 AnisaL
 
20.03.13
09:35
(27) Придется сделать регистр периодическим
29 AnisaL
 
20.03.13
09:42
(28) По логике он и должен быть периодическим
30 GANR
 
20.03.13
10:56
(29) Это типовое? Если да, то удивительно, почему фирма 1С так организовала структуры данных. Должности могут меняться, а регистр сведений - непериодический.
31 AnisaL
 
21.03.13
07:31
(30) нет, не типовое, уже периодический)
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс