|
не срабатывает набор записей по регистру | ☑ | ||
---|---|---|---|---|
0
mephistos
15.05.14
✎
16:27
|
добрый день, друзья.
сижу туплю второй час. есть регистр сведений, периодический, периодичность - 1 секунда, 1 измерение - документ. нужно получить наборы записей, соответствующие условию: документ равен конкретному и, соответственно, по дате. делаю так: Если ТипЗнч(Строка.Ссылка) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда ОбработкаПрерыванияПользователя(); СтатусыЗаказов = РегистрыСведений.СтатусыЗаказовДоп; НаборЗаписей = СтатусыЗаказов.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Документ.Установить(Выборка.Ссылка); НаборЗаписей.Отбор.Период.Установить(Выборка.Ссылка.Дата); НаборЗаписей.Прочитать(); Для Каждого Запись Из НаборЗаписей Цикл //пошли действия КонецЦикла; КонецЕсли; Смотрю отладчиком - на момент чтения записей из набора - набор пустой :( Почему так ? Записей в регистре миллион. в чем я неправ? |
|||
1
Крошка Ру
15.05.14
✎
16:30
|
А Выборка - это что?
|
|||
2
Крошка Ру
15.05.14
✎
16:31
|
В смысле,может она пустая?
|
|||
3
mephistos
15.05.14
✎
16:32
|
(2) Выборка - выборка документов с запроса. Нет, не пустая. Выборка.Ссылка - ссылка на документ того же типа, что является измерением в регистре. Я тоже проверял. И дата, естественно, есть
|
|||
4
ale-sarin
15.05.14
✎
16:35
|
Может период в записях регистра не равен дате документа?
|
|||
5
Крошка Ру
15.05.14
✎
16:35
|
Если точку остановки поставить на
НаборЗаписей.Прочитать(); НаборЗаписей.Отбор что показывает? |
|||
6
Крошка Ру
15.05.14
✎
16:36
|
(4) Кстати, да, может в период не попадаешь
|
|||
7
mephistos
15.05.14
✎
16:36
|
Ребята, кажется, нашел. Только не понимаю причину: если в отладке shift f9 набор записей, то показано, что в Отборе не установлен ЗаказПокупателя. Соответственно, не срабатывает строчка установки отбора. Но почему такое может быть ? Я, вроде, синтаксически правильно все написал. И значение в установку передается..
|
|||
8
Крошка Ру
15.05.14
✎
16:37
|
Делай срез последних
|
|||
9
Enders
15.05.14
✎
16:37
|
Так как регистр не подчинен регистратору, а просто периодический, то период скорее всего - это дата и время записи в регистр, а не дата документа.
|
|||
10
Крошка Ру
15.05.14
✎
16:38
|
А может надо НаборЗаписей.Отбор.Регистратор.Установить(...)?
|
|||
11
mephistos
15.05.14
✎
16:38
|
(9) Не-не, с датами все нормально, это я смотрел. Запись пишется в регистр по записи документа, это как раз дата создания, выходит. Ну, практически.
|
|||
12
mephistos
15.05.14
✎
16:38
|
(10) Сейчас попробую, минуточку
|
|||
13
Крошка Ру
15.05.14
✎
16:39
|
(9) А, да, может и не подчинен..
|
|||
14
mephistos
15.05.14
✎
16:39
|
(10) Не, поле не обнаружено ..
|
|||
15
mephistos
15.05.14
✎
16:39
|
НаборЗаписей.Отбор.Документ.Установить(Выборка.Ссылка); - что не так с этой строчкой .. Измерение именно так и называется, и значение в выборка.ссылка есть ..
|
|||
16
Enders
15.05.14
✎
16:40
|
(15) А если убрать отбор по дате, набор пустой или заполненный?
|
|||
17
Крошка Ру
15.05.14
✎
16:41
|
При отладке в НаборЗаписей.Отбор поле как называется? "Документ"?
|
|||
18
mephistos
15.05.14
✎
16:41
|
(17) Ага, так точно
|
|||
19
mephistos
15.05.14
✎
16:41
|
(16) Сейчас гляну
|
|||
20
mephistos
15.05.14
✎
16:42
|
(16) очень забавно, кстати. сделал период пустым - встал отбор по ДОкументу ..
как так ? |
|||
21
mephistos
15.05.14
✎
16:43
|
(16) Охренеть, сработало, и цикл по записям пошёл. Как так ?)
|
|||
22
Enders
15.05.14
✎
16:46
|
(21)Что значит пустым? поставил пустую дату или удалил строчку отбора?
|
|||
23
Крошка Ру
15.05.14
✎
16:46
|
(21) Просто интересно...
А если отборы по документу и по периоду местами поменять(в смысле строки) отбор будет только по документу? |
|||
24
mephistos
15.05.14
✎
16:49
|
(23) (22) Я закомментил строчку, где устанавливается период в отбор, и оставил только отбор по документу. И всё заработало.
|
|||
25
Крошка Ру
15.05.14
✎
16:50
|
(24) Так может действительно не совпадали период и дата документа?
|
|||
26
Enders
15.05.14
✎
16:50
|
(24) Тогда бока с датами. Подозреваю что ответ: "Запись пишется в регистр по записи документа, это как раз дата создания, выходит."(с)
А дата документа не равна дате его создания/записи :) |
|||
27
mephistos
15.05.14
✎
16:53
|
(25) (26) Скорее всего, ребята ! Но мне достаточно отбора по документу.
Спасибо вам большое, что помогли прекратить тупить ;) |
|||
28
Enders
15.05.14
✎
16:53
|
+ к (26)
Скорее всего вы пишите данные в регистр при создании документа и там есть строчка "Период = ТекущаяДата()" и получается что период у вас близок к дате создания документа, различается на секунды, но всё равно разный или же "Период = ДокОбъект.Дата", тогда при оперативном проведении и изменении даты вручную у вас опять же не будут совпадать даты, так как скорее всего вы смотрите сделал этот документ движения по регистру, если нет - добавляете, да - ничего не делаете. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |