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

Помогите допилить дополнительный отчет на СКД

Автор Алексей Шмуйлович, 07 июн 2016, 15:49

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

Алексей Шмуйлович

Здравствуйте, уважаемые!

Помогите, пожалуйста, доделать дополнительный отчет.

Написал дополнительный отчет по образцу отчета из БСП (_ДемоКонтекстныйОтчет). Отчет назначаемый - привязан к списку или форме документа.
Написан на СКД. Работает корректно. Только одна загвоздка - не получается программно задать параметр. В примере из СКД привязка к назначаемым документам осуществляется через отбор, а мне нужно сделать это через параметр данных. И это сделать не получается.

Для знающего человека - исправить одну строчку кода в процедуре ПриСозданииНаСервере.

Вот весь код модуля объекта:

////////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС

#Область ПрограммныйИнтерфейс

// Возвращает сведения о внешней обработке.

Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.5.1");

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

НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Анализ рентабельности продаж'");
НоваяКоманда.Идентификатор = "Основная";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
НоваяКоманда.ПоказыватьОповещение = Ложь;

Возврат ПараметрыРегистрации;


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

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

///// ВОТ ЭТА СТРОЧКА НЕ РАБОТАЕТ:
Форма.ФормаПараметры.УстановитьЗанчениеПараметра("Регистратор", ОбъектыНазначения);


КонецЕсли;
КонецПроцедуры


#КонецОбласти


Сам отчет прикладываю.



LexaK

1.проверьте заполнение реквизита: Хранилище вариантов в вашем отчете, без него не работает вызов: ОпределитьНастройкиФормы
2.ошибка в модуле отчета, в процедуре  ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
код

    Форма.ФормаПараметры.УстановитьЗанчениеПараметра("Регистратор", ОбъектыНазначения);


замените на такой


    Форма.ФормаПараметры.Отбор = Новый Структура("Регистратор", ОбъектыНазначения);


после таких изменений, ваш отчет у меня (база БП30 корп) заработал в автоматическом режиме,
как из списка документов Реализация, так и из формы документа, по кнопке: Отчеты - Анализ рентабельности.

 
если помогло нажмите: Спасибо!

Алексей Шмуйлович

Цитата: LexaK от 08 июн 2016, 13:33
1.проверьте заполнение реквизита: Хранилище вариантов в вашем отчете, без него не работает вызов: ОпределитьНастройкиФормы
2.ошибка в модуле отчета, в процедуре  ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
код

    Форма.ФормаПараметры.УстановитьЗанчениеПараметра("Регистратор", ОбъектыНазначения);


замените на такой


    Форма.ФормаПараметры.Отбор = Новый Структура("Регистратор", ОбъектыНазначения);


после таких изменений, ваш отчет у меня (база БП30 корп) заработал в автоматическом режиме,
как из списка документов Реализация, так и из формы документа, по кнопке: Отчеты - Анализ рентабельности.

 

Сделал все по вашему слову, к сожалению, не работает. У меня тоже БП30? только не корп. Но это, вроде, не должно влиять.
В образце из БСП нет реквизита отчета ХранилищеВариантов, а он работает.
А какого типа этот реквизит должен быть?

Вы не могли бы выложить отчет, который у Вас получился, который работает?

LexaK

да это ваш же отчет.
выкладываю.
на рис. Свойство отчета Хранилище вариантов, заполненное.
если помогло нажмите: Спасибо!

Алексей Шмуйлович

Хранилище вариантов нашел, спасибо. Я тупил, не мог найти, как свойства самого внешнего отчета открыть.
Но, к сожалению, опять не помогло. Не работает. Ваш отчет тоже у меня не работает.
Не заполняет поле параметра и не формирует отчет при открытии.
Если выбираешь документ вручную и нажимаешь "Сформировать" то все формирует правильно и сохраняет настройку. При следующем открытии параметр регистрация заполняется не нужными документами их ОбъектыНазначения, а теми, что сохранились с прошлого раза.
Добавлено: 09 июн 2016, 11:56


Добавил в ПриСозданииНаСервере и ОпределитьНастройкиФормы контрольные строчки Сообщить(...). Ни одно сообщение не выползает. Я так понимаю, мой код вообще не выполняется.

LexaK

даже не знаю,  :dfbsdfbsdf:  может у вас какая-то старая версия базы, БСП?
тогда только остается обратиться к настоящему программисту 1С, который чего хочешь настроит и запрограммирует. :)
если помогло нажмите: Спасибо!

Алексей Шмуйлович

ЧуднО. Поставил на рабочую базу, чтобы пользовались хотя бы с ручным выбором, а он работает! Может он на файловой версии работать не хотел? Только на серверной?
Еще раз огромное спасибо!

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

Рейтинг@Mail.ru

Поиск