Зріз останніх (залишки) на кожну дату
Отримання актуальних даних з регістра відомостей на дату, що отримується в самому запиті
Примітка apas:
Для отримання залишків регістра накопичення в першому варіанті використовуємо реальну таблицю регістра накопичення і агрегатную функцію сума (прихід-витрата) (необхідний умова по виду руху)
Другий варіант може бути корисний і в інших випадках, коли віртуальна таблиця задається тільки параметром і ніяк інакше (наприклад віртуальна таблиця "критерії відбору")
Існує кілька способів отримати потрібні дані.
1.Непосредственно в запиті (через реальну таблицю регістра)
Спосіб підходить практично для будь-якої ситуації, і тому найбільш універсальний. Єдиний, мабуть, мінус цього способу - якщо в звіті користувачеві не потрібно курс, то запит бидет вибирати надлишкові дані.
Виклик СрезПоследніх () можна використовувати тільки з передачею в нього заздалегідь готового значення дати, на яку потрібно отримати значення. Тому сабж робиться через стикування декількох запитів -
основний, до нього стикується запит по регістру відомостей з умовою за датою і пошуком записи з маскімально датою (періодом).
Все це можна побачити подивившись технологічний журнал з включеним режимом протоколювання запитів
2. Система компоновки даних (передача набору значень однієї таблиці в параметр віртуальної таблиці)
Даний спосіб підходить для звітів. З очевидних плюсів - якщо курс (або інші дані) не потрібні для побудови звіту, то СКД не буде їх отримувати. Однак швидкодія такого звіту може виявитися і трохи нижче, ніж в першому способі.
Для прикладу зробимо звіт - список замовлень покупців.
Для цього створимо набір даних "Документи" - запит:
Для того, щоб отримати інформацію про курси валют, додамо другий набір даних-запит, "Курси валют":
У цьому запиті є 2 параметри: "Дата" і "Валюта". Ці параметри будуть встановлені СКД при з'єднанні наборів. Крім того, параметр "Дата" вказано в обраних полях - це потрібно для з'єднання таблиць.
Для непотрібний полів "Дата" і "Валюта" також встановлюємо прапорці обмежень, щоб вони не з'являлися в доступних полях.
Перейдемо до з'єднанню наборів. На сторінці "Зв'язки наборів даних" додамо 2 зв'язку:
1. Джерело зв'язку - набір "Документи", приймач - набір "Курси валют". Вираз джерело - "Дата", вираз приймач - "Дата", Параметр - "Дата"
2. Джерело зв'язку - набір "Документи", приймач - набір "Курси валют". Вираз джерело - "ВалютаДокумента", вираз приймач - "Валюта", Параметр - "Валюта"
Головне тут - параметри зв'язку. При з'єднанні наборів даних, якщо вказано параметр, СКД передає в підлеглий набір (в нашому випадку - запит "Курси валют") параметри, зазначені в з'єднанні. Значеннями параметрів будуть значення відповідних полів набору-джерела.
Перейдемо до обчислюваним полях. Додамо обчислюване поле "СуммаВВалютеУпрУчета". Вираз поля - "СуммаДокумента * Курс / Кратність".
Також зазначимо поля "СуммаДокумента" і "СуммаВВалютеУпрУчета" як ресурси

Налаштуємо звіт.
Додамо одне угруповання "Детальні записи", в обраних полях вкажемо "ЗаказПолкупателя", "Курс" і "Кратність". Додамо ресурси "СуммаДокумента" і "СуммаВВалютеУпрУчета"

Можна формувати звіт
