[ Вопрос дня ] Как вывести в отчете остатки по дням не на начало дня, а на другое время?

Доброго дня, коллеги!

Тренер курса Профессиональная разработка отчетов в 1С 8.3 на СКД по возможности всегда предлагает несколько вариантов решения проблемы слушателя. На следующий вопрос тренер предложил 2 варианта. Если с первым из них все ясно – программная генерация текста запроса широко используется на практике. То второй вариант использования связей наборов данных с установкой параметров применяется значительно реже. Что выбрать из предложенного, решит сам слушатель!

Вопрос

Добрый день. Как можно сформировать отчет по остаткам на складах по дням, но чтобы остатки были не на начало дня 00:00:00, а на другое время? (Например, на 8:00:00, когда заканчивается смена).

Ответ

Добрый день! При помощи виртуальной таблицы ОстаткиИОбороты можно разбивать данные по календарным дням, месяцам, годам (т.е. только на 00:00:00). Поэтому нужно искать обходной путь. Например, можно программно сгенерировать запрос набора данных с использованием объединения:

ВЫБРАТЬ
    &Дата1 КАК Дата,
    ТоварныеЗапасыОстатки.Товар КАК Товар,
    ТоварныеЗапасыОстатки.Склад КАК Склад,
    ТоварныеЗапасыОстатки.КоличествоОстаток КАК КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварныеЗапасы.Остатки(&Дата1, ) КАК ТоварныеЗапасыОстатки

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    &Дата2,
    ТоварныеЗапасыОстатки.Товар,
    ТоварныеЗапасыОстатки.Склад,
    ТоварныеЗапасыОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварныеЗапасы.Остатки(&Дата2, ) КАК ТоварныеЗапасыОстатки

За период формирования отчета получаем нужные даты окончания смен – 03.05.2020 08:00, 04.05.2020 08:00 и т.д. Сколько получилось таких дат – столько запросов будет в объединении. Тогда на каждое окончание смены будут выведены остатки.

Или рассмотрите второй аналогичный подход – с использованием связи наборов данных. В курсе мы рассматривали получение цены товара на каждую дату продажи. Здесь его тоже можно применить:

  • В первом наборе данных получаем все даты, на которые нужно получить остатки.
  • Во втором – получаем остатки из регистра.
Это пример разобранного вопроса из Мастер-группы курса
Профессиональная разработка отчетов в 1С 8.3 на СКД.

Описание курса и примеры видео

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Вход на сайт

Зарегистрироваться

Подтверждение регистрации будет отправлено на указанный e-mail.

Я подтверждаю, что ознакомлен(а) с Пользовательским соглашением, принимаю его условия и даю свое согласие на обработку моих персональных данных.

Восстановить доступ

E-mail или логин

Ссылка на создание нового пароля будет отправлена на указанный e-mail.