|
Получения остатков на каждый день | ☑ | ||
---|---|---|---|---|
0
serg-lom89
21.06.17
✎
15:26
|
как получить остатки на каждый день?
есть запрос ВЫБРАТЬ НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d), ДЕНЬ) КАК Период ПОМЕСТИТЬ ДНИ ИЗ (ВЫБРАТЬ 0 КАК a ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК aa ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК b ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК bb ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК c ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК cc ПО (ИСТИНА) ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 0 КАК d ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9) КАК dd ПО (ИСТИНА) ГДЕ aa.a * 1000 + bb.b * 100 + cc.c * 10 + dd.d <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) ИНДЕКСИРОВАТЬ ПО Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Движения.Период КАК Период, Движения.Склад, Движения.Номенклатура, Движения.КоличествоКонечныйОстаток, Движения.КоличествоКонечныйОстаток * Движения.Номенклатура.ЕдиницаХраненияОстатков.Литраж КАК Литраж ПОМЕСТИТЬ ВТ_ОборотТовара ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, ДЕНЬ, , Склад.ТипСклада <> ЗНАЧЕНИЕ(перечисление.типыСкладов.виртуальный) {(Склад = &Склад) КАК Склад, (Номенклатура = &Номенклатура) КАК Номенклатура}) КАК Движения ИНДЕКСИРОВАТЬ ПО Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Дат.Период КАК Дата_, ЕСТЬNULL(Остатки.Склад, ЗНАЧЕНИЕ(справочник.Склады.пустаяСсылка)) КАК Склад, ЕСТЬNULL(Остатки.Номенклатура, ЗНАЧЕНИЕ(справочник.Номенклатура.пустаяСсылка)) КАК Номенклатура, ЕСТЬNULL(Остатки.КоличествоКонечныйОстаток, 0) КАК КоличествоОстаток, ЕСТЬNULL(Остатки.Литраж, 0) КАК Литраж ИЗ ДНИ КАК ВТ_Дат ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОборотТовара КАК Остатки ПО ВТ_Дат.Период = Остатки.Период и когда добавляю в скд и вовожу,получается что на начало периода и конец периода остатки правильные,а посредине периода(если строить по дням) неправильные... ЧЯДНТ? |
|||
1
vicof
21.06.17
✎
15:31
|
Начальный остаток тоже надо выбирать и включать его в одну группу итогов с конечным остатком
|
|||
2
vicof
21.06.17
✎
15:31
|
И вообще, осаттки на каждый день в скд получаются более элегантно
|
|||
3
polosov
21.06.17
✎
15:32
|
(0) Откуда ж вы лезете, сегодня...
|
|||
4
serg-lom89
21.06.17
✎
15:36
|
(2) ???
|
|||
5
vicof
21.06.17
✎
15:37
|
(4) Через два набора данных и связи. Погуглить за тебя?
|
|||
6
serg-lom89
21.06.17
✎
15:40
|
(5) я думаю через 2 набора дольше маслать будет
|
|||
7
vicof
21.06.17
✎
15:45
|
(6) Да нихрена, испробовано не один раз.
|
|||
8
serg-lom89
21.06.17
✎
15:49
|
(7) и на больших объемах ведет себя нормально ,хотите сказать?
|
|||
9
polosov
21.06.17
✎
15:51
|
||||
10
d4rkmesa
21.06.17
✎
15:52
|
Можно попробовать для начала дополнение включить в группировке СКД: https://its.1c.ru/db/metod8dev/content/1587/hdoc
|
|||
11
vicof
21.06.17
✎
15:52
|
(8) Нормально
|
|||
12
serg-lom89
22.06.17
✎
10:20
|
все равно не вариант...если еще добавить цены товаров(стоимостную оценку склада,то тормоза жуткие)
|
|||
13
serg-lom89
22.06.17
✎
10:22
|
оно же будет из одного набора к другому обращаться...вариант хороший,просто но не быстрый
|
|||
14
PRO100 NigGaZ
22.06.17
✎
10:25
|
А можно к производственному календарю присобачить остатки, не?
он же есть почти везде |
|||
15
vicof
22.06.17
✎
10:29
|
(12) Надо аккуратно механизм использовать, отборы добавлять, а не хреначить соединения по двум наборам.
|
|||
16
serg-lom89
22.06.17
✎
10:30
|
(15) с отборами понятно..но когда надо будет видно видеть всю картину ,в общем
|
|||
17
serg-lom89
22.06.17
✎
10:31
|
(16) вот тут и получается затык...что долго считает
|
|||
18
serg-lom89
22.06.17
✎
10:48
|
может у кого есть идеи как получить именно в запросе?
|
|||
19
_Batoo
22.06.17
✎
11:00
|
Чем (10) не устраивает? Аккуратно настроить роли для полей и СКД сама посчитает остатки на каждый день.
|
|||
20
1dvd
22.06.17
✎
11:08
|
Тестовое задание при собеседовании?
|
|||
21
serg-lom89
22.06.17
✎
11:24
|
(20) нет...отчет делаю)
|
|||
22
undertaker
22.06.17
✎
11:37
|
задача уже можно сказать классическая.
// таблица основная, в которой есть периоды ВЫБРАТЬ НалоговыйОбороты.Регистратор, НалоговыйОбороты.СуммаНУОборотКт, НалоговыйОбороты.Период, НалоговыйОбороты.Субконто1 КАК ОсновноеСредство, НалоговыйОбороты.КорСчет КАК КорСчет ПОМЕСТИТЬ ХозрасчетныйОбороты ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты( &ДатаНач, &ДатаКон, Регистратор, Счет В ИЕРАРХИИ (&Счет02) И НЕ Счет = &Счет09, &ВидСубконто, Организация = &Организация И Субконто1 = &ОС И КорСубконто1.ВидРасходовНУ = &Амортизация, , &ВидКорСубконто) КАК НалоговыйОбороты ; // получаем хитро остатки // в первом запросе - оборот, потом он сложится с начальным остатком из второго запроса //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КОНЕЦПЕРИОДА(ХозрасчетныйОстаткиИОбороты.Период, МЕСЯЦ) КАК Период, ХозрасчетныйОстаткиИОбороты.Субконто1 КАК ОсновноеСредство, ХозрасчетныйОстаткиИОбороты.СуммаНУОборотДт КАК СуммаНачальныйОстатокДт ПОМЕСТИТЬ врНачальнаяСтоимостьПериодами ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКон, Месяц, Счет В ИЕРАРХИИ (&Счет01_), &ВидСубконто, Субконто1 = &Субконто1, , ) КАК ХозрасчетныйОстаткиИОбороты ОБЪЕДИНИТЬ ВСЕ // начальный остаток для того чтобы сложить его с оборотом (см. выше) ВЫБРАТЬ КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&ДатаНач, МЕСЯЦ), ДЕНЬ, -1), МЕСЯЦ), ХозрасчетныйОстаткиИОбороты.Субконто1, ХозрасчетныйОстаткиИОбороты.СуммаНУОстатокДт ИЗ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаНач, Счет В ИЕРАРХИИ (&Счет01_), &ВидСубконто, Субконто1 = &Субконто1) КАК ХозрасчетныйОстаткиИОбороты ; // получаем остатки на каждую дату периода //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХозрасчетныйОбороты.Период, СУММА(врНачальнаяСтоимостьПериодами.СуммаНачальныйОстатокДт) КАК СуммаНачальныйОстатокДт ИЗ ХозрасчетныйОбороты КАК ХозрасчетныйОбороты ЛЕВОЕ СОЕДИНЕНИЕ врНачальнаяСтоимостьПериодами КАК врНачальнаяСтоимостьПериодами ПО ХозрасчетныйОбороты.ОсновноеСредство = врНачальнаяСтоимостьПериодами.ОсновноеСредство И (врНачальнаяСтоимостьПериодами.Период <= ХозрасчетныйОбороты.Период) СГРУППИРОВАТЬ ПО ХозрасчетныйОбороты.Период, ХозрасчетныйОбороты.ОсновноеСредство Еще вариант http://savepic.ru/14509736.jpg |
|||
23
serg-lom89
22.06.17
✎
11:45
|
(22) ну так я вот как в ссылке делаю...вот и возникает вопрос отпимизации ...(именно так и делаю как в ссылке)
|
|||
24
serg-lom89
22.06.17
✎
15:03
|
есть еще такой вопрос..
получается когда я считаю литраж.. Формула Движения.КоличествоКонечныйОстаток * Движения.Номенклатура.ЕдиницаХраненияОстатков.Литраж то за дней 25 ,выбивает ошибку "Ошибка SDBL" |
|||
25
МихаилМ
22.06.17
✎
15:11
|
(24)
другой вопрос в отдельной ветке задайте. не устраивайте винигрета |
|||
26
serg-lom89
22.06.17
✎
15:19
|
(25) ок.спс)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |