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

Открывать отчет в контексте номенклатуры

Автор Andra, 15 авг 2024, 10:03

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

Andra

Здравствуйте, подскажите пожалуйста. В расширении написал СКДшный отчет, добавил его в подменю отчетов справочника Номенклатура. Как программно задать отбор, чтобы отчет формировался по выбранной номенклатуре (из формы списка, или из формы элемента)? То есть как стандартные, к примеру, ОстаткиИДоступностьТоваров, не могу разобраться как туда передается нужный отбор.

Максим75

Andra, Вы его как добавили? через внешние отчеты и указали где он доступен? если так, то тот объект, откуда он вызывается, доступен через ВладелецФормы.Объект.Ссылка. вот в самом отчете и обрабатывайте его (как там у Вас в виде параметра в запросе или отбора).

Ну а если Вы прикрутили кнопку по форме номенклатуре, то тогда Вы же вызываете отчет, вот при вызове и передавайте объект (или ссылку)

Andra

Максим75, в расширении добавлен отчет, а в модуль справочника Номенклатура добавлена соответствующая команда. То есть она видна, отчет формируется, но не знаю как установить значение параметра номенклатуры в запросе

Максим75

Andra, команда что делает?
она должна вызвать отчет, видимо открываете форму отчета, вот при открытии формы можно в эту форму что-то и передать.

Andra

Максим75,
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

Отбор = Новый Структура("Номенклатура", ПараметрКоманды);

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

ОткрытьФорму("Отчет.НоменклатураВСпецификациях.Форма",
ПараметрыФормы,
ПараметрыВыполненияКоманды.Источник,
ПараметрыВыполненияКоманды.Уникальность,
ПараметрыВыполненияКоманды.Окно);
КонецПроцедуры


Максим75

Andra, в свойствах самой команды задайте тип параметра команды (справочникСсылка.Номенклатура или что там у Вас за справочник)

у меня так сделано (уж извините, не смотрел Ваше)

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

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

ну и в самом отчете ОстаткиНаСкладах у меня настройках СКД задан отбор по товару

Andra

Максим75, все также, тип параметра нужный, в СКД отбор стоит, все равно при формировании "Номенклатура = """, может что-то забыл или не увидел, в обработку команды отладчиком попасть не могу, чтобы проверить

Максим75

Andra, в самом отборе (в настройка СКД отчета) случайно галку не поставили?
там обычно по умолчанию становится пустая ссылка справочника.

Andra

Максим75, да я честно говоря уже не понимаю в чем причина, пробовал по всякому (и с галкой, и справочник.пустаяссылка, и т.д.), не знаю в чем причина

Максим75

Andra, галка не должна стоять. отбор должен быть, а галка не стоит.

Теги:

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

Рейтинг@Mail.ru

Поиск