Имя: Пароль:
1C
1С v8
Вопрос по получению остатков регистра
0 tciban
 
12.02.21
13:45
Уважаемые коллеги! Как всегда я к вам с дурацким вопросом и всем наверное дано известной проблемой! Есть запрос (на самом деле это часть запроса, получение временной таблицы, но так проще локализовать проблему)
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Склад КАК СкладХранения,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачальныйОстатокСклада,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстатокСклада
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
            &ДатаН,
            &ДатаК,
            Период,
            ДвиженияИГраницыПериода,
            Склад В ИЕРАРХИИ (&СкладПолучатель)
                И Номенклатура В ИЕРАРХИИ (&Мясо)) КАК ТоварыНаСкладахОстаткиИОбороты
И вот когда экономист берет в качестве даты начала 31/01/2021 23:59:59 а в качестве даты конца 01/02/2021 00:00:00 (только не спрашивайте меня ЗАЧЕМ? я не знаю) то у него по некоторым товарам начальный и конечный остаток получаются разными! А потому что например по некоему товару есть Списание от 31.01.2021 23:59:59 И оно не попадает в начальный остаток! Потому что оно чуть позже чем 23:59:59 с точки зрения 1С. И 1С права.

Так вот вопрос - что делать? Запрос используется в СКД
1 RomanYS
 
12.02.21
13:46
что делать?
встречный вопрос: делать зачем?

Если не хотите включения даты в период - передавайте границу
2 ДенисЧ
 
12.02.21
13:47
А с фига ли он должен попадать?
3 tciban
 
12.02.21
13:50
(1) Сначала я вообще сделал стандартным периодом и все было прекрасно. Но экономисту надо стало задавать период с учетом времени.
Как я уже писал - "зачем" узнать не удалось. Но в чем то я экономиста понимаю. Остатки на конец дня и начало следующего должны быть одинаковыми, иначе как верить отчету?
Видимо вопрос в том как задавать начало и конец периода?


(2) в том то и дело - не должен! Но как переопределить дату что бы попадал?
4 Гипервизор
 
12.02.21
13:50
(0) Читать до просветления https://its.1c.ru/db/pubapplied#content:142:hdoc
5 ДенисЧ
 
12.02.21
13:53
"Остатки на конец дня и начало следующего"
А задаёт "в качестве даты начала 31/01/2021 23:59:59 а в качестве даты конца 01/02/2021 00:00:00 "

Задаёт разные точки, получает разные результаты. Чего ещё надо?
6 tciban
 
12.02.21
13:56
(5) И я и она понимаем Что "Задаёт разные точки, получает разные результаты." Но как можно задавать в отчете начало дня (ну это еще более менее) и конец дня. Вот задать конец дня в качестве начала периода это не так уж и безумно, это может быть. Первое, что приходит в голову - это написать где нибудь что если у нас 23:59:59, то взять в дату начало следующих суток.

Просто может кто то уже решал такую задачу и придумал что нибудь другое?
7 RomanYS
 
12.02.21
13:57
(3)
>> в том то и дело - не должен!
Не должен, это закреплено в документации

>>Но как переопределить дату что бы попадал?
Передавай Границу, а не дату
8 d4rkmesa
 
гуру
12.02.21
13:57
(6) Запретить что-либо проводить в 23:59:59.
9 tciban
 
12.02.21
13:59
(8) и такая идея есть. Можно и так. Сейчас соберу все идеи и выберем лучшую!

(7) Как в СКД передавать границу а не дату? И как указать в параметрах границы пользователю отчета?
10 tciban
 
12.02.21
14:01
"Передавай Границу, а не дату" - кто подскажет - как можно преобразовать дату, содержащую 23:59:59 в границу? Либо прямо в запросе, либо в выражении СКД?
11 ДенисЧ
 
12.02.21
14:01
В ПриКомпоновке проверяй начальную дату, и если она равна концу дня от этой даты, присваивай ей начало следующего дня.
12 RomanYS
 
12.02.21
14:01
(9) Как в СКД передавать границу а не дату? И как указать в параметрах границы пользователю отчета?
Кодом. Ещё проще в выражении для параметра отнять/прибавить секунду
13 RomanYS
 
12.02.21
14:03
(9) Правильный путь - понять самому и донести до пользователя, что система работает правильно. Соответственно со стороны пользователя требуется просто правильный ввод параметров.
14 tciban
 
12.02.21
14:03
(12) Кодом всякий может при компановке! А вот нельзя ли сделать выражением СКД границу?
15 Гипервизор
 
12.02.21
14:04
(10) Например, так: ДобавитьКДате(КонецПериода(&КонецПериода), 1, "Секунда")
16 RomanYS
 
12.02.21
14:04
(14) секунду отними - результат такой же будет
17 tciban
 
12.02.21
14:04
(13) Это путь самурая. Ведущий скорее всего к сеппуко.
18 ДенисЧ
 
12.02.21
14:13
(17) Это путь ведёт к феншую и катарсису...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн