Имя: Пароль:
1C
1С v8
Запрос по остаткам не захватывает конец дня
0 Amfiaray
 
09.12.14
14:09
Добрый день!
Отчет на скд, запрос к виртуальной таблице остатки и обороты регистра накопления, в параметр &КонецДня передаю:
Параметры = Новый Массив(2);
Параметры[0] = КонецДня(ДатаКонца);
Параметры[1] = ВидГраницы.Включая;
ГраницаДатаКонецДня = Новый (Тип("Граница"), Параметры);

Но запрос всё равно не захватывает записи со временем 23:59:59
Как получить эти записи?
1 Amfiaray
 
09.12.14
14:17
Вот сам запрос:
ВЫБРАТЬ
    ВДГОВзаиморасчетыСПотребителямиОбороты.ЛицевойСчет,
    ВЫБОР
        КОГДА НЕ ВДГОВзаиморасчетыСПотребителямиОбороты.ЛицевойСчет.ПризнакБлокировки
            ТОГДА ЕСТЬNULL(ВДГОВзаиморасчетыСПотребителямиОбороты.СуммаРасход, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК ПоступленияТекущие,
    ВЫБОР
        КОГДА ВДГОВзаиморасчетыСПотребителямиОбороты.ЛицевойСчет.ПризнакБлокировки
            ТОГДА ЕСТЬNULL(ВДГОВзаиморасчетыСПотребителямиОбороты.СуммаРасход, 0)
        ИНАЧЕ 0
    КОНЕЦ КАК ПоступленияТекущиеБлокированные
ИЗ
    РегистрНакопления.ВДГОВзаиморасчетыСПотребителями.Обороты(&НачалоМесяца, &КонецТекДня, , ) КАК ВДГОВзаиморасчетыСПотребителямиОбороты
2 Amfiaray
 
09.12.14
14:17
* ошибся, виртуальная таблица Обороты, а не остатки и обороты )
3 DrShust
 
09.12.14
14:19
(2) А что в УстановитьПараметр(, )?
4 Amfiaray
 
09.12.14
14:20
(3)
КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецТекДня", ГраницаДатаКонецДня);
5 DrShust
 
09.12.14
14:31
(4) А так не сработает?

КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецТекДня", Новый Граница(МоментВремени(), ВидГраницы.Включая))
6 eklmn
 
гуру
09.12.14
14:36
Админы, допишите в шапке что РН оборотный ))
7 Amfiaray
 
09.12.14
14:36
А МоментВремени() что возвращает? Дату последнего документа?
8 Amfiaray
 
09.12.14
14:37
(6) он не оборотный
9 DrShust
 
09.12.14
14:38
(7) Да, ошибся.
10 DrShust
 
09.12.14
14:39
А просто не получается?

КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонецТекДня", КонецДня(ДатаКонца))?
11 Amfiaray
 
09.12.14
14:41
(10) Нет, так тоже не получается
12 DrShust
 
09.12.14
14:43
(11) При отладке, что в КонецДня(ДатаКонца) попадает? 23:59:59 здесь есть?
13 Amfiaray
 
09.12.14
14:44
есть
14 eklmn
 
гуру
09.12.14
14:46
(8) что есть, то есть
ИЗ
    РегистрНакопления.ВДГОВзаиморасчетыСПотребителями.Обороты(
15 hhhh
 
09.12.14
14:47
(13) проверьте активность записей
16 Amfiaray
 
09.12.14
14:47
(14) А что у Регистра остатков не может быть виртуально таблицы обороты?
17 DrShust
 
09.12.14
14:48
(13) Если в вирт параметрах на это заменить: Обороты(&НачалоМесяца,КОНЕЦПЕРИОДА(&КонецТекДня, ДЕНЬ), Авто,)
18 eklmn
 
гуру
09.12.14
14:56
(16) почему же, она и есть, только не наоборот. Только непонятно какие остатки ты хочешь, если обороты читаешь
19 Amfiaray
 
09.12.14
15:00
(15) Записи Активны
(17) Всё равно не видит
(18) Какие остатки, запрос смотри, там русским языком написано "ВДГОВзаиморасчетыСПотребителямиОбороты.СуммаРасход"
20 eklmn
 
гуру
09.12.14
15:03
(19) смотрю название темы "Запрос по остаткам..."
21 DrShust
 
09.12.14
15:04
(19) А если секунды добавить, то хватает документы?
22 DrShust
 
09.12.14
15:04
(21) Секунду*
23 qesto
 
09.12.14
15:05
попробуй так сделать:
В СКД на закладке "Параметры", у тебя там даты есть?
в столбце Выражение указать КонецПериода(&КонецПериода, "ДЕНЬ").
24 Amfiaray
 
09.12.14
15:07
(21)Сейчас попробую добавить секунду и сделать вид границы исключая
(23) А чем это отличается от (17)
25 DrShust
 
09.12.14
15:08
(23) (24) Вроде он всё-равно программный параметр должен взять.
26 qesto
 
09.12.14
15:10
(24)там ты в запросе указываешь, а то что я тебе написал, это на форме.
Не помню точно, но давно когда-то делал отчет на скд.
то в виртуальных параметрах у меня указан просто период, а конецпериода именно в форме у меня )).
27 Amfiaray
 
09.12.14
15:52
Сделал так
Параметры = Новый Массив(2);
Параметры[0] = КонецДня(ДатаКонца)+1;
Параметры[1] = ВидГраницы.Исключая;
ГраницаДатаКонецДня = Новый (Тип("Граница"), Параметры);
28 pessok
 
09.12.14
15:53
(27) секунду можно не добавлять
29 pessok
 
09.12.14
15:53
и вид границы.включая
30 Amfiaray
 
09.12.14
15:55
(29) так не работало, из за этого же вся тема и начиналась
31 тарам пам пам
 
09.12.14
17:03
Обороты - таблица свернутая. Проверь, что у тебя действительно обороты не нулевые за последнюю секунду.
32 hhhh
 
09.12.14
17:06
(30) для оборотов не надо границу. Берите конец дня просто.
33 blutang
 
09.12.14
17:22
(0) Таблица получения остатков строится на начало даты, т.е. не включая. Т.о. надо указывать 0:00:00 следующего дня.

Таблица оборотов строится с включением записей, соответствующих граничным периодам.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.