СКД: Залишки на кожен день
У даній статті описується спосіб отримати залишки на кожен день в системі компонування даних (СКД) 1С: Підприємства.
Напевно, кожен розробник рано чи пізно стикається з проблемою отримати щоденні залишки. У найпростішому випадку, коли залишки за регістром накопичення потрібні тільки на ті періоди, коли по ньому були руху, завдання вирішується зазначенням періодичності для параметра віртуальної таблиці "Залишки і обороти" регістру накопичення:
будівник звіту
Щоб зробити такий звіт за допомогою будівника звітів потрібно було в підсумках для поля "Період" вказати висновок періодами із заданою періодичністю (в нашому випадку "ДЕНЬ"):
Система компоновки даних
У СКД подібного можна досягти, вказавши для поля роль "Залишки":
Таким чином, СКД сама буде підтягувати останнє значення ресурсу на проміжні періоди до наступної зміни. Приблизний результат буде виглядати так:
Залишки на кожен день періоду (навіть якщо не було рухів)
Розглянемо більш складний варіант:
Необхідно отримати залишки по кількості і вартості товару на кожен день місяця, навіть якщо в цей день не було рухів. Також на кожен день потрібно вивести вартість товару за вказаною типу цін, перераховану в рублі за курсом на день виведення.
Простий налаштуванням ролей для полів тут не обійтися, тому що в тому випадку СКД просто простягає значення ресурсу до наступного зміни, та й то, тільки по тих днів, на які були руху по регістру. Додаткова складність полягає в тому, що ще потрібно отримувати зріз останніх за ціною і курсу валюти на дату, яка обчислюється безпосередньо в запиті.
У СКД таке завдання можна вирішити зв'язком наборів даних:
- Перший набір даних (запит) у нас буде формувати список днів, на які нам потрібно отримати залишки. Ці дні будуть передаватися в параметри віртуальних таблиць другого набору даних для отримання залишків на дату і зрізу останніх. Запит, що формує таблицю дат, тут не наводжу, при бажанні можете завантажити налаштування звіту і подивитися.
- Другий набір даних (запит) буде отримувати залишок за кількістю, ціни і перераховувати їх за потрібною курсу.
При зв'язку наборів даних важливо вказати Параметр:
У налаштуванні виведення вказуємо, що нам потрібен висновок в таблицю; в рядках: Склад, Номенклатура; в колонках: Період; Кількість, Вартість БО і Вартість за типом цін - ресурси.
Отримуємо такий результат:
PS: Можливо це не найкращий варіант по продуктивності, але він працює, а це головне.
Приклад виводить залишки по партіях БО, створювався в конфігурації УПП ред. 1.2
Завантажити приклад налаштування звіту для СКД, який виводить залишки по днях: Файл: OstatkiPoDnyam.rar
Залишки на кожен день періоду одним запитом (навіть якщо не було рухів)
Де "Дні" - таблиця дат за період