У меня есть задача в ERP 2.5. Нужно написать отчет, вызываемый из документа и использующий данные документа. Отчет пишу на СКД. В СКД добавляю набор данных - запрос. Пример запроса в скрине, там один параметр "ссылка".
Вопрос в том как этот запрос из СКД получит ссылку документа из которого вызывается.
Заранее спасибо за помощь.
---
Посмотрите как реализован типовой отчет ДвиженияДокумента

модуль объекта процедуры - ОпределитьНастройкиФормы, ПриСозданииНаСервере

и рекомендую почитать ИТС - раздел БСП "Варианты отчетов" (по-моему так называется)
---
Этот способ подходит для внешнего отчета
---
Используем набор данных - объект
---
То есть добавляем к уже имеющемуся набору данных запрос ещё набор данных объект, а как его заполнить чтобы ссылка на документ передалась в качестве параметра в набор данных запрос?
---
Набор данных - объект используется для вывода в отчет информации из некоторого объекта встроенного языка: таблицы значений, результата запроса, ТЕКУЩЕГО ДОКУМЕНТА и т.п. Этот "источник" данных описывается в схеме компоновки, затем он заполняется программным образом, например по нажатию какой-то кнопки, и в качестве внешнего набора данных передается в процессор компоновки. После выполнения компоновки отчет выводится программным способом на основании стандартных настроек, сделанных в схеме компоновки.
---
передается в процессор компоновки
То есть ссылку на документ можно будет отловить в Процедуре ПриКомпоновкеРезультата и присвоить параметру "Ссылка" запроса?
Подскажите пожалуйста каким кодом это сделать.
---
И ещё один вопрос, а как заполнить при этом набор данных - объект, к сожалению в интернете не нашел информации
---
Хрусталева
---
Подскажите пожалуйста, правильно я понимаю что в переменную ВнешниеНаборыДанных нужно поместить ссылку на документ откуда вызывается отчет следующим кодом, где в строке с методом Вставить "Ссылка" это название набора данных объект, который мы добавили к схеме компоновки:
ВнешниеНаборыДанных=Новый Структура;
ВнешниеНаборыДанных.Вставить("Ссылка", ПеременнаяСсылкаНаДокумент);
---
В примере же легко заметить, что соединение по ссылке идёт, а в структуру внешние наборы данных передаётся результат запроса
---
Это я вижу, спасибо, это код из формы и видимо из обычной, но я в отчете если и создам форму, то управляемую. И как я там отловлю ссылку документа, откуда открыл отчет, напишите пожалуйста.
---
Вы в начале написали что нужно использовать набор данных объект, а как он участвует в этом коде?
---
Так вы же в него передаете результат запроса, который формирует информацию по вашей "ссылка"
---
Но мне не нужно никуда передавать результат запроса, мне нужно в запрос передать ссылку
---
Используйте параметры
---
Какие?
---
Такое ощущение что вы просто морочите голову, ни на один мой вопрос вы не стали отвечать, пишите что то отвлеченное
---
параметры схемы
---
На этой же закладке у вас пусто, да?
---
Покажите
---
У меня в этой вкладке один параметр ссылка
---
Вот эта вкладка
---
и в процедуре ИнициализироватьКомпоновщикНастроек что-то вроде
ЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = ЗдесьСсылкаНаВашуНакладную;
---
А в каком модуле разместится эта процедура?
---
ЭлементОтбора.ПравоеЗначение = ЗдесьСсылкаНаВашуНакладную;
Получается из формы документа была открыта форма отчета, а как в форму отчета была передана ссылка документа и как получить ссылку документа теперь на форме отчета?
Как получить переменную ЗдесьСсылкаНаВашуНакладную?
---
формы
---
К вашему документу добавляете макет компоновки, в него по кнопке в форме передаете набор данных - данные вашего текущего документа (из которого эта кнопка нажата), результат отчета выводится программным способом на основе стандартных настроек, сделанных в вашей схеме. Всё. Зачем вам еще форма отчета?
---
Просьба, напишите пожалуйста код, который как я понял разместится на форме отчета
---
в него по кнопке в форме передаете набор данных - данные вашего текущего документа (из которого эта кнопка нажата)
Откуда возьмутся данные вашего текущего документа? Как их получить? Ведь я же не пишу код в форме этого документа чтобы передать его ссылку.
---
Посмотрите как реализован типовой отчет ДвиженияДокумента

модуль объекта процедуры - ОпределитьНастройкиФормы, ПриСозданииНаСервере

и рекомендую почитать ИТС - раздел БСП "Варианты отчетов" (по-моему так называется)
---
ПриСозданииНаСервере
Вот процедура ПриСозданииНаСервере из ERP, она находится в модуле отчета, но во внешнем отчете нет возможности добавить такую процедуру, там можно создать только две процедуры: ПриКомпоновкеРезультата и ОбработкаПроверкиЗаполнения. И если я даже в модуле моего отчета напишу такую процедуру, откуда там возьмется переменная Форма?

```1c
    Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

    Если Форма.Параметры.ПредставлениеВарианта = "Расшифровка" Тогда
    ВызватьИсключение НСтр("ru = 'Выбранное действие в данном отчете не доступно.';
    |en = 'The selected action is not available in this report.'");
    КонецЕсли;

    ДокументВладелец = Неопределено;

    Если Не Форма.Параметры.Свойство("ДокументВладелец", ДокументВладелец)
    И Не Форма.Параметры.Свойство("ПараметрКоманды", ДокументВладелец)
    И Не ЗначениеЗаполнено(ДокументВладелец) Тогда

    Возврат;
    КонецЕсли;

    СтруктураПараметровДанных = Новый Структура("ДокументВладелец", ДокументВладелец);
    УстановитьПараметрыДанных(КомпоновщикНастроек.Настройки, СтруктураПараметровДанных);

    КонецПроцедуры
```
---
Для внешнего отчета подключаемого через доп. отчеты и обработки примерно так https://forum.mista.ru/topic.php?id=834672
---
Этот способ подходит для внешнего отчета
---
Ну, может, так
---
Но у вас же макет расположен в документе и вызывается командой из формы документа, тут со ссылкой документа всё просто. Я ведь делаю внешний отчет и получить ссылку документа мне нужно во внешнем отчете
---
Спасибо большое что помогали мне. Видимо для меня было очевидно, что речь идет о внешнем отчете, но я этого не написал, прошу прощения.
---
Либо можно сделать как тут http://forum.infostart.ru/forum9/topic64306/message1026256/#message1026256

вам уже в другой теме давали ссылку на эту тему. так сложнее (хотя кому как), но тоже должно сработать
---
По поводу этого кода я сделал такой вывод, может я ошибся. Этот код можно применить если сделать команду на форме документа и оттуда вызвать отчет. Если я ошибаюсь, покажите пожалуйста в какой строке этого кода мы видим ссылку на документа откуда была вызвана внешняя обработка?
---
Свое сообщение начальное прочитайте - где в нем хоть слово про внешний отчет? За 7 лет на форуме можно было хотя бы вопросы научится задавать.
---
Прошу прощения, и правда, не написал.