Пример отчета с выводом остатков по всем периодам

15.09.15

Разработка - СКД

Столкнулся в очередной раз с задачей создания отчета в СКД с выводом по периодам (месяцам) остатков по регистру накопления. Убил на решение несколько часов, перелопатил интернет, перепробовал всяческие варианты настроек полей, параметров и прочее, пока не пришел наконец к рабочему варианту. Оставляю себе в качестве шаблона, поскольку спустя время уверен, что опять все забуду. Надеюсь, кому-то еще поможет сэкономить время или просто напомнить себе те или иные особенности работы СКД.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Вывод остатков в СКД по месяцам
.erf 6,72Kb
162
162 Скачать (1 SM) Купить за 1 850 руб.

В качестве примера выбран регистр "Расчеты с клиентами" (Управление торговлей 11, в.11.1.2). Необходимо вывести корректные конечные остатки по этому регистру на конец каждого месяца, причем даже если не было движений в течение определенного месяца. Задача "в лоб" не решается (можете проверить) - указав в качестве периода отчета, например, текущий год и выбрав в отборе клиента, у которого нет движений за этот год, но есть начальный остаток, мы увидим только первый и последний месяцы с корректным конечным остатком, остальные месяцы "провалились": 

В инете можно найти рекомендации, как добиться желаемого. 

Первое - помимо исходной таблицы остатков (не остатки и обороты, поскольку в данном случае меня интересуют только конечные остатки) надо добавить таблицу со всеми датами. Т.е., если меня интересует этот год, то надо получить список дат на конец каждого месяца этого года - 31 января 23:59:59, 28 февраля 23:59:59 ... 31 декабря 23:59:59. Данная таблица с датами соединяется (НЕ объединяется) с основной таблицей (ИсходныеДанные).

В основной таблице добавляем реквизит &Период (у меня это Месяц) как на рисунке, не забываем его же вставить в параметры виртуальной таблицы. Соответственно, для вывода отчета "Период" (он же "Месяц") - это Измерение,

 

а для связи 2-х таблиц - это Параметр:

Здесь все "переменные" названы по-разному, чтобы не запутаться прежде всего самому, что к чему относится. Также обратите внимание, что здесь ВАЖЕН порядок связи: сначала таблица с датами, потом таблица с исходными данными (не забываем - в СКД связь на данной закладке ЛЕВАЯ).

ЗЫ. Ради интереса проверьте, что будет, если их переставить местами.

Окончательный вариант дает именно то, чего и добивались:

 

 

PS. Спасибо Мисте за код запроса, собирающего даты.

PPS. Да пусть не обидятся на меня те, кто решал и публиковал решение этой задачки, я вовсе не претендую на оригинальность, просто хочется свести все воедино прежде всего для самого себя, и чтобы всегда было под рукой...

  

СКД

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    152641    836    398    

846

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

15.05.2024    7330    implecs_team    6    

46

Инструментарий разработчика СКД Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

По выбранной схеме компоновки данных генерирует программный код, который генерирует СКД, аналогичную исходной схеме. Есть дополнительные инструменты для просмотра дерева схемы, сравнение исходной схемы и полученной по коду, а также сравнение изменений в сгенерированном коде для исходной схемы и для измененной.

3 стартмани

05.02.2024    6515    51    obmailok    21    

79

Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2998    3    Yashazz    0    

34

СКД WEB-интеграция Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Долгое время поддерживаю web-портал, в котором появилась необходимость создавать отчеты. Просмотрев различные фреймворки на js, я решил сделать свое решение, которое позволяло бы быстро разрабатывать и добавлять новые отчеты на web-портал.

2 стартмани

11.12.2023    10347    23    John_d    25    

124

СКД Программист Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Рассмотрим еще не получивший широкого распространения способ работы с внешними данным в СКД. В процессе обсуждения работы с СКД выяснилось, что многие не знакомы со способом помещения туда временной таблицы, полученной предварительно. Статья будет полезна разработчикам, знакомым с программным созданием СКД.

05.12.2023    7329    PROSTO-1C    14    

