День добрый! Есть отчет, который выводит макет. Мне надо вывести организацию и ответственные лица руководителей, НО почему то не получается, никаких ошибок нет и ничего не выводит. В запросе тоже все добавляю. Третий день голову ломаю. Когда пишу, из того что есть (контрагенты, организация и тд тп), оно выводит, а когда я добавляю, не выводит ничего. Помогите плиз...
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(6)
Процедура СформироватьОтчет(ПараметрыОтчета, АдресХранилища) Экспорт
//ЕстьСклад = ?(ПараметрыОтчета.Счет.ВидыСубконто.Найти(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады) <> Неопределено, Истина, Ложь);
ДанныеРасшифровки = Неопределено;
Если ПараметрыОтчета.СКД Тогда
ТабличныйДокумент = Новый ТабличныйДокумент;
ПередКомпоновкойМакета(ПараметрыОтчета, СхемаКомпоновкиДанных, КомпоновщикНастроек);
ДанныеРасшифровки = ПараметрыОтчета.ДанныеРасшифровки;
Если ДанныеРасшифровки = Неопределено Тогда
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КонецЕсли;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровкиОбъект);
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки, Истина);
//Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
ПроцессорВывода.НачатьВывод();
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
//ТабличныйДокумент.ПоказатьУровеньГруппировокСтрок(0);//++ webresurs 03.07.2020
ПроцессорВывода.ЗакончитьВывод();
// После окончания процессором вывода отчета, поместим расшифровку во временное хранилище.
ДанныеДляРасшифровки = Новый Структура("Объект, ДанныеРасшифровки", ПараметрыОтчета, ДанныеРасшифровки);
ДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеДляРасшифровки, ПараметрыОтчета.ДанныеРасшифровки);
//СкомпоноватьРезультат(ТабличныйДокумент, Новый ДанныеРасшифровкиКомпоновкиДанных);
Иначе
//ТЗ = Новый ТаблицаЗначений;
//
////Настройки = КомпоновщикНастроек.ПолучитьНастройки();
////КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
//ПередКомпоновкойМакета(ПараметрыОтчета, СхемаКомпоновкиДанных, КомпоновщикНастроек);
//
//КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,КомпоновщикНастроек.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
//
//ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
//ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
//
//
//ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
//ПроцессорВывода.УстановитьОбъект(ТЗ);
//ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
//
//Для Каждого Строка Из ТЗ Цикл
//КонецЦикла;
Запрос = Новый Запрос;
МассивСубконто = Новый Массив;
МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
//МассивСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты);
Запрос.УстановитьПараметр("Счет", ПараметрыОтчета.СписокСчетов);
//Запрос.УстановитьПараметр("Контрагент", Справочники.Контрагенты.ПустаяСсылка());
Запрос.УстановитьПараметр("Организация", ПараметрыОтчета.Организация);
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ПараметрыОтчета.НачалоПериода));
//Запрос.УстановитьПараметр("ДатаОкончания", Новый Граница(КонецДня(ПараметрыОтчета.КонецПериода), ВидГраницы.Включая));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(ПараметрыОтчета.КонецПериода));
Запрос.УстановитьПараметр("МассивСубконто", МассивСубконто);
Запрос.УстановитьПараметр("СубконтоНоменклатура", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
//Запрос.УстановитьПараметр("ВидСубконто", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОстаткиИОбороты.Организация КАК Организация,
| ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
| ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Код КАК НоменклатураКод,
| ХозрасчетныйОстаткиИОбороты.Субконто3 КАК Склад,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстатокДт) КАК КоличествоНач,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт) КАК КоличествоПриход,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт) КАК КоличествоРасход,
| СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстатокДт) КАК КоличествоКон,
| ВЫРАЗИТЬ(ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Справочник.Номенклатура).Наименование КАК Наименование,
| ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
| ХозрасчетныйОстаткиИОбороты.Счет.Порядок КАК СчетПорядок
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(
| &ДатаНачала,
| &ДатаОкончания,
| ,
| ,
| Счет В (&СчетНоменклатураСклад),
| &МассивСубконто,
| ВЫБОР
| КОГДА &Организация = ЗНАЧЕНИЕ(Справочник.Организации.пустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ Организация = &Организация
| КОНЕЦ
| И ВЫБОР
| КОГДА &Склад = ЗНАЧЕНИЕ(Справочник.Склады.пустаяСсылка)
| ТОГДА ИСТИНА
| ИНАЧЕ Субконто3 В (&Склад)
| КОНЕЦ) КАК ХозрасчетныйОстаткиИОбороты
|
|СГРУППИРОВАТЬ ПО
| ХозрасчетныйОстаткиИОбороты.Субконто1,
| ХозрасчетныйОстаткиИОбороты.Организация,
| ХозрасчетныйОстаткиИОбороты.Счет,
| ХозрасчетныйОстаткиИОбороты.Счет.Порядок,
| ХозрасчетныйОстаткиИОбороты.Субконто3
|
|УПОРЯДОЧИТЬ ПО
| Склад,
| СчетПорядок,
| Наименование
|ИТОГИ
| СУММА(КоличествоНач),
| СУММА(КоличествоПриход),
| СУММА(КоличествоРасход),
| СУММА(КоличествоКон)
|ПО
| ОБЩИЕ";
//Если Не ЕстьСклад Тогда
// Запрос.Текст = СтрЗаменить(Запрос.Текст, "ХозрасчетныйОстаткиИОбороты.Субконто2 КАК Склад,", "");
// Запрос.Текст = СтрЗаменить(Запрос.Текст, "И (Субконто2 = &Склад", "");
// Запрос.Текст = СтрЗаменить(Запрос.Текст, "ИЛИ Субконто2 = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка))", "");
// Запрос.Текст = СтрЗаменить(Запрос.Текст, "ХозрасчетныйОстаткиИОбороты.Субконто2,", "");
//КонецЕсли;
Запрос1 = Новый Запрос;
Запрос1.Текст =
"ВЫБРАТЬ
| Хозрасчетный.Ссылка КАК Ссылка
|ИЗ
| ПланСчетов.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.ВидыСубконто.ВидСубконто В(&СубконтоНоменклатура)
| И Хозрасчетный.ВидыСубконто.ВидСубконто В(&СубконтоСклад)
| И Хозрасчетный.Ссылка В(&СписокСчетов)
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| Хозрасчетный.Ссылка КАК Ссылка
|ИЗ
| ПланСчетов.Хозрасчетный КАК Хозрасчетный
|ГДЕ
| Хозрасчетный.ВидыСубконто.ВидСубконто = &СубконтоНоменклатура
| И НЕ Хозрасчетный.ВидыСубконто.ВидСубконто В (&СубконтоСклад)
| И Хозрасчетный.Ссылка В(&СписокСчетов)";
Запрос1.УстановитьПараметр("СписокСчетов", ПараметрыОтчета.СписокСчетов.ВыгрузитьЗначения());
Запрос1.УстановитьПараметр("СубконтоНоменклатура",ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
Запрос1.УстановитьПараметр("СубконтоСклад", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
РезультатЗапроса = Запрос1.ВыполнитьПакет();
//Если Не РезультатЗапроса[0].Пустой() Тогда
Запрос.УстановитьПараметр("СчетНоменклатураСклад", РезультатЗапроса[0].Выгрузить().ВыгрузитьКолонку("Ссылка"));
//Иначе
// Запрос.УстановитьПараметр("СчетНоменклатураСклад", "");
//КонецЕсли;
Запрос.УстановитьПараметр("СчетНоменклатура", РезультатЗапроса[1].Выгрузить().ВыгрузитьКолонку("Ссылка"));
ТабличныйДокумент = Новый ТабличныйДокумент;
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ПоместитьВоВременноеХранилище(Новый Структура("Результат,ДанныеРасшифровки", ТабличныйДокумент, ДанныеРасшифровки), АдресХранилища);
Возврат;
КонецЕсли;
Макет = ПолучитьМакет("Макет");
// Выведем заголовок
СведенияОПокупателе = БухгалтерскийУчетПереопределяемый.СведенияОЮрФизЛице(ПараметрыОтчета.Организация, ПараметрыОтчета.КонецПериода);
МОЛВыбранногоСклада = ОтветственныеЛицаБП.ОтветственноеЛицоНаСкладе(ПараметрыОтчета.Склад, КонецДня(ПараметрыОтчета.КонецПериода));
ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
ОбластьМакета.Параметры.Склад = ПараметрыОтчета.Склад;
//ОбластьМакета.Параметры.ОрганизацияПредставление = ОбщегоНазначенияБПВызовСервера.ОписаниеОрганизации(СведенияОПокупателе);
ОбластьМакета.Параметры.ОрганизацияПредставление = СведенияОПокупателе.НаименованиеДляПечатныхФорм;
ОбластьМакета.Параметры.ДатаСоставления = ТекущаяДата();
ОбластьМакета.Параметры.ДатаНачала = ПараметрыОтчета.НачалоПериода;
ОбластьМакета.Параметры.ДатаКонца = ПараметрыОтчета.КонецПериода;
ОбластьМакета.Параметры.ОрганизацияПоОКПО = СведенияОПокупателе.КодПоОКПО;
ОбластьМакета.Параметры.МОЛ = ?(НЕ ЗначениеЗаполнено(МОЛВыбранногоСклада), "", МОЛВыбранногоСклада);
//ОбластьМакета.Параметры.МОЛТабельныйНомер = ?(НЕ ЗначениеЗаполнено(МОЛВыбранногоСклада), "", МОЛВыбранногоСклада.Код);
ВысотаЗаголовка = ОбластьМакета.ВысотаТаблицы;
ТабличныйДокумент.Вывести(ОбластьМакета);
// Выведем шапку
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.ДатаНачала = ПараметрыОтчета.НачалоПериода;
ОбластьМакета.Параметры.ДатаКонца = ПараметрыОтчета.КонецПериода;
ПовторятьПриПечатиСтроки = ТабличныйДокумент.Область(1 + ВысотаЗаголовка, , 2 + ВысотаЗаголовка);
ТабличныйДокумент.Вывести(ОбластьМакета);
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
ОбластьИтог = Макет.ПолучитьОбласть("Итог");
ОбластьИтог.Параметры.Заполнить(Выборка);
ОбластьМакета = Макет.ПолучитьОбласть("СтрокаТаблицы");
НомерПоПорядку = 1;
Пока Выборка.Следующий() Цикл
ОбластьМакета.Параметры.Заполнить(Выборка);
ОбластьМакета.Параметры.НомерПоПорядку = НомерПоПорядку;
НомерПоПорядку = НомерПоПорядку + 1;
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЦикла;
// Выведем подвал
//ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
Если ЗначениеЗаполнено(ПараметрыОтчета.Организация) Тогда
Руководители = ОтветственныеЛицаБП.ОтветственныеЛица(ПараметрыОтчета.Организация, ПараметрыОтчета.КонецПериода);
ОбластьИтог.Параметры.ГлавныйБухгалтерФИО = Руководители.ГлавныйБухгалтерФИО.Представление;
КонецЕсли;
ТабличныйДокумент.Вывести(ОбластьИтог);
ТабличныйДокумент.ПовторятьПриПечатиСтроки = ПовторятьПриПечатиСтроки;
МакетКомпоновки.Макеты.Добавить();
КонецЕсли;
//Если ПараметрыОтчета.СКД Тогда
//РезультатФормированияОтчета = Новый Структура;
//РезультатФормированияОтчета.Вставить("Результат", Результат);
//РезультатФормированияОтчета.Вставить("ДанныеРасшифровки", ДанныеРасшифровки);
ПоместитьВоВременноеХранилище(Новый Структура("Результат, ДанныеРасшифровки", ТабличныйДокумент, ДанныеРасшифровки), АдресХранилища);
//Иначе
// ПоместитьВоВременноеХранилище(ТабличныйДокумент, АдресХранилища);
//КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот