Имя: Пароль:
1C
1С v8
Помогите разобратся с запросом.
, , ,
0 nulback
 
18.10.17
08:46
Всем доброго дня. Уважаемые помогите разобратся с запросом, если выбрать 1 месяц в качестве периода, то все ок выводиться 1 строка за 1 месяц, если 2 месяца, то начинает двоить данные. Очень прошу помощи, уже не знаю что с данным отчетом делать.


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


1 catena
 
18.10.17
08:50
Какие данные двоит? Начальный и конечный остаток? Правильно, у вас же дополнение - месяц. Что в итоге нужно-то?
2 wondkind
 
18.10.17
08:51
(1) вы не понимаете! Всё должно работать!
3 nulback
 
18.10.17
08:55
(1) в итоге если я данный запрос пихаю в компоновку, то нач и кон остатки правильные, а обороты задвоенные
4 DrShad
 
18.10.17
08:57
(3) а где у тебя тут обороты? есть только ДТ по ОС и Кт по износу
5 DrShad
 
18.10.17
08:58
и да, СКД умеет сама считать остатки, нужно только роли правильно указать
6 Fedor-1971
 
18.10.17
09:09
(0) и в чём проблема?
    РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(&ПериодКон, ) КАК ПервоначальныеСведенияОС - 1 запись по ОС
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ПериодНач, &ПериодКон, Месяц, , Счет В (&СчетАморт), &СубконтоОС, ) КАК Амортизация - за каждый месяц по 1 записи, т.е. за 2 месяца получишь 2 строки и раздвоишь первоначальную одну строку
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ПериодНач, &ПериодКон, Месяц, , Счет В (&Счет), &СубконтоОС, ) КАК СтоимостьОС - аналогично


Как вариант - периодичность Месяц измени на Период и получишь одну запись за конкретный период
7 nulback
 
18.10.17
09:09
(5) да роли я и раставил, и оно правильно считает остатки, а вот для оборота роли нет и оно его суммирует, т.к. этот же запрос выдает результатом 2 строки
8 nulback
 
18.10.17
09:12
(6) мне нужно по месяцам развернуть вправо, при периодичности "Период" он пропадает из полей вирт таблиц
9 nulback
 
18.10.17
09:22
получается т.к. для остатков СКД считает сама, то для данных полей Амортизация.СуммаОборотКт и СтоимостьОС.СуммаОборотДт, из-за того что запрос выдает по 2 строки, в компоновке эти поля просто суммируются. в итоге задвоение. Получается мне в ресурсах СКД по этим полям убрать сумму, но у меня тогда не посчитается итоги? Как быть?
10 VladZ
 
18.10.17
09:23
(0) Первое, что нужно сделать - это подумать.
11 DrShad
 
18.10.17
09:24
(9) периоды нужно рассчитывать средствами СКД, а не запросом
12 Fedor-1971
 
18.10.17
09:24
(8) не очень силён в отчётах на СКД, но, насколько помню, для такого вывода нужно правильно указать компоновку, что ресурс, а что колонка.
(9) решай задачи по порядку, получи сначала вид отчёта какой тебе нужно, с итогами потом разбираться будешь
13 nulback
 
18.10.17
09:29
(11) это как? подскажи.
14 nulback
 
18.10.17
09:34
(12) так компоновку и хочу в таком виде, но для полей оборотов у компоновки нет ролей.
15 nulback
 
18.10.17
09:34
(10) так я уже думаю 3-й день, нифига не получается.
16 DrShad
 
18.10.17
09:37
(13)http://SSMaker.ru/c112c914/
ищущий да обрящет
17 catena
 
18.10.17
09:37
Надо вам почитать. Хрусталеву, например. СКД методом тыка не освоишь.
18 DrShad
 
18.10.17
09:38
(15) хоть бы видео уроки посмотрел по компоновке, гнать таких из профессии нужно
19 nulback
 
