Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

СКД, дополнить таблицу нулями

СКД, дополнить таблицу нулями
Я
   ksenod
 
30.11.18 - 10:19
Добрый день, с помощью соединения наборов данных получаю остатки на конец нужных мне периодов в формате(для периода 02.01.18-05.03.18, по месяцам) 
02.01.18 номенклатура1 100     \   
01.02.18 номенклатура1 50       -остатки на конец месяца
01.03.18 номенклатура1 50      /

02.01.18 номенклатура2 100     \   
01.02.18 номенклатура2 50       -остатки на конец месяца
"""01.03.18 нет так там не было остатков"""

Хотел бы получить 

02.01.18 номенклатура2 100     \   
01.02.18 номенклатура2 50       -остатки на конец месяца
01.03.18 номенклатура2 0      /


Вариант с использованием справочника номенклатуры для получения всех остатков не подходит, т.к. тогда появится слишком много пустых строк которые мне не нужны
Использую следующий запрос в нем &период- даты окончания месяцев из периода заданного пользователем



ВЫБРАТЬ
    ПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК КоличестовОстатокДата,
    ПартииТоваровНаСкладахОстатки.СтоимостьОстаток КАК СтоимостьОстатокДата,
    ПартииТоваровНаСкладахОстатки.Номенклатура,
    ВЫБОР
        КОГДА НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) > &НачалоПериода
            ТОГДА НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ)
        ИНАЧЕ &НачалоПериода
    КОНЕЦ КАК ПериодДляВывода,
    &Период КАК МойПериод,
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток КАК КоличВРезервеДата
ПОМЕСТИТЬ Остатки
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Период, ) КАК ПартииТоваровНаСкладахОстатки
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) КАК ТоварыВРезервеНаСкладахОстатки
        ПО ПартииТоваровНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура

СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладахОстатки.Номенклатура,
    ПартииТоваровНаСкладахОстатки.КоличествоОстаток,
    ПартииТоваровНаСкладахОстатки.СтоимостьОстаток,
    ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток
;
 
 
   Fragster
 
1 - 30.11.18 - 10:22
   ksenod
 
2 - 30.11.18 - 10:25
(1) к сожалению это не то
   Fragster
 
3 - 30.11.18 - 10:26
(2) то
   Eiffil123
 
4 - 30.11.18 - 10:26
(0) "Вариант с использованием справочника номенклатуры для получения всех остатков не подходит, т.к. тогда появится слишком много пустых строк которые мне не нужны "

А какие тогда нужны? сначала нужно понять, какую номенклатуру с нулем показывать, а какую уже не надо.
Как вариант, брать оборот за какой-то предыдущий период, оттуда выбирать номенклатуру, и объединением в запрос подсовывать номенклатуру из этого отбора (объединить с остатками на дату без слова "все")
   ksenod
 
5 - 30.11.18 - 10:31
(4) Спасибо за идею, попробую если не придумаю ничего лучше.
Нужно все что имело остатки, резеры или движения за любой момент периода, я в следующих вирт таблицах использую конструкции вида(см в конце) и из за отсутствия последней записи периоды без остатков не выводятся

СУММА(ВЫБОР
            КОГДА Остатки.ПериодДляВывода = Обороты.Периодичность_
                ТОГДА ЕСТЬNULL(Обороты.Приход_, 0)
        КОНЕЦ) КАК Приход_,
   ksenod
 
6 - 30.11.18 - 10:40
(3) Я получаю вот такие записи
http://prntscr.com/lou4b1
как мне в этом поможет дополнение?
   ksenod
 
7 - 30.11.18 - 11:14
(4) Спасибо за помощь, твой вариант работает и довольно быстро!
   Fragster
 
8 - 30.11.18 - 11:37
(6) ты просто не умеешь их готовить
   Fragster
 
9 - 30.11.18 - 11:37
учись готовить дополнения
   Fragster
 
10 - 30.11.18 - 11:37
в данной ситуации надо разделить запрос на наборы данных типа объединения
 
 Рекламное место пустует
   Fragster
 
11 - 30.11.18 - 11:38
чтобы в каждом наборе были правильные роли
   Fragster
 
12 - 30.11.18 - 11:38
а потом слепить
   Fragster
 
13 - 30.11.18 - 11:38
с помощью настроек и компоновок

Список тем форума
Рекламное место пустует  Рекламное место пустует
Читай всё полезное и впитывай, а нападки игнорируй. Здесь так принято. aka AMIGO
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует