Формирование отчета из документа с помощью БСП

1. mark_oilbass 23.03.20 14:29 Сейчас в теме
Здравствуйте!

Разработал отчет для документа. С помощью механизмов БСП команда по формированию отчета добавляется на форму документа, но отбора по документу не происходит, т.е. в отчет вываливаются данные по всем документам. Какие процедуры необходимо определить, чтобы отчет формировался с отбором по документу?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
20. dhurricane 24.03.20 09:08 Сейчас в теме +0.16 $m
(19) Попробуйте добавить в процедуру "НастроитьВариантыОтчетов" общего модуля "ВариантыОтчетовПереопределяемый" следующие строки:
ОписаниеОтчета = ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.М_СостояниеЗаказовНарядов);
ОписаниеОтчета.ОпределитьНастройкиФормы = Истина;

А затем обновить конфигурацию и обновить служебные данные специальной обработкой или запустив 1С в режиме предприятия с параметром "/C ЗапуститьОбновлениеИнформационнойБазы".

После этого процедура настроек формы в модуле отчета должна сработать.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
22. davealone 165 24.03.20 11:34 Сейчас в теме
(1) Посмотрите в Демо БСП отчет "_ДемоФайлы". Там при добавлении команды указывается ИмяПараметраФормы

Команда = КомандыОтчетов.Добавить();
Команда.КлючВарианта  = "ПоВерсиям";
Команда.ИмяПараметраФормы = "Отбор.Ссылка";
Команда.Представление  = НСтр("ru = 'Демо: Отчет по версиям'");
Команда.Идентификатор  = "_ДемоОтчетПоВерсиям";
Команда.Важность  = "Важное";


ИмяПараметраФормы - Строка - имя параметра формы, в который следует передать ссылку или массив ссылок
2. VmvLer 23.03.20 14:52 Сейчас в теме
тема не раскрыта.
Неплохо было прочесть от вас:
1. Я вот тут прочитал как подключать печ. формы и отчеты к доку - все классно написано, но у меня не работает.

2. Вот мой код из модуля объекта печ. формы.

