Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
26 июн 2024, 12:51

Срез последних на дату

Автор stillenough, 14 янв 2015, 10:49

0 Пользователей и 1 гость просматривают эту тему.

stillenough

нужно получить 2 значения из регистра сведений на дату. Первое значение ДО указанной даты, второе ПОСЛЕ.
Как это реализовать в запрос?
сейчас запрос на получение начальной такой:
ВЫБРАТЬ
СУММА(ДвижениеСебестоимостиСрезПоследних.СебестоимостьСумма) КАК СебестоимостьКонечногоОстаткаСумма,
ДвижениеСебестоимостиСрезПоследних.Количество,
ДвижениеСебестоимостиСрезПоследних.Номенклатура,
ДвижениеСебестоимостиСрезПоследних.Документ,
ДвижениеСебестоимостиСрезПоследних.Период КАК Период,
ДвижениеСебестоимостиСрезПоследних.СкладПолучатель,
ДвижениеСебестоимостиСрезПоследних.СебестоимостьСумма / ДвижениеСебестоимостиСрезПоследних.Количество КАК СебестоимостьКонечногоОстаткаЗаЕд
ИЗ
РегистрСведений.ДвижениеСебестоимости.СрезПоследних(&Период, ) КАК ДвижениеСебестоимостиСрезПоследних

СГРУППИРОВАТЬ ПО
ДвижениеСебестоимостиСрезПоследних.Номенклатура,
ДвижениеСебестоимостиСрезПоследних.Документ,
ДвижениеСебестоимостиСрезПоследних.Период,
ДвижениеСебестоимостиСрезПоследних.Количество,
ДвижениеСебестоимостиСрезПоследних.СкладПолучатель,
ДвижениеСебестоимостиСрезПоследних.СебестоимостьСумма / ДвижениеСебестоимостиСрезПоследних.Количество

УПОРЯДОЧИТЬ ПО
Период

Отрабатывает как надо.
Отчет разработан в скд, парамерт передается в связи наборов данных.
Как мне реализовать выбор значения СЛЕДУЮЩЕГО после выбранного?

KrivosheevEV

Виртуальные таблицы.

stillenough

Цитата: KrivosheevEV от 14 янв 2015, 12:30
Виртуальные таблицы.
не могли бы Вы чуть более развернуто пояснить свою мысль?

Kironten

А чем Вас СрезПервых не устраивает, с последующим соединением с вашим СрезПоследних?

KrivosheevEV

Цитата: stillenough от 14 янв 2015, 12:37пояснить свою мысль

ВЫБРАТЬ
НД_ПКО.СуммаДокумента,
НД_ПКО.Подразделение
ПОМЕСТИТЬ ВиртуальнаяТблица1
ИЗ
Документ.НД_ПКО КАК НД_ПКО
ГДЕ
НД_ПКО.Дата = &Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
НД_РКО.СуммаДокумента,
НД_РКО.Подразделение
ПОМЕСТИТЬ ВиртуальнаяТаблица2
ИЗ
Документ.НД_РКО КАК НД_РКО
ГДЕ
НД_РКО.Дата = &Дата
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ1.СуммаДокумента КАК СуммаДокумента_ПКО,
ВТ2.СуммаДокумента КАК СуммаДокумента_РКО
ИЗ
ВиртуальнаяТблица1 КАК ВТ1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВиртуальнаяТаблица2 КАК ВТ2
ПО ВТ1.Подразделение = ВТ2.Подразделение


LexaK

что-то типа этого (с небольшими сокращениями) потом можете допилить как хотите



ВЫБРАТЬ
    Рег1.Номенклатура,
    Рег1.Количество,
    Рег1.СебестоимостьСумма,
    Рег1.Документ,
    Рег1.Период,
    Рег1.СкладПолучатель,

    Рег2.Количество,
    Рег2.СебестоимостьСумма,
    Рег2.Документ,
    Рег2.Период,
    Рег2.СкладПолучатель

ИЗ
    РегистрСведений.ДвижениеСебестоимости.СрезПоследних(&Период, ) КАК Рег1
левое соединение
    //необходимо к дате добавить единицу шага Периодичности
    РегистрСведений.ДвижениеСебестоимости.СрезПервых(ДобавитьКДате(&Период,Секунда,1), ) КАК Рег2
по Рег1.Номенклатура = Рег2.Номенклатура
//по идее здесь надо по всем измерения сопрягать

УПОРЯДОЧИТЬ ПО
    Рег1.Номенклатура,
    Рег1.Период



в консоли запросов выполните его, поля с цифрорй 1 (Период1 и т.д.) будут следующими значениями после указанной даты.
если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск