Имя: Пароль:
1C
1С v8
Что делать с исчезновением периода в временной таблице СКД
,
0 perester
 
26.03.18
05:38
Здравствуйте!
Что делать с исчезновением периода в временной таблице СКД?
1 Fram
 
26.03.18
05:45
загадка века!
а можно немного подробностей для тех кто не в курсе о чем вообще речь?
2 perester
 
26.03.18
06:16
(1) ну, вот накидал запрос, в консоли все нормально, а в СКД неверно

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

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.Характеристика,
    ТоварыНаСкладахОстаткиИОбороты.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОстаткиНаНачало.Номенклатура КАК Номенклатура,
    ОстаткиНаНачало.Характеристика КАК Характеристика,
    ОстаткиНаНачало.ВНаличии / 2 КАК ВНаличии
ПОМЕСТИТЬ ОстаткиНаПервыйИПоследний
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ОстаткиНаНачало.Период) КАК Период,
            МИНИМУМ(ОстаткиНаНачало.Период) КАК Период1
        ИЗ
            ОстаткиНаНачало КАК ОстаткиНаНачало) КАК ВложенныйЗапрос
        ПО (ОстаткиНаНачало.Период = ВложенныйЗапрос.Период
                ИЛИ ОстаткиНаНачало.Период = ВложенныйЗапрос.Период1)

СГРУППИРОВАТЬ ПО
    ОстаткиНаНачало.Номенклатура,
    ОстаткиНаНачало.Характеристика,
    ОстаткиНаНачало.ВНаличии / 2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОстаткиНаНачало.Номенклатура КАК Номенклатура,
    ОстаткиНаНачало.Характеристика КАК Характеристика
ПОМЕСТИТЬ ОстаткиНаОстальные
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ОстаткиНаНачало.Период) КАК Период,
            МИНИМУМ(ОстаткиНаНачало.Период) КАК Период1
        ИЗ
            ОстаткиНаНачало КАК ОстаткиНаНачало) КАК ВложенныйЗапрос
        ПО ОстаткиНаНачало.Период <> ВложенныйЗапрос.Период
            И ОстаткиНаНачало.Период <> ВложенныйЗапрос.Период1

СГРУППИРОВАТЬ ПО
    ОстаткиНаНачало.Номенклатура,
    ОстаткиНаНачало.Характеристика
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    NULL КАК Поле1
ПОМЕСТИТЬ КоличествоПериодов
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    ВложенныйЗапрос.Характеристика КАК Характеристика,
    ПРЕДСТАВЛЕНИЕССЫЛКИ(ВложенныйЗапрос.Номенклатура) КАК НоменклатураПредставление,
    ВложенныйЗапрос.Номенклатура.Наименование КАК НоменклатураНаименование,
    ПРЕДСТАВЛЕНИЕССЫЛКИ(ВложенныйЗапрос.Характеристика) КАК ХарактеристикаПредставление,
    ВложенныйЗапрос.Характеристика.Наименование КАК ХарактеристикаНаименование
ИЗ
    (ВЫБРАТЬ
        ОстаткиНаПервыйИПоследний.Номенклатура КАК Номенклатура,
        ОстаткиНаПервыйИПоследний.Характеристика КАК Характеристика,
        СУММА(ОстаткиНаПервыйИПоследний.ВНаличии) КАК ВНаличии
    ИЗ
        ОстаткиНаПервыйИПоследний КАК ОстаткиНаПервыйИПоследний
            ПОЛНОЕ СОЕДИНЕНИЕ ОстаткиНаОстальные КАК ОстаткиНаОстальные
            ПО ОстаткиНаПервыйИПоследний.Номенклатура = ОстаткиНаОстальные.Номенклатура
                И ОстаткиНаПервыйИПоследний.Характеристика = ОстаткиНаОстальные.Характеристика
    
    СГРУППИРОВАТЬ ПО
        ОстаткиНаПервыйИПоследний.Номенклатура,
        ОстаткиНаПервыйИПоследний.Характеристика) КАК ВложенныйЗапрос,
    КоличествоПериодов КАК КоличествоПериодов
3 perester
 
26.03.18
06:16
Тот же запрос если загрузить его в консоль скд

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

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.Характеристика,
    ТоварыНаСкладахОстаткиИОбороты.Период
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОстаткиНаНачало.Номенклатура КАК Номенклатура,
    ОстаткиНаНачало.Характеристика КАК Характеристика,

    ОстаткиНаНачало.ВНаличии / 2 КАК ВНаличии
ПОМЕСТИТЬ ОстаткиНаПервыйИПоследний
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ОстаткиНаНачало.Период) КАК Период,
            МИНИМУМ(ОстаткиНаНачало.Период) КАК Период1
        ИЗ
            ОстаткиНаНачало КАК ОстаткиНаНачало) КАК ВложенныйЗапрос
        ПО (ОстаткиНаНачало.Период = ВложенныйЗапрос.Период
                ИЛИ ОстаткиНаНачало.Период = ВложенныйЗапрос.Период1)

СГРУППИРОВАТЬ ПО
    ОстаткиНаНачало.Номенклатура,
    ОстаткиНаНачало.Характеристика,

    ОстаткиНаНачало.ВНаличии / 2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОстаткиНаНачало.Номенклатура КАК Номенклатура,
    ОстаткиНаНачало.Характеристика КАК Характеристика


ПОМЕСТИТЬ ОстаткиНаОстальные
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ОстаткиНаНачало.Период) КАК Период,
            МИНИМУМ(ОстаткиНаНачало.Период) КАК Период1
        ИЗ
            ОстаткиНаНачало КАК ОстаткиНаНачало) КАК ВложенныйЗапрос
        ПО ОстаткиНаНачало.Период <> ВложенныйЗапрос.Период
            И ОстаткиНаНачало.Период <> ВложенныйЗапрос.Период1

СГРУППИРОВАТЬ ПО
    ОстаткиНаНачало.Номенклатура,
    ОстаткиНаНачало.Характеристика


;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    NULL КАК Поле1
ПОМЕСТИТЬ КоличествоПериодов
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    ВложенныйЗапрос.Характеристика КАК Характеристика,
    ПРЕДСТАВЛЕНИЕССЫЛКИ(ВложенныйЗапрос.Номенклатура) КАК НоменклатураПредставление,
    ВложенныйЗапрос.Номенклатура.Наименование КАК НоменклатураНаименование,
    ПРЕДСТАВЛЕНИЕССЫЛКИ(ВложенныйЗапрос.Характеристика) КАК ХарактеристикаПредставление,
    ВложенныйЗапрос.Характеристика.Наименование КАК ХарактеристикаНаименование
ИЗ
    (ВЫБРАТЬ
        ОстаткиНаПервыйИПоследний.Номенклатура КАК Номенклатура,
        ОстаткиНаПервыйИПоследний.Характеристика КАК Характеристика,
        СУММА(ОстаткиНаПервыйИПоследний.ВНаличии) КАК ВНаличии
    ИЗ
        ОстаткиНаПервыйИПоследний КАК ОстаткиНаПервыйИПоследний
            ПОЛНОЕ СОЕДИНЕНИЕ ОстаткиНаОстальные КАК ОстаткиНаОстальные
            ПО ОстаткиНаПервыйИПоследний.Номенклатура = ОстаткиНаОстальные.Номенклатура
                И ОстаткиНаПервыйИПоследний.Характеристика = ОстаткиНаОстальные.Характеристика
    
    СГРУППИРОВАТЬ ПО
        ОстаткиНаПервыйИПоследний.Номенклатура,
        ОстаткиНаПервыйИПоследний.Характеристика) КАК ВложенныйЗапрос,
    КоличествоПериодов КАК КоличествоПериодов
4 perester
 
26.03.18
06:18
то есть вот такой он в консоли запросов

ВЫБРАТЬ
    ОстаткиНаНачало.Номенклатура КАК Номенклатура,
    ОстаткиНаНачало.Характеристика КАК Характеристика,
    ОстаткиНаНачало.ВНаличии / 2 КАК ВНаличии
