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

15.09.15

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

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

Файлы

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

Наименование Скачано Купить файл
Вывод остатков в СКД по месяцам
.erf 6,72Kb ver:01
177 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

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

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

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

 

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

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

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

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

 

 

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

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

  

Вступайте в нашу телеграмм-группу Инфостарт

СКД

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    245709    1350    419    

1128

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    4937    273    shapa_pro    25    

66

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    15532    ovetgana    112    

105

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Описан способ заполнения списка доступных значений для полей наборов данных и параметров в схеме компоновки данных для любых конфигураций (с использованием БСП или без).

01.07.2025    9096    krasnoshchekovpavel    5    

66

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    8288    Neti    0    

41

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    15466    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    13053    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    9494    AlexeyPROSTO_1C    1    

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

Можно код запроса с остатками и оборотами?
13. Mortiferus 367 16.03.18 09:47 Сейчас в теме
(12) не понял. вроде на картинке все показано, только вместо таблицы Остатки используйте таблицу ОстаткиИОбороты
20. olga.klimchik@gmail.com 1 06.04.25 18:01 Сейчас в теме
10. Adeptus 256 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 161 16.04.20 10:47 Сейчас в теме
Обороты как-то сами собой по периодам получаются. Не думал, что с остатками будет такая морока. Оказывается все дело в роли и параметре соединения. Спасибо за наводку
16. Amara 07.07.20 10:03 Сейчас в теме
необходимо вывести таблицу остатков и оборотов по месяцам, в детализации сделки, если в каком-то месяце не было движений по конкретному документу начальный и конечный остатки не попадают. пробовала получить хотя бы остатки помесячно, настроив отчет в скд как в примере, все остатки на каждый месяц = остатку на конец периода отчета. предполагаю что параметр виртуальной таблицы основного запроса подставляется из параметров отчета, а не из таблицы периодов. подскажите может еще какие настройки нужны? на закладке Параметры, например?
19. Djo82 13 05.04.22 06:05 Сейчас в теме
У меня вышло через дополнения месяца вывести, регистр оборотный
Прикрепленные файлы:
21. Bukaska 148 06.04.25 19:15 Сейчас в теме
Да уже.. Если нужно выводить ресурс за каждый месяц, то только табличный вывод данных. Хотя могу ошибаться.Но подобные отчеты решаются именно таблицей, не списком)
Для отправки сообщения требуется регистрация/авторизация