Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос по получению остатков регистра

Вопрос по получению остатков регистра
Я
   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С права.

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

Если не хотите включения даты в период - передавайте границу
   ДенисЧ
 
2 - 12.02.21 - 13:47
А с фига ли он должен попадать?
   tciban
 
3 - 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 "

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

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

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

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

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.