ПОМЕСТИТЬ ОстаткиНаПервыйИПоследний
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ОстаткиНаНачало.Период) КАК Период,
            МИНИМУМ(ОстаткиНаНачало.Период) КАК Период1
        ИЗ
            ОстаткиНаНачало КАК ОстаткиНаНачало) КАК ВложенныйЗапрос
        ПО (ОстаткиНаНачало.Период = ВложенныйЗапрос.Период
                ИЛИ ОстаткиНаНачало.Период = ВложенныйЗапрос.Период1)

СГРУППИРОВАТЬ ПО
    ОстаткиНаНачало.Номенклатура,
    ОстаткиНаНачало.Характеристика,
    ОстаткиНаНачало.ВНаличии / 2

а такой в консоли скд

ВЫБРАТЬ
    ОстаткиНаНачало.Номенклатура КАК Номенклатура,
    ОстаткиНаНачало.Характеристика КАК Характеристика,

    ОстаткиНаНачало.ВНаличии / 2 КАК ВНаличии
ПОМЕСТИТЬ ОстаткиНаПервыйИПоследний
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ОстаткиНаНачало.Период) КАК Период,
            МИНИМУМ(ОстаткиНаНачало.Период) КАК Период1
        ИЗ
            ОстаткиНаНачало КАК ОстаткиНаНачало) КАК ВложенныйЗапрос
        ПО (ОстаткиНаНачало.Период = ВложенныйЗапрос.Период
                ИЛИ ОстаткиНаНачало.Период = ВложенныйЗапрос.Период1)

СГРУППИРОВАТЬ ПО
    ОстаткиНаНачало.Номенклатура,
    ОстаткиНаНачало.Характеристика,

    ОстаткиНаНачало.ВНаличии / 2
;

получается что период не выбирается как поле
5 perester
 
26.03.18
06:23
(4) Упс... не то скопировал


Вот помещение в ВТ

ВЫБРАТЬ
    ОстаткиНаНачало.Номенклатура КАК Номенклатура,
    ОстаткиНаНачало.Характеристика КАК Характеристика,
    ОстаткиНаНачало.Период КАК Период,
    ОстаткиНаНачало.ВНаличии / 2 КАК ВНаличии
ПОМЕСТИТЬ ОстаткиНаПервыйИПоследний
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ОстаткиНаНачало.Период) КАК Период,
            МИНИМУМ(ОстаткиНаНачало.Период) КАК Период1
        ИЗ
            ОстаткиНаНачало КАК ОстаткиНаНачало) КАК ВложенныйЗапрос
        ПО (ОстаткиНаНачало.Период = ВложенныйЗапрос.Период
                ИЛИ ОстаткиНаНачало.Период = ВложенныйЗапрос.Период1)

СГРУППИРОВАТЬ ПО
    ОстаткиНаНачало.Номенклатура,
    ОстаткиНаНачало.Характеристика,
    ОстаткиНаНачало.Период,
    ОстаткиНаНачало.ВНаличии / 2
;

А Вот этот же кусок в консоли СКД

ВЫБРАТЬ
    ОстаткиНаНачало.Номенклатура КАК Номенклатура,
    ОстаткиНаНачало.Характеристика КАК Характеристика,

    ОстаткиНаНачало.ВНаличии / 2 КАК ВНаличии
ПОМЕСТИТЬ ОстаткиНаПервыйИПоследний
ИЗ
    ОстаткиНаНачало КАК ОстаткиНаНачало
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            МАКСИМУМ(ОстаткиНаНачало.Период) КАК Период,
            МИНИМУМ(ОстаткиНаНачало.Период) КАК Период1
        ИЗ
            ОстаткиНаНачало КАК ОстаткиНаНачало) КАК ВложенныйЗапрос
        ПО (ОстаткиНаНачало.Период = ВложенныйЗапрос.Период
                ИЛИ ОстаткиНаНачало.Период = ВложенныйЗапрос.Период1)

СГРУППИРОВАТЬ ПО
    ОстаткиНаНачало.Номенклатура,
    ОстаткиНаНачало.Характеристика,

    ОстаткиНаНачало.ВНаличии / 2
;
6 perester
 
26.03.18
06:26
7 Мимохожий Однако
 
26.03.18
07:16
А для чего период в группировке так нужен? В виртуальной таблице с остатками будет показывать неверные данные.