Вход | Регистрация

1С:Предприятие ::

Метки: 

Как зарегистрировать дополнительный отчет в справочнике «Варианты отчетов».

Я
   Голубушка
 
25.06.18 - 11:20
Конфигурация ЗУП 3.1, версия БСП  2.4.6.40. Есть внешний отчет 

Функция СведенияОВнешнейОбработке() Экспорт
    
    РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Вид", "ДополнительныйОтчет");
    РегистрационныеДанные.Вставить("Версия", "1.0");
    РегистрационныеДанные.Вставить("Наименование", "------");
    РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
    РегистрационныеДанные.Вставить("Информация", "");

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

Нужно зарегистрировать этот отчет в  справочнике «Варианты отчетов», чтоб включить его в рассылку для пользователей.
 
  Рекламное место пустует
   Голубушка
 
1 - 25.06.18 - 11:48
ап
   rozer76
 
2 - 25.06.18 - 13:14
Интерактивно можно при сохр вар
   Голубушка
 
3 - 25.06.18 - 13:33
При сохранении не появляется вариант в справочнике вариантов, по всей видимости, я не до конца регистрирую отчет. Если судить по форме списка справочник "ВариантыОтчетов", строиться дерево с учетом справочника "ИдентификаторыОбъектовМетаданных", естественно моего отчета там нет. Но возможность должна быть, т.к. в справочнике вариантов есть отбор по доп. отчетам.
   Фрэнки
 
4 - 25.06.18 - 13:40
(3) а тебя так-таки ЗУП-ом мучают до сих пор :)
   Голубушка
 
5 - 25.06.18 - 13:45
Да нет :) это очередная задача , у нас все многоплановое.
   Фрэнки
 
6 - 25.06.18 - 13:48
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
    
МассивНазначений.Добавить(ПолучитьМетаданныеДокументаПечати());
//может быть - ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов... 

ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); 
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

- это у меня для печатных форм так сделано (это фрагмент). Может нужно и в твоем коде какое-то Назначение установить?
   Голубушка
 
7 - 25.06.18 - 13:49
Нет, точно нет, эти параметры для другого. Нужно именно зарегистрировать вариант. Всю документацию по БСП вроде прочитала. Нужен стороний опыт.
   Голубушка
 
8 - 25.06.18 - 13:50
Вопрос не столько к ЗУП, сколько к БСП , то же самое и в БУ и в Рознице.
   Голубушка
 
9 - 25.06.18 - 13:51
телефон то же ?
   hhhh
 
10 - 25.06.18 - 14:20
(8) ну как то так

        ВариантОбъект = Справочники.ВариантыОтчетов.СоздатьЭлемент();
        ВариантОбъект.Наименование = "ВнешнийОтчет.ЗагрузкаПрайсовУТ";
        ВариантОбъект.Отчет = "ВнешнийОтчет.ЗагрузкаПрайсовУТ";
        ВариантОбъект.КлючВарианта = "ДанныеСохр";
        ВариантОбъект.Записать();
    
    ХранилищаНастроек.ХранилищеВариантовОтчетов.Сохранить("ВнешнийОтчет.ЗагрузкаПрайсовУТ", "ДанныеСохр", ДанныеСохрСтрока);
 
  Рекламное место пустует
   Голубушка
 
11 - 25.06.18 - 14:40
еще
ВариантОбъект.ТипОтчета = Перечисления.ТипыОтчетов.Дополнительный;

но в списке справочника вариантов отчет не отображается
   Фрэнки
 
12 - 25.06.18 - 15:11
// Возвращает отчеты (СправочникСсылка.ВариантыОтчетов), доступные текущему пользователю.

// Их следует использовать во всех запросах к таблице
// справочника "ВариантыОтчетов" как отбор по реквизиту "Отчет",

// кроме случаев выборки вариантов из внешних отчетов.
//

// Возвращаемое значение:
//   Массив - отчеты, доступные текущему пользователю (СправочникСсылка.ИдентификаторыОбъектовРасширений, 

//            Строка, СправочникСсылка.ДополнительныеОтчетыИОбработки, 
//            СправочникСсылка.ИдентификаторыОбъектовМетаданных).

//            Тип элементов совпадает с типом реквизита Справочники.ВариантыОтчетов.Реквизиты.Отчет.
//

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

    Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ДополнительныеОтчетыИОбработки") Тогда
        МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработки");
        МодульДополнительныеОтчетыИОбработки.ПриДобавленииДополнительныхОтчетовДоступныхТекущемуПользователю(ДоступныеОтчеты);
    КонецЕсли;
    
    Возврат ДоступныеОтчеты;
    
КонецФункции
   Фрэнки
 
13 - 25.06.18 - 15:16
// Дополняет массив ссылкам дополнительных отчетов, доступных текущему пользователю.

//
// Параметры:

//   Результат - Массив из <см. Справочники.ВариантыОтчетов.Реквизиты.Отчет> -
//       Ссылки отчетов, доступных текущему пользователю.

//
// Места использования:

//   ВариантыОтчетов.ОтчетыТекущегоПользователя().
//

Процедура ПриДобавленииДополнительныхОтчетовДоступныхТекущемуПользователю(ДоступныеОтчеты) Экспорт
    Если Не ПолучитьФункциональнуюОпцию("ИспользоватьДополнительныеОтчетыИОбработки") Тогда
        Возврат;
    КонецЕсли;
    Если Не ПравоДоступа("Чтение", Метаданные.Справочники.ДополнительныеОтчетыИОбработки) Тогда
        Возврат;
    КонецЕсли;
    ИспользуетсяТеснаяИнтеграцияСПодсистемойВМоделиСервиса = ИспользуетсяТеснаяИнтеграцияСПодсистемойВМоделиСервиса();
    Если ИспользуетсяТеснаяИнтеграцияСПодсистемойВМоделиСервиса Тогда
        МодульДополнительныеОтчетыИОбработкиВМоделиСервиса = ОбщегоНазначения.ОбщийМодуль("ДополнительныеОтчетыИОбработкиВМоделиСервиса");
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    |    ДополнительныеОтчетыИОбработки.Ссылка
    |ИЗ
    |    Справочник.ДополнительныеОтчетыИОбработки КАК ДополнительныеОтчетыИОбработки
    |ГДЕ
    |    ДополнительныеОтчетыИОбработки.ИспользуетХранилищеВариантов
    |    И ДополнительныеОтчетыИОбработки.Вид В (&ВидДополнительныйОтчет, &ВидОтчет)
    |    И НЕ ДополнительныеОтчетыИОбработки.Ссылка В (&ДоступныеОтчеты)";
    
    Запрос.УстановитьПараметр("ДоступныеОтчеты", ДоступныеОтчеты);
    Запрос.УстановитьПараметр("ВидОтчет",               Перечисления.ВидыДополнительныхОтчетовИОбработок.Отчет);
    Запрос.УстановитьПараметр("ВидДополнительныйОтчет", Перечисления.ВидыДополнительныхОтчетовИОбработок.ДополнительныйОтчет);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        Если ИспользуетсяТеснаяИнтеграцияСПодсистемойВМоделиСервиса
            И Не МодульДополнительныеОтчетыИОбработкиВМоделиСервиса.ЭтоПоставляемаяОбработка(Выборка.Ссылка) Тогда
            Продолжить;
        КонецЕсли;
        ДоступныеОтчеты.Добавить(Выборка.Ссылка);
    КонецЦикла;
    
КонецПроцедуры
   Фрэнки
 
14 - 25.06.18 - 15:17
= В пояснение к выше пощенному =

Выбранные ссылки с Дополнительными отчетами добавляются не всегда
   Начинающий_13
 
15 - 25.06.18 - 15:51
// Интерфейс для регистрации обработки.

// Вызывается при добавлении обработки в справочник "ВнешниеОбработки"
//

// Возвращаемое значение:
// Структура:

// Вид - строка - возможные значения:    "ДополнительнаяОбработка"
//                                        "ДополнительныйОтчет"

//                                        "ЗаполнениеОбъекта"
//                                        "Отчет"

//                                        "ПечатнаяФорма"
//                                        "СозданиеСвязанныхОбъектов"

//
// Назначение - массив строк имен объектов метаданных в формате:

//            <ИмяКлассаОбъектаМетаданного>.[ * | <ИмяОбъектаМетаданных>]
//            Например, "Документ.СчетЗаказ" или "Справочник.*"

//            Прим. параметр имеет смысл только для назначаемых обработок
//

// Наименование - строка - наименование обработки, которым будет заполнено
//                        наименование справочника по умолчанию - краткая строка для

//                        идентификации обработки администратором
//

// Версия - строка - версия обработки в формате <старший номер>.<младший номер>
//                    используется при загрузке обработок в информационную базу

// БезопасныйРежим – Булево – Если истина, обработка будет запущена в безопасном режиме.
//                            Более подбробная информация в справке.

//
// Информация - Строка- краткая информация по обработке, описание обработки

//
// Команды - ТаблицаЗначений - команды, поставляемые обработкой, одная строка таблицы соотвествует

//                            одной команде
//                колонки: 

//                 - Представление - строка - представление команды конечному пользователю
//                 - Идентификатор - строка - идентефикатор команды. В случае печатных форм

//                                            перечисление через запятую списка макетов
//                 - Использование - строка - варианты запуска обработки:

//                        "ОткрытиеФормы" - открыть форму обработки
//                        "ВызовКлиентскогоМетода" - вызов клиентского экспортного метода из формы обработки

//                        "ВызовСерверногоМетода" - вызов серверного экспортного метода из модуля объекта обработки
//                 - ПоказыватьОповещение – Булево – если Истина, требуется оказывать оповещение при начале

//                                и при окончании запуска обработки. Прим. Имеет смысл только
//                                при запуске обработки без открытия формы.

//                 - Модификатор – строка - для печатных форм MXL, которые требуется
//                                        отображать в форме ПечатьДокументов подсистемы Печать

//                                        требуется установить как "ПечатьMXL"
//

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

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

//// ====================================================================


Функция ПолучитьТаблицуКоманд()
    
    Команды = Новый ТаблицаЗначений;
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
    
    Возврат Команды;
    
КонецФункции
   Голубушка
 
16 - 25.06.18 - 17:08
Кусок документации.
3. Для дополнительных отчетов принять решение по поводу подключения к подсистеме «Варианты отчетов» (если подсистема внедрена в конфигурацию).
Подробнее про возможности подсистемы «Варианты отчетов». В частности, варианты дополнительного отчета, подключенного к подсистеме «Варианты отчетов», можно размещать в панелях отчетов программы, рядом с отчетами конфигурации.
Для подключения отчета к подсистеме «Варианты отчетов» в свойстве Хранилище вариантов (меню Действия, команда Свойства) следует выбрать ХранилищеВариантовОтчетов.
Резюме. Открыть обработку в конфигураторе , в правом нижнем углу кнопка «Действия» , «Свойства», «Хранилище вариантов» = «ХранилищеВариантовОтчетов». Загрузить отчет как дополнительный, регистрационные данные как обычно (пост 1). В элементе отчета появится вкладка «Варианты отчета», где указан наш вариант. После этого, отчет виден в справочнике вариантов по отбору «Дополнительные».

Всем спасибо, тема закрыта.


Список тем форума
  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует