СКД связь наборов данных с передачей параметра
Добрый день!
Столкнулся с задачей - необходимо получить остатки регистра накопления на дату каждой реализации.
Сейчас пробовал решить задачу так:
в первом наборе данных отбираю реализации
во втором наборе данных получаю остатки по регистру накопления с параметром &ДатаДокумента.
первый набор данных связываю со вторым с передачей параметра (&ДатаДокумента)
На выходе же остатки получаются все равно на текущую дату (подозреваю, что используется автоматический параметр Период вместо моего параметра ДатаДокумента).
Подскажите, как можно это решить?
Столкнулся с задачей - необходимо получить остатки регистра накопления на дату каждой реализации.
Сейчас пробовал решить задачу так:
в первом наборе данных отбираю реализации
во втором наборе данных получаю остатки по регистру накопления с параметром &ДатаДокумента.
первый набор данных связываю со вторым с передачей параметра (&ДатаДокумента)
На выходе же остатки получаются все равно на текущую дату (подозреваю, что используется автоматический параметр Период вместо моего параметра ДатаДокумента).
Подскажите, как можно это решить?
По теме из базы знаний
- Набор данных Объект в СКД для решения задач сортировки, нумерации и вывода в отчет произвольных наборов данных
- Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час
- Создание отчетов с помощью СКД - основные понятия и элементы
- СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты
- СКД - одна из проблем связи Наборов данных
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
ВЫБРАТЬ
РеализацияТоваров.Ссылка,
РеализацияТоваров.Дата,
РеализацияТоваров.ДоговорВзаиморасчетов
ПОМЕСТИТЬ ВТ_Документы
ИЗ
Документ.РеализацияТоваров КАК РеализацияТоваров
ГДЕ
РеализацияТоваров.Дата МЕЖДУ &Начало И &Конец
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВТ_Документы.Ссылка,
ВТ_Документы.Дата,
ВТ_Документы.ДоговорВзаиморасчетов,
ВЫБОР
КОГДА КонтрагентыВзаиморасчетыКомпании.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
ТОГДА КонтрагентыВзаиморасчетыКомпании.Сумма
ИНАЧЕ -КонтрагентыВзаиморасчетыКомпании.Сумма
КОНЕЦ КАК Число
ПОМЕСТИТЬ Вт_ВидДвижения
ИЗ
ВТ_Документы КАК ВТ_Документы
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.КонтрагентыВзаиморасчетыКомпании КАК КонтрагентыВзаиморасчетыКомпании
ПО ВТ_Документы.ДоговорВзаиморасчетов = КонтрагентыВзаиморасчетыКомпании.ДоговорВзаиморасчетов
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
Вт_ВидДвижения.Ссылка,
Вт_ВидДвижения.Дата,
Вт_ВидДвижения.ДоговорВзаиморасчетов,
СУММА(Вт_ВидДвижения.Число) КАК Число
ИЗ
Вт_ВидДвижения КАК Вт_ВидДвижения
СГРУППИРОВАТЬ ПО
Вт_ВидДвижения.Ссылка,
Вт_ВидДвижения.ДоговорВзаиморасчетов,
Вт_ВидДвижения.Дата
Показать
Всё делается одним запросом:
1. Берешь таб номенклатуры с датой реализации
2. Берешь таб цен номенклатуры (НЕ срез последних)
3. Левым соединением для каждой номенклатуры с датой реализации присоединяешь все строки таблицы цен с датой <= даты реализации; в группировке в суммируемых полях указываешь Максимум(ДатаЦены) - таким образом, у тебя для каждой строки реализации подобралась последняя установленная цена (на выходе таблица: Номенклатура, ДатаРТУ, ДатаЦены)
4. Присоединяешь таб цен по дате и номенклтуре.
1. Берешь таб номенклатуры с датой реализации
2. Берешь таб цен номенклатуры (НЕ срез последних)
3. Левым соединением для каждой номенклатуры с датой реализации присоединяешь все строки таблицы цен с датой <= даты реализации; в группировке в суммируемых полях указываешь Максимум(ДатаЦены) - таким образом, у тебя для каждой строки реализации подобралась последняя установленная цена (на выходе таблица: Номенклатура, ДатаРТУ, ДатаЦены)
4. Присоединяешь таб цен по дате и номенклтуре.
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
ВложенныйЗапрос.Ссылка
ИЗ
(ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Дата МЕЖДУ &НачПериода И &КонПериода
И РеализацияТоваровУслуг.Проведен
И НЕ РеализацияТоваровУслуг.ПометкаУдаления) КАК ВложенныйЗапрос
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачПериода, &КонПериода, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ПО ВложенныйЗапрос.Ссылка = ТоварыНаСкладахОстаткиИОбороты.Регистратор
ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
ВложенныйЗапрос.Ссылка
ИЗ
(ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Дата МЕЖДУ &НачПериода И &КонПериода
И РеализацияТоваровУслуг.Проведен
И НЕ РеализацияТоваровУслуг.ПометкаУдаления) КАК ВложенныйЗапрос
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачПериода, &КонПериода, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
ПО ВложенныйЗапрос.Ссылка = ТоварыНаСкладахОстаткиИОбороты.Регистратор
Если реализация это регистратор описанного регистра - достаточно одной таблицы Остатки и обороты.
Если нет (ну может быть у автора задача на каждую реализацию вывести остаток денег в кассе - он же не озвучил) то решаем объединением остатков и оборотов с документом на манер получения курсов валют на каждую дату.
Если нет (ну может быть у автора задача на каждую реализацию вывести остаток денег в кассе - он же не озвучил) то решаем объединением остатков и оборотов с документом на манер получения курсов валют на каждую дату.
Внимание! Тема сдана в архив
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот