|
СКД. Остатки и обороты на каждый день. Даже если не было оборотов. | ☑ | ||
---|---|---|---|---|
0
Z_Z
27.08.13
✎
15:12
|
Добрый день. Подскажите, возможно ли вывести в СКД остатки на начало дня, оборот и остаток на конец дня. Даже если не было оборотов в этот день?
Интересуют больше обороты. Так как остатки на каждый день по этой методике выводятся без проблем. http://1c-wiki.ru/wiki/Ежедневные_остатки |
|||
1
Xammsa
16.09.13
✎
15:52
|
Up.
То же самое интересует. Если нет оборотов, должен получить ноль, а он просто не выбирает оборотов за период. Выбираю обороты нарастающим итогом помесячно, так если в каком-то месяце нет оборотов, то и нарастающий итог за этот месяц не считает! ВЫБРАТЬ ХозрасчетныйОстаткиИОбороты.Период, ХозрасчетныйОстаткиИОбороты.Субконто1, СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК ОборотДт, СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК ОборотКт ПОМЕСТИТЬ ВТ_Обороты ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Дата1, &Дата2, Месяц, , Счет = &Счет0101, , ) КАК ХозрасчетныйОстаткиИОбороты СГРУППИРОВАТЬ ПО ХозрасчетныйОстаткиИОбороты.Период, ХозрасчетныйОстаткиИОбороты.Субконто1 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Обороты.Период КАК Период, ВТ_Обороты.Субконто1 КАК Субконто1, ВТ_Обороты.ОборотДт, ВТ_Обороты.ОборотКт, СУММА(ВТ_Обороты1.ОборотДт) КАК ОборотДтНарастающий, СУММА(ВТ_Обороты1.ОборотКт) КАК ОборотКтНарастающий ИЗ ВТ_Обороты КАК ВТ_Обороты ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК ВТ_Обороты1 ПО ВТ_Обороты.Период >= ВТ_Обороты1.Период И ВТ_Обороты.Субконто1 = ВТ_Обороты1.Субконто1 СГРУППИРОВАТЬ ПО ВТ_Обороты.Период, ВТ_Обороты.Субконто1, ВТ_Обороты.ОборотДт, ВТ_Обороты.ОборотКт УПОРЯДОЧИТЬ ПО Субконто1, Период АВТОУПОРЯДОЧИВАНИЕ |
|||
2
Xammsa
16.09.13
✎
15:55
|
Например, оборот по счету:
Январь: 1000 Февраль: 0 Март: 500 Результат запроса: Январь: оборот - 1000, нарастающий - 1000 Февраль: данные отсутствуют вообще Март: оборот: - 500, нарастающий - 1500 |
|||
3
Bober
16.09.13
✎
15:59
|
(0) сделать "простой" запрос к регистру, и когда добавишь группировку по дню сделать дополнение периода.
|
|||
4
ОбычныйЧеловек
16.09.13
✎
16:00
|
в СКД "ТипДополнения" у группировки разве не работает?
|
|||
5
Xammsa
16.09.13
✎
16:18
|
(3) Не понял
(4) Это лишь часть большого запроса, по этим данным группировок не будет. Поэтому нужны нарастающие итоги, так сказать, в чистом виде. |
|||
6
Xammsa
16.09.13
✎
16:33
|
(3) Если что-то вроде такого
http://www.1c-pro.ru/topic17843.html Так же не получается нихрена. Отсутствуют записи за периоды, в которых не было оборотов |
|||
7
catena
16.09.13
✎
16:37
|
(6)Соединить с таблицей, содержащей все нужные периоды.
|
|||
8
balak05
16.09.13
✎
16:40
|
(1) Null приведи к нулю
|
|||
9
c00Lo
16.09.13
✎
16:48
|
[:|||||:]
(7)Дополнение периодов в скд уже перестало работать?))) |
|||
10
catena
16.09.13
✎
16:49
|
(9)И каде ж тут за СКД?
|
|||
11
catena
16.09.13
✎
16:49
|
(9)Пардон, сама слепая :)
|
|||
12
Xammsa
16.09.13
✎
17:05
|
(7) А каким образом соединить? И так уже, и эдак, и с Движениями и без.
Не выводит оборотов за февраль и все тут. ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&Дата1, МЕСЯЦ, 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 <= РАЗНОСТЬДАТ(&Дата1, &Дата2, МЕСЯЦ) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ХозрасчетныйОстаткиИОбороты.Период, ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1, ХозрасчетныйОстаткиИОбороты.СуммаОборотДт КАК ОборотДт, ХозрасчетныйОстаткиИОбороты.СуммаОборотКт КАК ОборотКт, ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт ИЗ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Дата1, &Дата2, Месяц, Движения, Счет = &Счет0102, , ) КАК ХозрасчетныйОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Даты КАК ВТ_Даты ПО ВТ_Даты.Период = ХозрасчетныйОстаткиИОбороты.Период УПОРЯДОЧИТЬ ПО Субконто1 АВТОУПОРЯДОЧИВАНИЕ |
|||
13
lapinio
16.09.13
✎
17:07
|
В настройках СКД есть Дополнять периодами в группировке например день.
|
|||
14
spacehelp
16.09.13
✎
17:09
|
Можно так:
ВЫБРАТЬ ВашЗапрос.Период, ... ВашЗапрос.Субконто1 ПОМЕСТИТЬ ДанныеВашЗапросНарастающимИтогом ИЗ ... ; ////////////////////////////////////////////////////////////ВЫБРАТЬ 0 КАК Цифра ПОМЕСТИТЬ Единицы ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 9 ; ////////////////////////////////////////////////////////////ВЫБРАТЬ Десятки.Цифра * 10 КАК Цифра ПОМЕСТИТЬ Десятки ИЗ Единицы КАК Десятки ГДЕ Десятки.Цифра * 10 < РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) ; ////////////////////////////////////////////////////////////ВЫБРАТЬ Сотни.Цифра * 10 КАК Цифра ПОМЕСТИТЬ Сотни ИЗ Десятки КАК Сотни ГДЕ Сотни.Цифра * 10 < РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) ; ////////////////////////////////////////////////////////////ВЫБРАТЬ Тысячи.Цифра * 10 КАК Цифра ПОМЕСТИТЬ Тысячи ИЗ Сотни КАК Тысячи ГДЕ Тысячи.Цифра * 10 < РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) ; ////////////////////////////////////////////////////////////ВЫБРАТЬ ДесяткиТысяч.Цифра * 10 КАК Цифра ПОМЕСТИТЬ ДесяткиТысяч ИЗ Тысячи КАК ДесяткиТысяч ГДЕ ДесяткиТысяч.Цифра * 10 < РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) ; ////////////////////////////////////////////////////////////ВЫБРАТЬ СотниТысяч.Цифра * 10 КАК Цифра ПОМЕСТИТЬ СотниТысяч ИЗ ДесяткиТысяч КАК СотниТысяч ГДЕ СотниТысяч.Цифра * 10 < РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) ; ////////////////////////////////////////////////////////////ВЫБРАТЬ ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, СотниТысяч.Цифра + ДесяткиТысяч.Цифра + Тысячи.Цифра + Сотни.Цифра + Десятки.Цифра + Единицы.Цифра) КАК ДатаПериода ПОМЕСТИТЬ Даты ИЗ СотниТысяч КАК СотниТысяч, ДесяткиТысяч КАК ДесяткиТысяч, Тысячи КАК Тысячи, Сотни КАК Сотни, Десятки КАК Десятки, Единицы КАК Единицы ГДЕ СотниТысяч.Цифра + ДесяткиТысяч.Цифра + Тысячи.Цифра + Сотни.Цифра + Десятки.Цифра + Единицы.Цифра <= РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, ДЕНЬ) ; ////////////////////////////////////////////////////////////ВЫБРАТЬ Даты.ДатаПериода КАК ДатаПериода, ... ДанныеВашЗапросНарастающимИтогом.Субконто1 ИЗ Даты КАК Даты ЛЕВОЕ СОЕДИНЕНИЕ ДанныеВашЗапросНарастающимИтогом КАК ДанныеВашЗапросНарастающимИтогом ПО Даты.ДатаПериода = ДанныеВашЗапросНарастающимИтогом.Период УПОРЯДОЧИТЬ ПО ... ; |
|||
15
catena
16.09.13
✎
17:15
|
(12)Если чисто запросом:
(периоды можете сами задавать, как угодно, я не стала с линейками заморачиваться) ВЫБРАТЬ ХозрасчетныйОстаткиИОбороты.Период, ХозрасчетныйОстаткиИОбороты.Субконто1, СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотДт) КАК ОборотДт, СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборотКт) КАК ОборотКт ПОМЕСТИТЬ ВТ_Обороты ИЗ РегистрБухгалтерии.Типовой.ОстаткиИОбороты(&Дата1, &Дата2, Месяц, , Счет = &Счет0101, , ) КАК ХозрасчетныйОстаткиИОбороты СГРУППИРОВАТЬ ПО ХозрасчетныйОстаткиИОбороты.Период, ХозрасчетныйОстаткиИОбороты.Субконто1 ; Выбрать Периоды.Период,ВТ_Обороты.Субконто1 поместить втПериоды из(Выбрать различные НачалоПериода(ДатаКалендаря,Месяц) как период из РегистрСведений.РегламентированныйПроизводственныйКалендарь где ДатаКалендаря между &Дата1 и &Дата2) как периоды , (выбрать различные Субконто1 из ВТ_Обороты) как ВТ_Обороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втПериоды.Период КАК Период, втПериоды.Субконто1 КАК Субконто1, ЕстьNULL(ВТ_Обороты.ОборотДт,0), ЕстьNULL(ВТ_Обороты.ОборотКт,0), СУММА(ЕстьNULL(ВТ_Обороты1.ОборотДт,0)) КАК ОборотДтНарастающий, СУММА(ЕстьNULL(ВТ_Обороты1.ОборотКт,0)) КАК ОборотКтНарастающий ИЗ втПериоды как втПериоды Левое соединение ВТ_Обороты КАК ВТ_Обороты по ВТ_Обороты.Период = втПериоды.Период и ВТ_Обороты.Субконто1 = втПериоды.Субконто1 ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК ВТ_Обороты1 ПО втПериоды.Период >= ВТ_Обороты1.Период И втПериоды.Субконто1 = ВТ_Обороты1.Субконто1 СГРУППИРОВАТЬ ПО втПериоды.Период, втПериоды.Субконто1, ВТ_Обороты.ОборотДт, ВТ_Обороты.ОборотКт УПОРЯДОЧИТЬ ПО Субконто1, Период АВТОУПОРЯДОЧИВАНИЕ |
|||
16
Xammsa
17.09.13
✎
14:30
|
Благодарю, получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |