Имя: Пароль:
1C
 
Как зарегистрировать дополнительный отчет в справочнике «Варианты отчетов».
0 Голубушка
 
25.06.18
11:20
Конфигурация ЗУП 3.1, версия БСП  2.4.6.40. Есть внешний отчет

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

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

Нужно зарегистрировать этот отчет в  справочнике «Варианты отчетов», чтоб включить его в рассылку для пользователей.
1 Голубушка
 
25.06.18
11:48
ап
2 rozer76
 
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
телефон то же ?
10 hhhh
 
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
= В пояснение к выше пощенному =

Выбранные ссылки с Дополнительными отчетами добавляются не всегда
15 Начинающий_13
 
25.06.18
15:51
// Интерфейс для регистрации обработки.
// Вызывается при добавлении обработки в справочник "ВнешниеОбработки"
//
// Возвращаемое значение:
// Структура:
// Вид - строка - возможные значения:    "ДополнительнаяОбработка"
//                                        "ДополнительныйОтчет"
//                                        "ЗаполнениеОбъекта"
//                                        "Отчет"
//                                        "ПечатнаяФорма"
//                                        "СозданиеСвязанныхОбъектов"
//
// Назначение - массив строк имен объектов метаданных в формате:
//            <ИмяКлассаОбъектаМетаданного>.[ * | <ИмяОбъектаМетаданных>]
//            Например, "Документ.СчетЗаказ" или "Справочник.*"
//            Прим. параметр имеет смысл только для назначаемых обработок
//
// Наименование - строка - наименование обработки, которым будет заполнено
//                        наименование справочника по умолчанию - краткая строка для
//                        идентификации обработки администратором
//
// Версия - строка - версия обработки в формате <старший номер>.<младший номер>
//                    используется при загрузке обработок в информационную базу
// БезопасныйРежим – Булево – Если истина, обработка будет запущена в безопасном режиме.
//                            Более подбробная информация в справке.
//
// Информация - Строка- краткая информация по обработке, описание обработки
//
// Команды - ТаблицаЗначений - команды, поставляемые обработкой, одная строка таблицы соотвествует
//                            одной команде
//                колонки:
//                 - Представление - строка - представление команды конечному пользователю
//                 - Идентификатор - строка - идентефикатор команды. В случае печатных форм
//                                            перечисление через запятую списка макетов
//                 - Использование - строка - варианты запуска обработки:
//                        "ОткрытиеФормы" - открыть форму обработки
//                        "ВызовКлиентскогоМетода" - вызов клиентского экспортного метода из формы обработки
//                        "ВызовСерверногоМетода" - вызов серверного экспортного метода из модуля объекта обработки
//                 - ПоказыватьОповещение – Булево – если Истина, требуется оказывать оповещение при начале
//                                и при окончании запуска обработки. Прим. Имеет смысл только
//                                при запуске обработки без открытия формы.
//                 - Модификатор – строка - для печатных форм MXL, которые требуется
//                                        отображать в форме ПечатьДокументов подсистемы Печать
//                                        требуется установить как "ПечатьMXL"
//
Функция СведенияОВнешнейОбработке() Экспорт
    
    ПараметрыРегистрации = Новый Структура;
    
    ПараметрыРегистрации.Вставить("Вид"                   , "ДополнительныйОтчет");
    //ПараметрыРегистрации.Вставить("Назначение"            , Неопределено);
    ПараметрыРегистрации.Вставить("Наименование"          , НСтр("ru = 'ШАБЛОН Наименование отчета ВНЕШНИЙ ОТЧЕТ'"));
    ПараметрыРегистрации.Вставить("Версия"                , "0.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим"       , Истина);
    ПараметрыРегистрации.Вставить("Информация"            , НСтр("ru = 'ШАБЛОН Информация'"));
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    
    ДобавитьКоманду(ТаблицаКоманд, НСтр("ru = 'ШАБЛОН ИмяКоманды'"), "ШАБЛОНИдентификатор",    "ОткрытиеФормы", ,);
    
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
    
    Возврат ПараметрыРегистрации;
    
КонецФункции

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

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

Всем спасибо, тема закрыта.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший