Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:05

Проблема с отчетом

Автор Sheriff, 05 мая 2018, 11:32

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

Sheriff

Всем доброго времени суток!
Столкнулись с такой проблемой, есть отчет
Процедура Отчет(ТабДок, ДатаКон, ДатаНач, Организация) Экспорт
ТехОбслужОборуд = Новый СписокЗначений;
ТехОбслужОборуд.Добавить(Справочники.СтатьиЗатрат.НайтиПоКоду("CZ-000014"));
ТехОбслужОборуд.Добавить(Справочники.СтатьиЗатрат.НайтиПоКоду("CZ-000037"));

Макет = ВнешнийОтчетОбъект.ПолучитьМакет("Отчет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МЕСЯЦ(ПоступлениеТоваровУслуг.Дата) КАК Дата,
| ПоступлениеТоваровУслугУслуги.СубконтоЗатратБУ1 КАК Подразделение,
| ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект КАК РемонтируемыйОбъект,
| ПоступлениеТоваровУслугУслуги.Содержание,
| ПоступлениеТоваровУслугУслуги.СубконтоЗатратБУ3 КАК СтатьяЗатрат,
| ПоступлениеТоваровУслугУслуги.Номенклатура КАК Номенклатура,
| ПоступлениеТоваровУслугУслуги.Сумма КАК Сумма,
| ПоступлениеТоваровУслуг.ВалютаДокумента КАК ВалютаДокумента,
| ПоступлениеТоваровУслуг.Дата КАК Дата1
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Услуги КАК ПоступлениеТоваровУслугУслуги
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
| ПО ПоступлениеТоваровУслугУслуги.Ссылка = ПоступлениеТоваровУслуг.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ТиповойОбороты.Субконто1 КАК Субконто1,
| ТиповойОбороты.Субконто3 КАК Субконто3,
| ТиповойОбороты.КорСубконто1 КАК КорСубконто1
| ИЗ
| РегистрБухгалтерии.Типовой.Обороты(&ДатаНач, &ДатаКон, Запись, Счет В ИЕРАРХИИ (&Счет800), , Организация = &Организация, КорСчет В ИЕРАРХИИ (&Счет13), ) КАК ТиповойОбороты
| ГДЕ
| ТиповойОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
|
| СГРУППИРОВАТЬ ПО
| ТиповойОбороты.Субконто1,
| ТиповойОбороты.КорСубконто1,
| ТиповойОбороты.Субконто3) КАК ВложенныйЗапрос
| ПО ПоступлениеТоваровУслугУслуги.Номенклатура = ВложенныйЗапрос.КорСубконто1.Ссылка
|ГДЕ
| ПоступлениеТоваровУслуг.ПометкаУдаления = ЛОЖЬ
| И ПоступлениеТоваровУслуг.Проведен = ИСТИНА
| И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект
| И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект2
| И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект3
| И ПоступлениеТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И ПоступлениеТоваровУслугУслуги.СчетЗатратБУ В ИЕРАРХИИ(&Счет800)
|
|ОБЪЕДИНИТЬ ВСЕ
|
|ВЫБРАТЬ
| МЕСЯЦ(ПоступлениеТоваровУслуг.Дата),
| ПоступлениеТоваровУслугУслуги.СубконтоЗатратБУ2,
| ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект,
| ПоступлениеТоваровУслугУслуги.Содержание,
| ПоступлениеТоваровУслугУслуги.СубконтоЗатратБУ1,
| ПоступлениеТоваровУслугУслуги.Номенклатура,
| ПоступлениеТоваровУслугУслуги.Сумма,
| ПоступлениеТоваровУслуг.ВалютаДокумента,
| ПоступлениеТоваровУслуг.Дата
|ИЗ
| Документ.ПоступлениеТоваровУслуг.Услуги КАК ПоступлениеТоваровУслугУслуги
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
| ПО ПоступлениеТоваровУслугУслуги.Ссылка = ПоступлениеТоваровУслуг.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ТиповойОбороты.Субконто1 КАК Субконто1,
| ТиповойОбороты.Субконто3 КАК Субконто3,
| ТиповойОбороты.КорСубконто1 КАК КорСубконто1
| ИЗ
| РегистрБухгалтерии.Типовой.Обороты(&ДатаНач, &ДатаКон, Запись, Счет В ИЕРАРХИИ (&Счет7200), , Организация = &Организация, КорСчет В ИЕРАРХИИ (&Счет13), ) КАК ТиповойОбороты
| ГДЕ
| ТиповойОбороты.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
|
| СГРУППИРОВАТЬ ПО
| ТиповойОбороты.Субконто1,
| ТиповойОбороты.КорСубконто1,
| ТиповойОбороты.Субконто3) КАК ВложенныйЗапрос
| ПО ПоступлениеТоваровУслугУслуги.Номенклатура = ВложенныйЗапрос.КорСубконто1
|ГДЕ
| ПоступлениеТоваровУслуг.ПометкаУдаления = ЛОЖЬ
| И ПоступлениеТоваровУслуг.Проведен = ИСТИНА
| И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект
| И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект2
| И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект3
| И ПоступлениеТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
| И ПоступлениеТоваровУслугУслуги.СчетЗатратБУ В ИЕРАРХИИ(&Счет7200)
| И ПоступлениеТоваровУслугУслуги.СубконтоЗатратБУ1 В(&ТехОбслужОборуд)
|
|УПОРЯДОЧИТЬ ПО
| Дата,
| РемонтируемыйОбъект,
| СтатьяЗатрат,
| Номенклатура
|ИТОГИ
| СУММА(Сумма)
|ПО
| ОБЩИЕ,
| СтатьяЗатрат
|АВТОУПОРЯДОЧИВАНИЕ";

Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
Запрос.УстановитьПараметр("Организация", Организация);
Запрос.УстановитьПараметр("РемонтируемыйОбъект", Справочники.Номенклатура.ПустаяСсылка());
Запрос.УстановитьПараметр("РемонтируемыйОбъект2", Справочники.ОсновныеСредства.ПустаяСсылка());
Запрос.УстановитьПараметр("РемонтируемыйОбъект3", Справочники.ПодразделенияОрганизаций.ПустаяСсылка());
Запрос.УстановитьПараметр("Счет13", ПланыСчетов.Типовой.Запасы);
Запрос.УстановитьПараметр("Счет7200", ПланыСчетов.Типовой.АдминистративныеРасходы_);
Запрос.УстановитьПараметр("Счет800", ПланыСчетов.Типовой.СчетаПроизводственногоУчета);
Запрос.УстановитьПараметр("ТехОбслужОборуд", ТехОбслужОборуд);

Результат = Запрос.Выполнить();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();

ВыборкаДетали = Результат.Выбрать();

Пока ВыборкаДетали.Следующий() Цикл
Если ВыборкаДетали.РемонтируемыйОбъект <> Неопределено Тогда
ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
Если ВыборкаДетали.ВалютаДокумента<>Константы.ВалютаРегламентированногоУчета.Получить()  и Не ЗначениеНеЗаполнено(ВыборкаДетали.ВалютаДокумента) Тогда
    СтурктураКУрса = ПолучитьКурсВалюты(ВыборкаДетали.ВалютаДокумента, ВыборкаДетали.Дата1 );
ОбластьДетальныхЗаписей.Параметры.Сумма =ВыборкаДетали.Сумма*СтурктураКУрса.Курс; 


КонецЕсли;
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());

КонецЕсли;
КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
КонецПроцедуры

В нём прописано чтоб выводил только по двум статьям затрат данные в отчет, но то не работает, в отчет попадают и другие статьи затрат
Как сделать так, чтоб в этот отчет попадали только те данные, статьи затрат которых указаны в модуле?

Sheriff

Конфигурация Бухгалтерия 2.0
Никто помочь не может?

Sheriff

Проблема ещё актуальна

kiksi

Цитата: Sheriff от 15 мая 2018, 05:50
Проблема ещё актуальна

Может привязку в коде просто сделать к кодам статей затрат?

Sheriff

Цитата: kiksi от 15 мая 2018, 09:22
Цитата: Sheriff от 15 мая 2018, 05:50
Проблема ещё актуальна

Может привязку в коде просто сделать к кодам статей затрат?
Так она вроде сделана, не?
Если нет, то как её сделать?

wise

(0) Вы объединяете ДВЕ  таблицы
в ОДНОЙ накладываете фильтр, а вторая выводит что есть...
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

Sheriff

