Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 июл 2021, 04:50

Отчет в СКД

Автор Ивашка, 05 мар 2021, 12:10

0 Пользователей и 1 гость просматривают эту тему.

Ивашка

Приветствую!! в итоге мне нужен такой отчет такого вида:
https://disk.yandex.ru/i/C_J6B3SBoTKhKA
ВЫБРАТЬ
ОборотыПоЭлементамБэклогаОбороты.ЭлементБэклога.Проект КАК Проект,
АИ_БюджетПроектаСрезПоследних.Часы * АИ_БюджетПроектаСрезПоследних.СтавкаСтоимостиЧаса КАК Бюджет,
СУММА(ОборотыПоЭлементамБэклогаОбороты.ОценкаОборот) КАК План,
СУММА(ОборотыПоЭлементамБэклогаОбороты.ФактОборот) КАК Факт,
НАЧАЛОПЕРИОДА(АИ_БюджетПроектаСрезПоследних.Период, МЕСЯЦ) КАК ДатаПериода
ИЗ
РегистрНакопления.ОборотыПоЭлементамБэклога.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, Месяц, ) КАК ОборотыПоЭлементамБэклогаОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АИ_БюджетПроекта.СрезПоследних({(&Период)}, ) КАК АИ_БюджетПроектаСрезПоследних
ПО ОборотыПоЭлементамБэклогаОбороты.ЭлементБэклога.Проект = АИ_БюджетПроектаСрезПоследних.Проект

СГРУППИРОВАТЬ ПО
ОборотыПоЭлементамБэклогаОбороты.ЭлементБэклога.Проект,
АИ_БюджетПроектаСрезПоследних.Часы * АИ_БюджетПроектаСрезПоследних.СтавкаСтоимостиЧаса,
НАЧАЛОПЕРИОДА(АИ_БюджетПроектаСрезПоследних.Период, МЕСЯЦ)

почти получилось в СКД, когда я задаю период, то возникает ощибка в несоотвествий параметров в регистре сведений
https://disk.yandex.ru/d/uF3bxZfYdSfOYw внешний отчет

LexaK

скорее всего, вот здесь
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АИ_БюджетПроекта.СрезПоследних({(&Период)}, ) КАК АИ_БюджетПроектаСрезПоследних
вместо &Период у вас Тип Стандартный период, а должна быть дата именно Тип - Дата
ответ Понравился? (в смысле пригодился?)

Ивашка

Цитата: LexaK от 05 мар 2021, 12:23
скорее всего, вот здесь
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АИ_БюджетПроекта.СрезПоследних({(&Период)}, ) КАК АИ_БюджетПроектаСрезПоследних
вместо &Период у вас Тип Стандартный период, а должна быть дата именно Тип - Дата
ошибка ушла, но сейчас в шапке отчета только Март 2021, а остальных нету
Добавлено: 05 мар 2021, 15:14


Цитата: LexaK от 05 мар 2021, 12:23
скорее всего, вот здесь
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АИ_БюджетПроекта.СрезПоследних({(&Период)}, ) КАК АИ_БюджетПроектаСрезПоследних
вместо &Период у вас Тип Стандартный период, а должна быть дата именно Тип - Дата
значит если тип будет страндартный период, то не с хтим типрм работать отчет?

LexaK

что бы отчет заработал не только за март,
это вам надо основательно запрос переделать
сначала сформируйте временную таблицу БюджетыПроектовПоМесяцам
поля
Период (начало месяца)
Проект,
Бюджет

а затем его соедините с Оборотами
по 1.Периоду и 2.Проекту
ответ Понравился? (в смысле пригодился?)

Ивашка

Цитата: LexaK от 05 мар 2021, 17:58
что бы отчет заработал не только за март,
это вам надо основательно запрос переделать
сначала сформируйте временную таблицу БюджетыПроектовПоМесяцам
поля
Период (начало месяца)
Проект,
Бюджет

а затем его соедините с Оборотами
по 1.Периоду и 2.Проекту
А можете показать как это выглядит, просто с временными таблицами не очень у меня

Ивашка

Цитата: LexaK от 05 мар 2021, 12:23вместо &Период у вас Тип Стандартный период, а должна быть дата именно Тип - Дата
а зачем с типом "Стандартный период" не работает?

LexaK

очень не понятно как без базы, ее структуры и данных, написать правильный запрос
вот один из приблизительных вариантов, т.е просто пример, не факт что сразу будет работать, смотрите/проверяйте сначала в консоли

ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(Рег.Период, МЕСЯЦ) КАК Период,
Рег.Проект,
//зависит от того что у вас в регистре
максимум(Рег.Часы * Рег.СтавкаСтоимостиЧаса) КАК Бюджет
поместить втБюджет
из
РегистрСведений.АИ_БюджетПроекта рег
где
    Рег.Период между &НачалоПериода и &КонецПериода
сгруппировать по
    НАЧАЛОПЕРИОДА(Рег.Период, МЕСЯЦ),
Рег.Проект
;

ВЫБРАТЬ
втБюджет.Период,
втБюджет.Бюджет,
втБюджет.Проект,
    Сумма(РегОбороты.ОценкаОборот) КАК План,
    Сумма(РегОбороты.ФактОборот) КАК Факт

ИЗ
втБюджет
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрНакопления.ОборотыПоЭлементамБэклога.Обороты(&НачалоПериода, &КонецПериода, Месяц, ) КАК РегОбороты
        ПО РегОбороты.Период = втБюджет.Период
//почему Проект не измерение, если по нему учет?
        и  РегОбороты.ЭлементБэклога.Проект = втБюджет.Проект

СГРУППИРОВАТЬ ПО
втБюджет.Период,
втБюджет.Бюджет,
втБюджет.Проект

ответ Понравился? (в смысле пригодился?)

Ивашка

Цитата: LexaK от 09 мар 2021, 13:08очень не понятно как без базы, ее структуры и данных, написать правильный запрос
https://disk.yandex.ru/d/-bM4vlb-7vK8Iw база

LexaK

ааа, другое дело, только данных по бюджетам нет, всего 2 записи и обе за март и ни с одним оборотом не пересекается,
вот новый запрос, хоть что-то как-то возвращает 


ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(Рег.Период, МЕСЯЦ) КАК Период,
Рег.Проект,
//зависит от того что у вас в регистре
максимум(Рег.Часы * Рег.СтавкаСтоимостиЧаса) КАК Бюджет
поместить втБюджет
из
РегистрСведений.АИ_БюджетПроекта рег
где
    НАЧАЛОПЕРИОДА(Рег.Период, МЕСЯЦ) между &НачалоПериода и &КонецПериода
сгруппировать по
    НАЧАЛОПЕРИОДА(Рег.Период, МЕСЯЦ),
Рег.Проект
;

ВЫБРАТЬ
ЕстьNull(втБюджет.Период,РегОбороты.Период) как Период,
ЕстьNull(втБюджет.Проект,РегОбороты.ЭлементБэклога.Проект) как Проект,
ЕстьNull(втБюджет.Бюджет,0) как Бюджет,
    Сумма(ЕстьNull(РегОбороты.ОценкаОборот,0)) КАК План,
    Сумма(ЕстьNull(РегОбороты.ФактОборот,0)) КАК Факт

ИЗ
втБюджет
полное СОЕДИНЕНИЕ
    РегистрНакопления.ОборотыПоЭлементамБэклога.Обороты(&НачалоПериода,&КонецПериода, Месяц, ) КАК РегОбороты
        ПО РегОбороты.Период = втБюджет.Период
//почему Проект не измерение, если по нему учет?
        и  РегОбороты.ЭлементБэклога.Проект = втБюджет.Проект

СГРУППИРОВАТЬ ПО
ЕстьNull(втБюджет.Период,РегОбороты.Период),
ЕстьNull(втБюджет.Проект,РегОбороты.ЭлементБэклога.Проект),
ЕстьNull(втБюджет.Бюджет,0)
ответ Понравился? (в смысле пригодился?)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск