|
Параметр влияет на порядок в запросе | ☑ | ||
---|---|---|---|---|
0
LittlePumpkin
23.08.20
✎
12:26
|
Есть регистр, в котором реквизит Партия - ссылка на документ приходная накладная. Делаю запрос к этому регистру, чтобы получить приходные накладные в порядке убывания:
|УПОРЯДОЧИТЬ ПО |СебестоимостьПродажОстатки.Партия.МоментВремени УБЫВ"; Указываю в виртуальной таблице реквизита параметр &МоментВремени. И указание этого параметра сносит порядок в запросе: вместо того, чтобы вернуть самую последнюю накладную - возвращает самую первую. Как это работает и в чем моя ошибка, подскажите пожалуйста. |
|||
1
Ненавижу 1С
гуру
23.08.20
✎
12:58
|
МоментВремени документа может не совпадать с моментом времени в регистре по этому регистратору.
Грубо говоря, я могу в регистр записывать данные датой и временем не совпадающие с документом. Посмотрите время и дату записей регистра и сравните с регистратором. |
|||
2
LittlePumpkin
23.08.20
✎
13:02
|
Посмотрел - они совпадают. Почему МоментВремени отсекает все приходные накладные, кроме последней - непонятно(
|
|||
3
Ненавижу 1С
гуру
23.08.20
✎
13:03
|
ты уж определись, кроме последней или кроме первой?
|
|||
4
LittlePumpkin
23.08.20
✎
13:05
|
Оу, кроме первой. Прошу прощения, опечатался.
|
|||
5
Ненавижу 1С
гуру
23.08.20
✎
13:21
|
наверное дело в запросе
|
|||
6
RomanYS
23.08.20
✎
13:26
|
В прошлый раз не разобрались почему МВ в запросе даёт сюрпризы
МоментВремени в условии ГДЕ в Запросе. |
|||
7
LittlePumpkin
23.08.20
✎
13:57
|
Смотрю через консоль в регистр:
Приходная накладная 000000003 от 23.08.2020 15:52:42 Приходная накладная 000000002 от 23.08.2020 15:52:37 Приходная накладная 000000001 от 23.08.2020 15:52:29 Делаю простейший запрос: ВЫБРАТЬ | СебестоимостьПродажОстатки.Номенклатура, | СебестоимостьПродажОстатки.Партия, | СебестоимостьПродажОстатки.КоличествоОстаток, | СебестоимостьПродажОстатки.СуммаОстаток |ИЗ | РегистрНакопления.СебестоимостьПродаж.Остатки(&МоментВремени, ) КАК СебестоимостьПродажОстатки; И получаю.. ничего. Втф? |
|||
8
LittlePumpkin
23.08.20
✎
14:02
|
Убираем МоментВремени и получаю данные. Спрашивается какого черта
|
|||
9
Вафель
23.08.20
✎
14:02
|
значит на выбранный момент данных нет.
порядок тут вообще не причем |
|||
10
LittlePumpkin
23.08.20
✎
14:07
|
Если приход был в 15:52, а я срезаю данные в 16:00 то как их может не быть?)
|
|||
11
Вафель
23.08.20
✎
14:08
|
(10) ты уверен что срезаешь именно во столько?
|
|||
12
acht
23.08.20
✎
14:09
|
(10) Что именно ты передаешь параметром в запрос?
|
|||
13
LittlePumpkin
23.08.20
✎
14:10
|
(12) МоментВремени()
|
|||
14
RomanYS
23.08.20
✎
14:20
|
(13) после этого вопрос в (11) стал ещё более актуальным.
Просто скопируй пару строк кода с УстановитьПараметр и укажи в каком контексте этот код выполняется(модуль документа?). |
|||
15
youalex
23.08.20
✎
14:20
|
(13) покажи, откуда ты этот момент() берешь
|
|||
16
Ненавижу 1С
гуру
23.08.20
✎
14:22
|
(7) ты сейчас показываешь регистраторы с их моментами времени, а не моменты времени записей регистра
|
|||
17
LittlePumpkin
23.08.20
✎
14:24
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура, | СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество |ПОМЕСТИТЬ ТДок |ИЗ | Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры |ГДЕ | РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | РасходнаяНакладнаяСписокНоменклатуры.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТДок.Номенклатура, | ТДок.Количество, | СебестоимостьПродажОстатки.Партия, | СебестоимостьПродажОстатки.КоличествоОстаток, | СебестоимостьПродажОстатки.СуммаОстаток |ИЗ | ТДок КАК ТДок | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СебестоимостьПродаж.Остатки(&МоментВремени, ) КАК СебестоимостьПродажОстатки | ПО ТДок.Номенклатура = СебестоимостьПродажОстатки.Номенклатура | |УПОРЯДОЧИТЬ ПО | СебестоимостьПродажОстатки.Партия.МоментВремени УБЫВ"; Запрос.УстановитьПараметр("МоментВремени", Новый Граница (МоментВремени(), ВидГраницы.Включая)); Запрос.УстановитьПараметр("Ссылка", Ссылка); Вот полный текст запроса, мне кажется так понятнее будет |
|||
18
LittlePumpkin
23.08.20
✎
14:25
|
МоментВремени() равен текущему времени, это я проверил уже кучу раз. Но в итоге получаю пустые данные из регистра.
|
|||
19
LittlePumpkin
23.08.20
✎
14:27
|
Вот значение МоментаВремени(): 23.08.2020 16:26:35; Расходная накладная 000000002 от 23.08.2020 16:26:35
|
|||
20
RomanYS
23.08.20
✎
14:31
|
(19) В регистре СебестоимостьПродаж считаешь складскую себестоимость? Оригинально.
Показывай записи РН, может ты их просто сделать забыл |
|||
21
youalex
23.08.20
✎
14:33
|
(18) данные получаешь в момент проведения РН? А если сначала РН распровести?
|
|||
22
LittlePumpkin
23.08.20
✎
14:36
|
Кажется нашел в чем проблема, но не понимаю в чем моя ошибка. Дело вот в чем:
Если изменять время у уже созданного сегодняшнего (но не проведенного) документа, то получаю пустые записи из регистра. Если создать новый документ, то все записи получаются нормально. Не понимаю как это работает( |
|||
23
LittlePumpkin
23.08.20
✎
14:37
|
(21) И так распровел, меняю время и провожу заново и не получаю ничего( Если создавать новый документ, то все ок.
|
|||
24
Ненавижу 1С
гуру
23.08.20
✎
15:16
|
Какая хоть конфигурация?
|
|||
25
LittlePumpkin
23.08.20
✎
15:21
|
(24) Бесплатная учебная версия:) Скачал, чтобы готовиться к экзамену
|
|||
26
Ненавижу 1С
гуру
23.08.20
✎
15:56
|
Может оно регламентно заполняется. Отсюда трудно сказать
|
|||
27
Вафель
23.08.20
✎
16:02
|
попробуй дату а не момент времени
|
|||
28
hhhh
23.08.20
✎
22:08
|
(22) Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
так сделай. не надо никакой границы |
|||
29
H A D G E H O G s
24.08.20
✎
03:23
|
(0) Скинь dt шник куда нибудь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |