gifts2017

Менеджер вариантов отчетов (копирование, удаление)

Опубликовал Сергей Начина (serg_gres) в раздел Программирование - Работа с интерфейсом

Копирование вариантов отчетов

Управляемая форма.

Обработка позволяет копировать и удалять варианты отчетов пользователей.

Работает с ХранилищеВариантовОтчетов (проверено на конфигурации, где варианты отчетов сохраняются в стандартном хранилище).

Теоретически должно работать на любой конфигурации, где у отчета "не переопределннно хранилище варианта".

Тоесть, если отчет открыть в конфиграторе, на закладке "Прочее", реквизит "Хранилище вариантов" - должно быть пусто.

 

Для копирования варианта отчета нужно :

 

1. установить курсор на строку с вариантом отчета, в колонке с пользователем, вариант которого нужно скопировать

2. нажать правую кнопку мыши и выбрать пункт "Скопировать"

3. в появившемся списке пользователей галочками отметить пользователей, которым будет скопирован вариант отчета

4. нажать "ок"

Скачать файлы

Наименование Файл Версия Размер
МенеджерВариантовОтчетов.epf 277
.epf 10,65Kb
15.01.12
277
.epf 10,65Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
5. Сергей Ожерельев (Поручик) 15.01.12 03:02
(0) В общем, я понял в чём дело. Ошибка выскакивает на строке ниже в том случае, когда имя пользователя не соответствует требованиям к наименованиям переменных, то есть содержит спецсимволы, пробелы, etc.

Код
      ДеревоОбъект.Колонки.Добавить(СтрокаПользователь, Новый ОписаниеТипов("Булево"));
Показать полностью


Для полной универсальности следует переписать функцию ПолучитьМассивПользователей() для возврата результата в виде таблицы значений или структуры.

Для преобразования имен пользователей в имена для колонок дарю функцию.

Код
// Преобразует строку для использования в качестве имени переменной.
//
// Параметры:
//  пТекст        – Строка.
//
// Возвращаемое значение:
//  Строка – преобразованная строка.
//
Функция ПреобразоватьТекстВИмяПеременной(Знач пТекст) Экспорт

   РазрешенныеСимволы = " _";
   РазрешенныеСимволы = РазрешенныеСимволы + "АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
   РазрешенныеСимволы = РазрешенныеСимволы + "0123456789ABCDEFGHIKLMNJOPQRSTUVWXYZ";
   
   Текст = "";
   Для Счетчик = 1 По СтрДлина(пТекст) Цикл
      СимволСтроки = Сред(пТекст, Счетчик, 1); 
      Если Найти(РазрешенныеСимволы, ВРег(СимволСтроки)) > 0 Тогда
         Текст = Текст + СимволСтроки;
      КонецЕсли; 
   КонецЦикла;
   
   Текст = СтрЗаменить(Текст, " ", "_");
   Возврат Текст;

КонецФункции // ПреобразоватьТекстВИмяПеременной()
Показать полностью
6. Сергей Ожерельев (Поручик) 15.01.12 03:04
А теперь внимание. Конфа та же


{Форма.Форма.Форма(87)}: Метод объекта не обнаружен (ПолучитьСписок)
	СписокВариантовОтчета = ХранилищеВариантовОтчетов.ПолучитьСписок(КлючОбъекта,ТекПользователь); 


То есть на конфигурациях с переопределённым хранилищем не работает. В Рознице 2 тоже не будет работать.
7. Сергей Ожерельев (Поручик) 15.01.12 03:07
Этот пост считать первым.

(0) Управление торговлей, редакция 11.0 (11.0.7.13)
Код
{Форма.Форма.Форма(77)}: Ошибка при вызове метода контекста (Добавить)
ДеревоОбъект.Колонки.Добавить(СтрокаПользователь, Новый ОписаниеТипов("Булево"));
по причине:
Неверное имя колонки
8. Сергей Начина (serg_gres) 15.01.12 15:12
Обновил обработку, исправлена ошибка с недопустимыми символами в именах пользователей (с использованием любезно предоставленной Поручиком функцией).
9. Сергей Ожерельев (Поручик) 15.01.12 15:58
(8) Но в УТ 11, Рознице 2, УНФ по прежнему не работает, у меня взлетело на демо-базе БСП.
10. Сергей Начина (serg_gres) 15.01.12 16:10
Взлетит только на конфигурациях у которых не переопределено хранилище вариантов отчетов.
Обработка работает с ХранилищеВариантовОтчетов (ReportsVariantsStorage)
Тип: СтандартноеХранилищеНастроекМенеджер;

Если я правильно понимаю конфигурации (УТ 11, Розница 2 УНФ) сохраняют варианты не в (Тип: СтандартноеХранилищеНастроекМенеджер),
а в (Тип: ХранилищеНастроекМенеджер).

И у переопределенного хранилища нет метода ПолучитьСписок().

В этих случаях настройки хранятся видимо в регистре сведений, с ним и нужно работать.

Переделывать обработку не буду, т.к. на моей конфигурации все работает хорошо.
И обработку делал именно для себя, и выложил ее не для рейтинга или денег, а просто чтобы помочь людям.

PS по идее в конфигурациях, где определены свои хранилища должны быть и менеджеры работы с этими настройками...
11. Антон Чарушкин (hulio) 16.01.12 08:47
Представил, как будет выглядеть дерево в базе с хотя бы 50 пользователями - стало жутко :D
Это ж на каждого пользователя отдельная колонка полагается ...
12. Сергей Ожерельев (Поручик) 16.01.12 09:21
(11) Воспринимайте обработку, как пример динамической генерации формы по данным информационной базы с корректным формированием имён реквизитов. Для типовых конфигураций на основе БСП она всё равно практического применения не имеет.
13. Владимир Владимир (vladimir_che) 16.01.12 14:04
14. Сергей Начина (serg_gres) 16.01.12 14:19
С 50 пользователями - возможно и не удобно, для больших баз видимо пользователей нужно разворачивать вниз.
А с 10 пользователями гораздо удобнее вправо, чем вниз.
15. Сергей Начина (serg_gres) 16.01.12 14:34
Первоначально думал сделать вообще без разворота пользователей (только с отбором по одному), но решил что для меня это будет не удобно. И переделал так как есть сейчас, и очень этим доволен.
16. Виталий Ермоленко (vitaliy.ermolenko) 13.09.12 13:17
при копировании из колонки "Объект" выдает ошибку (стр.187), видимо нужно добавить проверку
17. ivdic (ivdic) 07.02.13 10:05
Не все варианты отчетов выдает в 1С Документооборот
18. GrayMaster (GrayMaster) 02.02.16 10:01