Пока нет 1-2 мы можем поговорить о северном ветре - дует как трубадур на ярмарке(
3. mark_oilbass 23.03.20 14:59 Сейчас в теме
(2)в модуле менеджера документа добавил процедуру:
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
	
	Если ПравоДоступа("Просмотр", Метаданные.Отчеты.М_СостояниеЗаказовНарядов) Тогда		
		
		КомандаОтчет = КомандыОтчетов.Добавить();
		
		КомандаОтчет.Менеджер = Метаданные.Отчеты.М_СостояниеЗаказовНарядов.ПолноеИмя();
		КомандаОтчет.Представление = НСтр("ru = 'Состояние заказов нарядов';
		|en = 'Order Status '");
		
		КомандаОтчет.МножественныйВыбор = Ложь;
		КомандаОтчет.Важность = "Обычное";
		КомандаОтчет.ДополнительныеПараметры.Вставить("ИмяКоманды", "М_СостояниеЗаказовНарядов");		
		
	КонецЕсли;
	
КонецПроцедуры
Показать


на форме документа добавил процедуру:

// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды


Команда на форме документа появилась, но отчет выводит данные без отбора, хотелось чтобы отчет выводил данные с отбором по документу из которого вызывает текущий отчет.
4. user5300 1000 23.03.20 15:08 Сейчас в теме
(3)
КомандаОтчет.ДополнительныеПараметры.Вставить("ИмяКоманды", "М_СостояниеЗаказовНарядов");
Думаю здесь надо добавить параметр "ссылку на объект"
5. mark_oilbass 23.03.20 15:13 Сейчас в теме
(4)Так написать КомандаОтчет.ДополнительныеПараметры.Вставить("Ссылка", Док); ?
7. user5300 1000 23.03.20 15:16 Сейчас в теме
(5) точно не скажу, думаю так:

массивОбъектов = новый массив;
массивОбъектов.Добавить(Ссылка)
КомандаОтчет.ДополнительныеПараметры.Вставить("массивОбъектов", массивОбъектов);
9. mark_oilbass 23.03.20 15:26 Сейчас в теме
(7)К сожалению доступа к ссылке нет в этой процедуре.
10. user5300 1000 23.03.20 15:28 Сейчас в теме
(9)посмотри отладчиком "при создании" отчета - параметры
6. dandykry 9 23.03.20 15:15 Сейчас в теме
(3)
Нужно еще обработать это открытие в модуле объекта. Как то так

UP: Модуль объекта отчета
Вместо "Док" имя поля, как в отчете называется. Например "ссылка"

Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры


// Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
//
// Параметры:
//   Форма - УправляемаяФорма - Форма отчета.
//   Отказ - Передается из параметров обработчика "как есть".
//   СтандартнаяОбработка - Передается из параметров обработчика "как есть".
//
// См. также:
//   "УправляемаяФорма.ПриСозданииНаСервере" в синтакс-помощнике.
//
Процедура ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт
	
	КомпоновщикНастроекФормы = ЭтаФорма.Отчет.КомпоновщикНастроек;
	Параметры = ЭтаФорма.Параметры;
	
	Если Параметры.Свойство("ПараметрКоманды") Тогда
			
	ЭтаФорма.ФормаПараметры.Отбор.Вставить("Док", Параметры.ПараметрКоманды);

	КонецЕсли;
	
КонецПроцедуры
Показать
8. mark_oilbass 23.03.20 15:24 Сейчас в теме
(6) Добавил процедуры но не помогло(
11. dandykry 9 23.03.20 15:28 Сейчас в теме
(8)
В модуле объекта отчета добавил?
Точку остановки поставь
Если Параметры.Свойство("ПараметрКоманды") Тогда

и посмотри что не так)

Напиши туда "Сообщить("В процедуру зашло но я не увидел этого.");"

Это должно работать с подключаемыми командами в БСП
12. mark_oilbass 23.03.20 15:33 Сейчас в теме
(11)Написал сообщить, сообщения не выходят(
13. dandykry 9 23.03.20 15:37 Сейчас в теме
(12) Значит это не отрабатывает

Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры
14. user5300 1000 23.03.20 15:37 Сейчас в теме
(12) покажи процедуру модуля объекта (Отчета)
 
ПриСозданииНаСервере()
//...
КонецПроцедуры
15. mark_oilbass 23.03.20 15:44 Сейчас в теме
(14)
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
	Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры


// Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
//
// Параметры:
//   Форма - УправляемаяФорма - Форма отчета.
//   Отказ - Передается из параметров обработчика "как есть".
//   СтандартнаяОбработка - Передается из параметров обработчика "как есть".
//
// См. также:
//   "УправляемаяФорма.ПриСозданииНаСервере" в синтакс-помощнике.
//
Процедура ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт
	
	КомпоновщикНастроекФормы = ЭтаФорма.Отчет.КомпоновщикНастроек;
	Параметры = ЭтаФорма.Параметры;

	Если Параметры.Свойство("ПараметрКоманды") Тогда
			               
	ЭтаФорма.ФормаПараметры.Отбор.Вставить("Док", Параметры.ПараметрКоманды);

	КонецЕсли;
	
КонецПроцедуры
Показать
16. user5300 1000 23.03.20 15:49 Сейчас в теме
(15)
Параметры = ЭтаФорма.Параметры;
- это лишнее.

перед КомпоновщикНастроекФормы = ЭтаФорма.Отчет.КомпоновщикНастроек;

напиши :
Для каждого прм из Параметры цикл
    сообщить(прм.значение);
конеццикла;

посмотрим какие параметры получаем
17. dandykry 9 24.03.20 07:12 Сейчас в теме
(16) У него наверное форма отчета своя
18. mark_oilbass 24.03.20 08:15 Сейчас в теме
(17)Нет, форму отчета я не делал.
19. mark_oilbass 24.03.20 08:25 Сейчас в теме
(16)не заходит в процедуру.
20. dhurricane 24.03.20 09:08 Сейчас в теме +0.16 $m
(19) Попробуйте добавить в процедуру "НастроитьВариантыОтчетов" общего модуля "ВариантыОтчетовПереопределяемый" следующие строки:
ОписаниеОтчета = ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.М_СостояниеЗаказовНарядов);
ОписаниеОтчета.ОпределитьНастройкиФормы = Истина;

А затем обновить конфигурацию и обновить служебные данные специальной обработкой или запустив 1С в режиме предприятия с параметром "/C ЗапуститьОбновлениеИнформационнойБазы".

После этого процедура настроек формы в модуле отчета должна сработать.
21. mark_oilbass 24.03.20 10:20 Сейчас в теме
(20)Отлично) Сейчас попробую.
23. mark_oilbass 24.03.20 12:34 Сейчас в теме
(20) Спасибо огромное получилось)
24. dhurricane 24.03.20 13:27 Сейчас в теме
(23) Поблагодарите лучше user5300. Он большую часть подсказал.
25. It-developer 24 09.02.24 18:05 Сейчас в теме
Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;

...
ПараметрыРегистрации.Вставить("ОпределитьНастройкиФормы", Истина);
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)