Имя: Пароль:
1C
1С v8
как без СКД соединить две таблицы - остатки и даты? по полю "Дата" ?
0 Cerera
 
28.01.14
10:34
Есть временная таблица, в которой дан список дат. Мне же нужно составить выборку остатков номенклатуры (ТоварыНаСкладе) на каждый день даты временной таблицы. Как при помощи СКД это реализовать я представляю, но мне нужно запросом. Подскажите идеи?
1 Allexe
 
28.01.14
10:37
(0) В остатках периодичность поставить?
2 Господин ПЖ
 
28.01.14
10:37
>Как при помощи СКД это реализовать я представляю, но мне нужно запросом

в основе скд обычно тоже запрос - сюрприз!
3 Cerera
 
28.01.14
10:39
(2)ну вы же умничаете сейчас. я имел ввиду, там в СКД можно реализовать это во время соединения наборов, передав период в качестве параметра. Но мне нужно на случай, если СКД нет и не будет.
(1)Периодичность выдается в остатках только на те дни, когда были движения товара.
4 Wobland
 
28.01.14
10:42
"срез последних на каждую дату" неплохо гуглится
5 Господин ПЖ
 
28.01.14
10:42
(3) ахинею несешь какую-то...


пашо, завязывай а ЗОЖ и силой земли в огурце
6 Allexe
 
28.01.14
10:42
(3) Ну сделай в обходе запроса
7 Господин ПЖ
 
28.01.14
10:44
>Периодичность выдается в остатках только на те дни, когда были движения товара.

какая "периодичность" у остатка? он или есть или нет на дату.
8 Господин ПЖ
 
28.01.14
10:45
периодичность в ОстаткиИОбороты умеет показывать кол-во по границам периодов, но паше сие неведомо...
9 Cerera
 
28.01.14
10:57
(7)(8)что ты имеешь ввиду?
ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(ТоварыНаСкладахОстаткиИОбороты.Период, ДЕНЬ) КАК Период,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток
ПОМЕСТИТЬ Остатки
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
            &ВыбНачПериода,
            &ВыбКонПериода,
            День,
            ДвиженияИГраницыПериода,
            Склад = &Склад
                И Номенклатура = &Номенклатура) КАК ТоварыНаСкладахОстаткиИОбороты

СГРУППИРОВАТЬ ПО
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    НАЧАЛОПЕРИОДА(ТоварыНаСкладахОстаткиИОбороты.Период, ДЕНЬ)
10 Cerera
 
28.01.14
11:07
(4)это хорошо. я не так запрос составлял и находил только вариант с CRL/
11 МихаилМ
 
28.01.14
11:38
(0)
Болезнь одинесника detected - путать получение данных с представлением.


потом будете темы создавать "типа почему все тормозит"
v8: Какими инструментами выявляются причины зависаний и замедления работы 1с?
12 ptiz
 
28.01.14
11:42
(8) Умеет, но весьма своеобразно.
Если указана периодичность, например, ДЕНЬ, а движений в какой-то день не было, и этот день - не начало и не конец общего периода вирт.таблицы, то результата с этим днем вирт.таблица не вернет.
13 Cerera
 
28.01.14
11:44
(12)верно. я не ожидал от (8)такого невежества.
14 Cerera
 
28.01.14
11:45
(11)что вы можете предложить ?
15 МихаилМ
 
28.01.14
12:02
(14)
предлагаю таблицу остатков дополнить на клиенте сроками дублями.
16 YAGolova
 
28.01.14
12:07
(14) Я делал такое. Смысл тот же что и срез последних на каждую дату в запросе. Я делаю это соединением таблицы остаткииобороты (движения и границы, период=день) с самой собой, где период 1 таблицы < периода 2 таблицы и потом гуппирую рерпую таблицу с получением минимума периода по второй таблице, тем самым получая таблицу периодом постоянного остатка по каждой номенклатуре:
       начпериода  конпериода
ном1 5 1.01        5.01
ном1 6 6.01        8.01
ном2 3 1.01        10.01 и т.д
А потом таблицу дней соединяем где дата между начпериода и конпериода. Как то так)))
17 YAGolova
 
28.01.14
12:08
ну и остаток по каждой номенклатуре конечно в таблице периодов
18 Господин ПЖ
 
28.01.14
12:12
(13) да, я слажал тут.
19 YAGolova
 
28.01.14
12:13
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК Остаток,
    ТоварыНаСкладахОстаткиИОбороты.Период КАК Период,
    ТоварыНаСкладахОстаткиИОбороты.Склад КАК Склад
ПОМЕСТИТЬ ВТОстатки
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаКон, День, ДвиженияИГраницыПериода, ) КАК ТоварыНаСкладахОстаткиИОбороты

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Период,
    Склад
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТОстатки.Номенклатура,
    ВТОстатки.Период КАК НачалоПериода,
    МИНИМУМ(ДОБАВИТЬКДАТЕ(ЕСТЬNULL(ВТОстаткиВперед.Период, &ДатаКон), СЕКУНДА, -1)) КАК КонецПериода,
    ВТОстатки.Остаток,
    ВТОстатки.Склад
ПОМЕСТИТЬ ВТОстаткиПериодами
ИЗ
    ВТОстатки КАК ВТОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ ВТОстатки КАК ВТОстаткиВперед
        ПО ВТОстатки.Номенклатура = ВТОстаткиВперед.Номенклатура
            И ВТОстатки.Период < ВТОстаткиВперед.Период
            И ВТОстатки.Склад = ВТОстаткиВперед.Склад

СГРУППИРОВАТЬ ПО
    ВТОстатки.Номенклатура,
    ВТОстатки.Период,
    ВТОстатки.Остаток,
    ВТОстатки.Склад
20 Господин ПЖ
 
28.01.14
12:13
(16) +1
21 Cerera
 
28.01.14
12:16
(18)ладно, бывает. просто все привыкли считать, что я не знаю элементарных вещей, а на самом деле я неплохой специалист по провинциальным меркам.
22 Cerera
 
28.01.14
12:30
(19)у меня совсем другие цифры выходят после выполнения вашего запроса. Они сильно отличаются от реальных значений, словно они суммируются у вас по нескольку раз для каждой номенклатуры.
23 YAGolova
 
28.01.14
12:33
(22) Точно у тебя остаток стоит в "СГРУППИРОВАТЬ ПО" или ты суммируешь по нему? Что потом делаешь с полученной таблицей?
24 Cerera
 
28.01.14
12:53
(23)простите меня. я соврал. всё правильно у вас.