67
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. klaus38 15.09.15 13:50 Сейчас в теме
Спасибо тебе добрый человек. Вот только что начальство попросило по месяцам, я даже репу почесать не успел и тут на тебе (плюсую)
2. dabu-dabu 302 15.09.15 15:07 Сейчас в теме
Способ бессмысленно и даже вредно использовать для простых запросов из виртуальных таблиц, в случе использования которых достаточно правильно настроить роли полей набора данных.
И то что автор "перелопатил интернет" и не нашел описания данного способа - это странно.
3. Mortiferus 362 15.09.15 15:29 Сейчас в теме
(2) dabu-dabu, как оказалось - недостаточно. Предлагаю самому попробовать.
5. dabu-dabu 302 15.09.15 17:28 Сейчас в теме
(3) Попробовал. Все работает, но нужно в запросе выводить поле не только конечного остатка, но и начального. В отчет, при этом, можно вывести только конечный.
7. Mortiferus 362 16.09.15 07:10 Сейчас в теме
(5) dabu-dabu, я добавлял и начальный остаток, и оборот, и приход, и расход - всегда выходит только первый и последний месяц.
17. Sherdrada 25.08.20 09:20 Сейчас в теме
(5) а если начальный остаток тоже нужен, как быть?
18. dabu-dabu 302 25.08.20 13:28 Сейчас в теме
(17) Принцип простой, в наборе данных должны быть поля и начального и конечного остатков с правильно настроенной ролью. Что при этом выводится в отчет не важно. Т.е. можно вывести как начальный и конечный остатки, так и только один из них.
Sherdrada; +1 Ответить
4. AndreyV-13 15.09.15 15:35 Сейчас в теме
Спасибо. Плюсик от меня.
6. headMade 144 15.09.15 17:47 Сейчас в теме
В свойствах поля группировки указать тип дополнения не подойдет?
Прикрепленные файлы:
8. Mortiferus 362 16.09.15 07:21 Сейчас в теме
(6) headMade, попробовал так сделать, получается ерунда:
Месяцы вышли все, остаток по месяцам не вышел. Возможно еще о какой-то настройке не знаю, не исключаю.
Пробовал при этом Роль Месяца ставить и как Период, и как Измерение (тип Дата).
Прикрепленные файлы:
Summer_13; +1 Ответить
9. Mortiferus 362 16.09.15 08:24 Сейчас в теме
(6) headMade, а вот если вместо виртуальной таблицы остатков выбрать таблицу остатков и оборотов, тогда получается! Спасибо. Век живи, век учись...
12. rom-x 152 15.03.18 16:17 Сейчас в теме
(9)
А если нужны начальные остатки на каждый месяц?

Можно код запроса с остатками и оборотами?
13. Mortiferus 362 16.03.18 09:47 Сейчас в теме
(12) не понял. вроде на картинке все показано, только вместо таблицы Остатки используйте таблицу ОстаткиИОбороты
10. Adeptus 232 16.09.15 09:07 Сейчас в теме
11. 7OH 70 19.10.16 10:33 Сейчас в теме
Пробовал разные методы.
Единственным нормальным по скорости и корректности оказался ОстаткиИОбороты с указанием периодичности в
ПриКомпоновкеРезультата
изменением
ЭтотОбъект.СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос
14. jump0 7 30.10.19 13:27 Сейчас в теме
https://infostart.ru/public/1147439/ сделал через вспомогательную скд остатки по датам и получаю таблицу с датам и остатками.
15. hasp_x 156 16.04.20 10:47 Сейчас в теме
Обороты как-то сами собой по периодам получаются. Не думал, что с остатками будет такая морока. Оказывается все дело в роли и параметре соединения. Спасибо за наводку
16. Amara 07.07.20 10:03 Сейчас в теме
необходимо вывести таблицу остатков и оборотов по месяцам, в детализации сделки, если в каком-то месяце не было движений по конкретному документу начальный и конечный остатки не попадают. пробовала получить хотя бы остатки помесячно, настроив отчет в скд как в примере, все остатки на каждый месяц = остатку на конец периода отчета. предполагаю что параметр виртуальной таблицы основного запроса подставляется из параметров отчета, а не из таблицы периодов. подскажите может еще какие настройки нужны? на закладке Параметры, например?
19. Djo82 11 05.04.22 06:05 Сейчас в теме
У меня вышло через дополнения месяца вывести, регистр оборотный
Прикрепленные файлы:
Оставьте свое сообщение