Цитата: wise от 15 мая 2018, 13:24
(0) Вы объединяете ДВЕ  таблицы
в ОДНОЙ накладываете фильтр, а вторая выводит что есть...
Я так и сделал и указал фильтр, но он выводит не только те статьи затрат, что указаны, а много чего лишнего.
Как тут прописать, чтоб выводил только те, которые мне нужны?
ТехОбслужОборуд.Добавить(Справочники.СтатьиЗатрат.НайтиПоКоду("CZ-000014"));
ТехОбслужОборуд.Добавить(Справочники.СтатьиЗатрат.НайтиПоКоду("CZ-000037"));
Вот коды этих статей

kiksi

Цитата: Sheriff от 15 мая 2018, 13:02
Цитата: kiksi от 15 мая 2018, 09:22
Цитата: Sheriff от 15 мая 2018, 05:50
Проблема ещё актуальна

Может привязку в коде просто сделать к кодам статей затрат?
Так она вроде сделана, не?
Если нет, то как её сделать?

Прошу прощения, просмотрела, прокрутила :nhsrm:

KOI8-R

Цитата: Sheriff от 16 мая 2018, 05:26
Цитата: wise от 15 мая 2018, 13:24
(0) Вы объединяете ДВЕ  таблицы
в ОДНОЙ накладываете фильтр, а вторая выводит что есть...
Я так и сделал
Вам объясняют, не то как надо сделать, а то где вы накосячили.
Вы объединяете 2 таблицы и во второй вы наложили фильтр:
...
    |ГДЕ
    |    ПоступлениеТоваровУслуг.ПометкаУдаления = ЛОЖЬ
    |    И ПоступлениеТоваровУслуг.Проведен = ИСТИНА
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект2
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект3
    |    И ПоступлениеТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |    И ПоступлениеТоваровУслугУслуги.СчетЗатратБУ В ИЕРАРХИИ(&Счет7200)
    |    И ПоступлениеТоваровУслугУслуги.СубконтоЗатратБУ1 В(&ТехОбслужОборуд)
...

а в первой нет:
...
|ГДЕ
    |    ПоступлениеТоваровУслуг.ПометкаУдаления = ЛОЖЬ
    |    И ПоступлениеТоваровУслуг.Проведен = ИСТИНА
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект2
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект3
    |    И ПоступлениеТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |    И ПоступлениеТоваровУслугУслуги.СчетЗатратБУ В ИЕРАРХИИ(&Счет800)
...

поэтому ненужные статьи и попадают в отчет.

Sheriff

Цитата: KOI8-R от 16 мая 2018, 12:06
Цитата: Sheriff от 16 мая 2018, 05:26
Цитата: wise от 15 мая 2018, 13:24
(0) Вы объединяете ДВЕ  таблицы
в ОДНОЙ накладываете фильтр, а вторая выводит что есть...
Я так и сделал
Вам объясняют, не то как надо сделать, а то где вы накосячили.
Вы объединяете 2 таблицы и во второй вы наложили фильтр:
...
    |ГДЕ
    |    ПоступлениеТоваровУслуг.ПометкаУдаления = ЛОЖЬ
    |    И ПоступлениеТоваровУслуг.Проведен = ИСТИНА
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект2
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект3
    |    И ПоступлениеТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |    И ПоступлениеТоваровУслугУслуги.СчетЗатратБУ В ИЕРАРХИИ(&Счет7200)
    |    И ПоступлениеТоваровУслугУслуги.СубконтоЗатратБУ1 В(&ТехОбслужОборуд)
...

а в первой нет:
...
|ГДЕ
    |    ПоступлениеТоваровУслуг.ПометкаУдаления = ЛОЖЬ
    |    И ПоступлениеТоваровУслуг.Проведен = ИСТИНА
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект2
    |    И ПоступлениеТоваровУслугУслуги.РемонтируемыйОбъект <> &РемонтируемыйОбъект3
    |    И ПоступлениеТоваровУслуг.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |    И ПоступлениеТоваровУслугУслуги.СчетЗатратБУ В ИЕРАРХИИ(&Счет800)
...

поэтому ненужные статьи и попадают в отчет.
Я добавил фильтр, как Вы указали
|   И ПоступлениеТоваровУслугУслуги.СубконтоЗатратБУ1 В(&ТехОбслужОборуд)
Но в таком случае, выходит просто сумма, да и к тому же, она просто не правильная. Да и колонки не заполняются

Теги:

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

Рейтинг@Mail.ru

Поиск