18.10.17
09:49
(18) мне что периодичность секунду выбрать? у меня тогда разворот вправо там 2 поля по периоду, 1 число месяца и последнее число месяца (конец дня), а мне надо 1 колонка и все равно даже в таком случае Амортизация.СуммаОборотКт и СтоимостьОС.СуммаОборотДт задвоены.
20 Fedor-1971
 
18.10.17
09:50
(14) Например так:
выбираешь данные с
НачалоПериода(Амортизация.Период, Месяц) и в соединении используешь не ОстаткиИОбороты, а сами записи и в условии соединения то же используешь НачалоПериода. В результате получишь ворох записей, но с однаковым периодом отнесения, а дальше в схеме компоновки указываешь периодичность

(17) с чтения учебников нужно начинать, а ТС по ходу что-то исправляет или ваяет "на основе" старого нечто новое. Пробует получить результат с наскоку
21 nulback
 
18.10.17
09:51
(20) так мне нужны именно обороты по счету и остатки, почему мне не использовать данную вирт таблицу.
22 nulback
 
18.10.17
09:53
(20) не нашел ниодного толкового учебника в котором было бы нормально описано, все обьяснено поверхностно, по крайней мере у Радченко в книге.
23 nulback
 
18.10.17
09:55
(18) по этому методу получаю
данные за 01,01,2017
Амортизация.СуммаОборотКт = 0;
Амортизация.СуммаКонечныйОстатокКт = 0;
данные за 31.01.17 23:59:59
Амортизация.СуммаОборотКт = 3 008,94;
Амортизация.СуммаКонечныйОстатокКт = 1 504,47;
24 Филиал-msk
 
18.10.17
09:56
(22) Учебники виноваты, точно-точно.
25 nulback
 
18.10.17
09:58
(24) я не говорю что они виноваты, да и к сути вопроса не относится.
26 Fedor-1971
 
18.10.17
09:58
(19) идея в следующем: запросом получить сырые данные, приведённые к одной дате, например, к началу каждого месяца периода потом средствами СКД уже разделять их по периодам при выводе

(21) ты уже попробовал, не получилось. В (11) дело сказали, пусть СКД само разбирается что куда отнести, максимум чем можно помочь - привести периоды к одной дате (что не обязательно)

(22) Е.Ю.Хрусталёва "Разработка сложных отчётов в 1С Предприятие 8 система компоновки данных" - толковая книжка
27 nulback
 
18.10.17
10:05
(26) да книга хорошая, ее и читаю сейчас, вы мне предлагаете варианты, а я их проверяю и выдаю то что вижу перед глазами у себя на экране, выше писал данные которые выводит отчет.
28 nulback
 
18.10.17
10:07
в итоге имею задвоенный оборот, т.к. СКД умеет расчитывать остатки по ролям, а обороты не умеет, т.е. получаем запросом 2 строки данных, СКД расчитал сам нач и кон остаток, а оборот ссумировал, как то не очень.
29 nulback
 
18.10.17
10:09
могу только искренне поблагодарить всех за помощь, реально, за то что не пропустили вопрос новичка и отвечаете на него, но на данный момент я понял что оборот без танцев с бубном в СКД не сделать правильно.
30 DrShad
 
18.10.17
12:59
а тебе не нужно в запросе две строки
31 nulback
 
18.10.17
15:49
(30) они сами появляются если период больше чем месяц, например данные за январь месяц все отлично красиво - 1 строка, данные все верны, данные за январь и февраль уже 4 строки, по 2 за каждый месяц
32 nulback
 
18.10.17
15:50
(31) в итоге если строим за 1 месяц все правильно, 1 строка, больше чем 1 месяц период отчета. все хана.
33 DrShad
 
18.10.17
15:56
ну не выбирай ты в запросе периоды
34 nulback
 
18.10.17
16:49
(33) а как без выбора периодчиности мне по периоду развернуть вправо тогда отчет, поля период то нет?
35 DrShad
 
18.10.17
16:57
(34) за тебя все сделать?
36 DrShad
 
18.10.17
17:29
http://SSMaker.ru/c4298c4f/
все отлично считается
37 nulback
 
19.10.17
08:15
(36) а у меня не считается.