Здравствуйте!

Разработал отчет для документа. С помощью механизмов БСП команда по формированию отчета добавляется на форму документа, но отбора по документу не происходит, т.е. в отчет вываливаются данные по всем документам. Какие процедуры необходимо определить, чтобы отчет формировался с отбором по документу?
---
Попробуйте добавить в процедуру "НастроитьВариантыОтчетов" общего модуля "ВариантыОтчетовПереопределяемый" следующие строки:

```1c
    ОписаниеОтчета = ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.М_СостояниеЗаказовНарядов);
    ОписаниеОтчета.ОпределитьНастройкиФормы = Истина;
```

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

После этого процедура настроек формы в модуле отчета должна сработать.
---
Посмотрите в Демо БСП отчет "_ДемоФайлы". Там при добавлении команды указывается ИмяПараметраФормы

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

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

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

Пока нет 1-2 мы можем поговорить о северном ветре - дует как трубадур на ярмарке(
---
в модуле менеджера документа добавил процедуру:

```1c
    Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт

    Если ПравоДоступа("Просмотр", Метаданные.Отчеты.М_СостояниеЗаказовНарядов) Тогда

    КомандаОтчет = КомандыОтчетов.Добавить();

    КомандаОтчет.Менеджер = Метаданные.Отчеты.М_СостояниеЗаказовНарядов.ПолноеИмя();
    КомандаОтчет.Представление = НСтр("ru = 'Состояние заказов нарядов';
    |en = 'Order Status '");

    КомандаОтчет.МножественныйВыбор = Ложь;
    КомандаОтчет.Важность = "Обычное";
    КомандаОтчет.ДополнительныеПараметры.Вставить("ИмяКоманды", "М_СостояниеЗаказовНарядов");

    КонецЕсли;

    КонецПроцедуры
```

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

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

Команда на форме документа появилась, но отчет выводит данные без отбора, хотелось чтобы отчет выводил данные с отбором по документу из которого вызывает текущий отчет.
---
КомандаОтчет.ДополнительныеПараметры.Вставить("ИмяКоманды", "М_СостояниеЗаказовНарядов"); Думаю здесь надо добавить параметр "ссылку на объект"
---
Так написать КомандаОтчет.ДополнительныеПараметры.Вставить("Ссылка", Док); ?
---
точно не скажу, думаю так:

массивОбъектов = новый массив;
массивОбъектов.Добавить(Ссылка)
КомандаОтчет.ДополнительныеПараметры.Вставить("массивОбъектов", массивОбъектов);
---
К сожалению доступа к ссылке нет в этой процедуре.
---
посмотри отладчиком "при создании" отчета - параметры
---
Нужно еще обработать это открытие в модуле объекта. Как то так

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

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

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

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

    Если Параметры.Свойство("ПараметрКоманды") Тогда

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

    КонецЕсли;

    КонецПроцедуры
```
---
Добавил процедуры но не помогло(
---
В модуле объекта отчета добавил?
Точку остановки поставь

```1c
    Если Параметры.Свойство("ПараметрКоманды") Тогда
```

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

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

Это должно работать с подключаемыми командами в БСП
---
Написал сообщить, сообщения не выходят(
---
Значит это не отрабатывает

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

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

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

    Если Параметры.Свойство("ПараметрКоманды") Тогда

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

    КонецЕсли;

    КонецПроцедуры
```
---
Параметры = ЭтаФорма.Параметры; - это лишнее.

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

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

 посмотрим какие параметры получаем
---
У него наверное форма отчета своя
---
Нет, форму отчета я не делал.
---
не заходит в процедуру.
---
Попробуйте добавить в процедуру "НастроитьВариантыОтчетов" общего модуля "ВариантыОтчетовПереопределяемый" следующие строки:

```1c
    ОписаниеОтчета = ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.М_СостояниеЗаказовНарядов);
    ОписаниеОтчета.ОпределитьНастройкиФормы = Истина;
```

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

После этого процедура настроек формы в модуле отчета должна сработать.
---
Отлично) Сейчас попробую.
---
Спасибо огромное получилось)
---
Поблагодарите лучше user5300. Он большую часть подсказал.
---
Функция СведенияОВнешнейОбработке() Экспорт

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

...
 ПараметрыРегистрации.Вставить("ОпределитьНастройкиФормы", Истина);