Как в 1с сохранить настройки отчета в

Обновлено: 04.07.2024

Использование объекта ХранилищеОбщихНастроек. Считаю этот вариант наиболее удобным и гибким.

Объект доступен в глобальном контексте. Содержит следующие методы:

Сохранение настроек:

// ключи могут быть произвольными строками
КлючОбъекта = " MIKO " ;
КлючНастроек = "ПанельТелефонии" ;
// настройки могут быть произвольного типа
Настройки = Новый Структура ( "Это настройки произвольного типа, к примеру структура" , "" );
ИмяПользователя = ИмяПользователя ();

// имя пользователя - пользователь владелец настроек, если параметр не указать,
// то настройки будут сохранены для ТЕКУЩЕГО пользователя
ИмяПользователя = ИмяПользователя ();
ХранилищеОбщихНастроек .C охранить ( КлючОбъекта , КлючНастроек , Настройки , , ИмяПользователя );

Под пользователем понимается именно пользователь информационной базы! Пример получения имени текущего пользователя:

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

Восстановление настроек:

КлючОбъекта = " MIKO " ;
КлючНастроек = "ПанельТелефонии" ;
ВладелецНастроек = ИмяПользователя ();
// Для восстановления настроек необходимо воспользоваться функцией Загрузить
СтруктураНастроек = Неопределено;
Попытка
СтруктураНастроек = ХранилищеОбщихНастроек . Загрузить ( КлючОбъекта , КлючНастроек ,, ВладелецНастроек );
// если настроек нет, то будет возвращено значение "Неопределено"
Исключение
Сообщить ( "Нет прав на восстановление настроек." );
КонецПопытки;

Если СтруктураНастроек = Неопределено Тогда
Сообщить ( "Не вышло восстановить настройки!" );
КонецЕсли;

ВладелецНастроек - это имя пользователя, владельца настроек. Параметр очень важный.

Настройки других пользователей могут получать ТОЛЬКО пользователи с расширенными правами.

Необходимо право "АдминистрированиеДанных".

Пробелы справа игнорируются!

Плюсы
  • Возможно работать со значениями настроек других пользователей.
  • Доступность: Сервер, толстый клиент, внешнее соединение.

Получение всех ключей настроек по ключу объекта

// Пример получения всех настроек по ключу объекта
КлючОбъекта = "MIKO" ;
ВладелецНастроек = ИмяПользователя ();
Попытка
// возвращает список значений
// элементы списка - ключи настроек
СтруктураНастроек = ХранилищеОбщихНастроек . ПолучитьСписок ( КлючОбъекта , ВладелецНастроек );
Исключение
Сообщить ( "Нет прав на восстановление настроек." );
КонецПопытки;


Подведем итог

В рамках этой заметки я рассказал о двух вариантах работы с настройками пользователя. Пробуйте :).

Задача: нужно хранить настройки отчета на СКД в базе, причем у каждого поль зователя должно быть произвольное количество настроек.

Для хранения настроек отчетов в УПП существуют два метаданных. Регистр сведений "Сохраненные настройки" и одноименный справочник.

Структура метаданных

Их структура похожа, в обоих есть информация:

  1. О пользователе, который может использовать данную настройку
  2. "СохранятьАвтоматически" - сохранять настройку при закрытии
  3. "ИспользоватьПриОткрытии" - при открытии будет выведен отчет по настройке с данной галочкой. Галочка может стоять только у одной настройки к каждому отчету. Если ни у одной настройки галочки нет, то будет выведена типовая настройка СКД.
  4. Реквизит с типом "Хранилище значения" (в справочнике реквизит "ХранилищеНастроек", в регистре сведений ресурс "СохраненнаяНастройка"). В данном объекте собсвенно и хранятся настройки. Как известно хранилище значения может хранить любое значение.

В регистре сведений хранятся настройки для отчетов, построенных на универсальном отчете, в справочнике - построенных на СКД. Логично сохранять настройки в справочнике. Но после беглого взгляда возникает несколько но:

шаблон СКД

  1. Данный справочник содержит предопределенные элементы, имя которых совпадает с именами отчетов. Свои же отчеты туда добавить нельзя, так как в результате обновления может возникнуть коллизия, 1с добавит новые элементы и в тоже время будут существовать предопределенные элементы, добавленные пользователем.
  2. Справочник заточен на работу с шаблоном отчета 1с, и процедуры и функции работы с сохранением настроек выдрать из него достаточно сложно.

Регистр сведений. Как говорилось выше - в нем хранятся настройки для отчетов на универсальном отчете. Но просмотрев механизм, я решил использовать его, так как процедуры работы с сохранением и восстановлением настроек взять гораздо проще, и более того, данный механизм использован не только в отчетах, но и в типовой обработке "Универсальный журнал", код из которой, немного изменив, я и приспоспособил для решения данной задачи.

Сохранить / восстановить настройки

Итак. На форму надо добавить кнопки сохранения и восстановления значений настроек , добавить процедуры к ним, и написать код в процедуры "ПриОткрытии" и "ПриЗакрытии".

Процедура ДействияФормыСохранитьНастройки ( Кнопка )

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

СтруктураНастройки . Вставить ( "Пользователь" , глЗначениеПеременной ( "глТекущийПользователь" ));
СохраненнаяНастройка = Новый ХранилищеЗначения ( КомпоновщикНастроек . ПолучитьНастройки ());
СтруктураНастройки . Вставить ( "СохраненнаяНастройка" , СохраненнаяНастройка );

ВозвращаемаяСтруктура = УниверсальныеМеханизмы . СохранениеНастроек ( СтруктураНастройки );

Если ВозвращаемаяСтруктура <> Неопределено Тогда
мТекущаяНастройка = ВозвращаемаяСтруктура ;
Иначе
мТекущаяНастройка = СтруктураНастройки ;
КонецЕсли;

Сохранение настройки

Процедура ДействияФормыВосстановитьНастройки ( Кнопка )

СтруктураНастройки = Новый Структура ;
СтруктураНастройки . Вставить ( "Пользователь" , глЗначениеПеременной ( "глТекущийПользователь" ));
СтруктураНастройки . Вставить ( "ИмяОбъекта" , Строка ( ЭтотОбъект ));
СтруктураНастройки . Вставить ( "НаименованиеНастройки" , ?( мТекущаяНастройка = Неопределено, Неопределено, мТекущаяНастройка . НаименованиеНастройки ));

ВозвращаемаяСтруктура = УниверсальныеМеханизмы . ВосстановлениеНастроек ( СтруктураНастройки );

Если ВозвращаемаяСтруктура <> Неопределено Тогда
мТекущаяНастройка = ВозвращаемаяСтруктура ;
КомпоновщикНастроек . ЗагрузитьНастройки ( мТекущаяНастройка . СохраненнаяНастройка . Получить ());
КонецЕсли;

Восстановление настройки

Процедура ПриОткрытии ()
СтруктураНастройки = Новый Структура ;
СтруктураНастройки . Вставить ( "Пользователь" , глЗначениеПеременной ( "глТекущийПользователь" ));
СтруктураНастройки . Вставить ( "ИмяОбъекта" , Строка ( ЭтотОбъект ));

Если УниверсальныеМеханизмы . ПолучитьНастройкуИспользоватьПриОткрытии ( СтруктураНастройки ) Тогда
мТекущаяНастройка = СтруктураНастройки ;
КомпоновщикНастроек . ЗагрузитьНастройки ( мТекущаяНастройка . СохраненнаяНастройка . Получить ());
Иначе
//установка первоначальных настроек, например периода и т.д.
КонецЕсли;
КонецПроцедуры

Если мТекущаяНастройка <> Неопределено И мТекущаяНастройка . НаименованиеНастройки <> Неопределено
И мТекущаяНастройка . Свойство ( "СохранятьАвтоматически" ) И мТекущаяНастройка . СохранятьАвтоматически Тогда

ТекПользователь = глЗначениеПеременной ( "глТекущийПользователь" );
Если ТекПользователь <> мТекущаяНастройка . Пользователь Тогда
Ответ = Вопрос ( "Вы восстановили настройку другого пользователя, сохранить ее в
|ваших настройках?" , РежимДиалогаВопрос . ДаНет );
Если Ответ = КодВозвратаДиалога . Да Тогда
Если ВвестиСтроку ( мТекущаяНастройка . НаименованиеНастройки ,
"Укажите наименование сохраняемой настройки" ) Тогда
мТекущаяНастройка . Пользователь = ТекПользователь ;
УниверсальныеМеханизмы . СохранитьНастройку ( мТекущаяНастройка );
КонецЕсли;
КонецЕсли;
Иначе
УниверсальныеМеханизмы . СохранитьНастройку ( мТекущаяНастройка );
КонецЕсли;
КонецЕсли;

Данный, достаточно небольшой код, позволяет сохранять и восстанавливать настройки внешнего отчета на СКД.

Пошаговая инструкция сохранения настройки отчета в файл.

Шаг 1. Откройте Универсальный отчет в разделе Отчеты — Стандартные отчеты — Универсальный отчет .

Шаг 2. Вызовите команду Изменить вариант отчета : кнопка ЕЩЕ — Прочее — Изменить вариант отчета…


Шаг 3. Из формы изменения варианта настройки вызовите команду Сохранить настройки : кнопка ЕЩЕ — Сохранить настройки .


Шаг 4. В форме сохранения настройки в файл укажите:

  • Имя файла — название настройки, например, Переходящие договоры;
  • Тип файла — Документ XML (*.xml).


Настройки Универсального отчета сохранены в файл Переходящие договоры.xml.


Загрузить настройки

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

Пошаговая инструкция загрузки настроек Универсального отчета из файла.

Шаг 1. Откройте Универсальный отчет в разделе Отчеты — Стандартные отчеты — Универсальный отчет .

Шаг 2. Вызовите команду Изменить вариант отчета : кнопка ЕЩЕ — Прочее — Изменить вариант отчета…


Шаг 3. Из формы изменения варианта отчета вызовите команду Загрузить настройки : кнопка ЕЩЕ — Загрузить настройки .


Шаг 4. Выберите файл настройки для загрузки.


Шаг 5. Нажмите на кнопку Завершить редактирование .

Шаг 6. По кнопке Сформировать сформируйте отчет с загруженными настройками.


Для того чтобы каждый раз не пришлось загружать настройки отчета БухЭксперт8 советует сохранить настройки отчета в 1С по кнопке Сохранить вариант отчета .

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

См. также:

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

    У вас нет доступа на просмотр Чтобы получить доступ:Оформите коммерческую.В данной статье мы расскажем о том, как с помощью..У вас нет доступа на просмотр Чтобы получить доступ:Оформите коммерческую.

Карточка публикации

(7 оценок, среднее: 4,43 из 5)

Данную публикацию можно обсудить в комментариях ниже.
Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>

Все комментарии (3)

У меня вопрос, пока я еще на версии 2.5. У меня там настроен очень удобный универсальный отчет, который я бы хотела перенести в версию 3, когда туда перейду. А переходить намерена с нового года. Поможете?


Укажем папку, в которую будет распаковывать файлы (можно оставить папку по умолчанию) и воспользуемся командой Извлечь .


В нашем примере будет распакован файл Анализ взносов в фонды_buhexpert.xml.


Это и есть настройки, которые дальше будут загружены в отчет.

Загрузка настроек в отчет


Воспользуемся командой Еще – Прочее – Изменить вариант отчета .

В открывшейся форме обратимся к команде Еще – Загрузить настройки .


Выберем файл с настройкой, по команде Открыть подгрузим настройки.



Сохранение настроек отчета

Сохраним настройку отчета по команде Варианты отчета – Сохранить вариант отчета .


Зададим наименование варианта отчета и укажем для кого настройка будет доступа: только для автора или для указанных пользователей.

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


Использование отчета

Откроем раздел, в котором сохранили настройку и найдем наименование нужного варианта отчета.


Откроем отчет, установим необходимые отборы и сформируем отчет:


Если Вы еще не подписаны:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С:ЗУП, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

    В программе Бухгалтерия ред. 3.0 разработчиками предусмотрен типовой набор отчетов.Автор: Грянина Е.А. Дата записи: 2015 г...

Карточка публикации

(2 оценок, среднее: 5,00 из 5)

Данную публикацию можно обсудить в комментариях ниже.
Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>

Все комментарии (4)

Добрый день.
А где найти на сайте настройки отчетов для скачивания?

Здравствуйте , при формировании анализа ОПС за 9 мес. выдает ошибку. Скрин прилагаю.

Здравствуйте!
Подскажите с какой страницы скачивали настройки и в каком релизе работаете?

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявку

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

Читайте также: