1с как обработке сохранить настройки
Перейти к содержимому

1с как обработке сохранить настройки

  • автор:

1С как сохранить настройки внешней обработки

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

Решение

Для сохранения настроек воспользуемся хранилищем настроек. Если конфигурация позволяет, то можно создать свое хранилище, или же воспользоваться одним из системных. Считаем, что конфигурация типовая(не редактируется), в качестве хранилища будем использовать ХранилищеНастроекДанныхФорм.

В форме определим команду Сохранить настройки, в которой вызовем метод Сохранить() указав ключ объекта, ключ настроек, сами настройки и пользователя:

В форме определим команду Восстановить настройки, в которой спросим про восстановление(пример с вопросом в режиме без модальных вызовов разбирал здесь) и при утвердительном ответе вызовем метод Загрузить() указав ключ объекта, ключ настроек и пользователя:

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

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

В предыдущих версиях типовых (УТ10.3, БП 2.0, ЗУП 2.5) никаких проблем с этим не было, т.к. был механизм Дополнительных параметров, позволяющий сохранять и использовать произвольные параметры при работе с внешней обработкой, однако, в новых версиях (УТ11, БП 3.0, ЗУП 3.1 и т.д.) нас лишили этого удобного механизма.

Ниже предлагается описание одного из способов сохранения и использования произвольных доп.параметров для внешних обработок. Для этой цели воспользуемся объектом "ХранилищеОбщихНастроек".

У этого объекта есть метод

Сохранить( , , , , )

По умолчанию (если параметр не задан) настройки сохраняются для текущего пользователя. Важно понимать, что во-первых, это просто строка, а во-вторых, в случае если у пользователя, вызвашего этот метод есть право "АдминистрированиеДанных" он может работать с настройками других пользователей и мы можем сохранить общие настройки для некого виртуального "пользователя" ВнешниеОбработки, естественно, никакого пользователя ВнешниеОбработки у нас в базе нет, это просто ключ, в разрезе которого мы будем хранить настройки для всех внешних обработок.

в нашем случае ключом будет Имя внешней обработки для которой сохраняем настройки, а — строка "ДополнительныеПараметры"(имя можно придумать любое).
Сами настройки передаются в параметре тип параметра произвольный. Удобнее всего для наших целей использовать структуру.

Вот собственно и все. Далее в самой внешней обработке мы сможем считать настройки с помощью метода

Загрузить( , , , )

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

Буду рад, если кому-то пригодится этот прием в работе. Также,если после прочтения остались вопросы с удовольствием отвечу на них в комментариях.

В работе службы сопровождения 1С нередко возникают ситуации, когда нужно обеспечить отсутствие пользователей в базе для проведения каких-то регламетных процедур или сервисных работ. Некоторые такие процедуры должны выполняться регулярно, и было бы удобно настроить расписание установки блокировки на вход в информационную базу.

1) Создание обработки "Блокировка работы пользователей" для запуска по расписанию

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

Для этого в модуле внешней обработки в процедуре СведенияОВнешнейОбработке добавляем команду с вариантом использования "ВызовСерверногоМетода"

Также добавляем в модуль процедуру "ВыполнитьКоманду(ИдентификаторКоманды)", которая будет обрабатывать вызов нашего серверного метода

В процедуре "ВыполнитьУстановку" будем заполнять необходимые реквизиты блокировки и затем вызывать процедуру глобального контекста "УстановитьБлокировкуСеансов".

Теперь все готово для того, чтобы зарегистировать нашу обработку в списке дополнительных отчетов и обработок и настроить расписание запуска

Итак, теперь у нас есть обработка, которая запускается по расписанию и устанавливает блокировку работы пользователей.
Все здорово, кроме одного: параметры нашей блокировки (время начала, время окончания, текст сообщения для пользователей и т.д.) нам пришлось прописать непосредственно в коде обработки, соответственно, когда появится необходимость эти параметры поменять — нам придется менять код обработки и заново регистрировать ее.
Не очень красивое решение. Для решения этой проблемы создадим механизм, который позволит сохранять для нашей обработки произвольный набор параметров.

2) Сохранение произвольных параметров для дополнительных обработок

Для сохранения настроек воспользуемся объектом "ХранилищеОбщихНастроек" и его методом

По умолчанию (если параметр не задан) настройки сохраняются для текущего пользователя. Однако, если у пользователя, вызвашего этот метод
есть права "АдминистрированиеДанных" он может работать с настройками других пользователей и к тому же ИмяПользователя это просто строка — этим-то мы и воспользуемся для решения своей задачи:
мы будем сохранять настройки для "пользователя" ДополнительныеОбработки(естественно никакого пользователя ДополнительныеОбработки у нас в базе нет, это просто ключ, в разрезе которого мы будем хранить настройки для внешних обработок)

в нашем случае ключом будет Имя внешней обработки для которой сохраняем настройки, а — строка "ДополнительныеНастройки"(имя можно придумать любое).
Сами настройки передаются в параметре тип параметра произвольный. Для нашей задачи мы будем использовать, структуру.

Вот собственно и все. Теперь создаем еще одну внешнюю обработку "СохранениеНастроекДопОбработок" и делаем в ней удобную форму для работы с нашим методом "Сохранить".
На форме будем выбирать внешнюю обработку из списка зарегистрированных в базе, а в табличной части будем указывать настройки, которые хотим сохранить в виде "ИмяНастройки-ЗначениеНастройки".

Теперь остается в обработке блокировки пользователей считать сведения о настройках для нашей обработки

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

В качестве примера реализации описанного выше подхода во вложении приведены обработки:

1. Внешняя обработка "Сохранение настроек доп.обработок" — сохраняет произвольный перечень параметров для выбранной на форме дополнительной обработки.

2. Внешняя обработка "Блокировка пользователей (автозапуск)" — позволяет запускать обработку блокировки по расписанию и считывать сохраненные для обработки настройки.

1С. Сохранение настроек обработки

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

Решение

Для сохранения настроек воспользуемся хранилищем настроек. Если конфигурация позволяет, то можно создать свое хранилище, или же воспользоваться одним из системных. Считаем, что конфигурация типовая(не редактируется), в качестве хранилища будем использовать ХранилищеНастроекДанныхФорм.

В форме определим команду Сохранить настройки, в которой вызовем метод Сохранить() указав ключ объекта, ключ настроек, сами настройки и пользователя:

В форме определим команду Восстановить настройки, в которой спросим про восстановление(пример с вопросом в режиме без модальных вызовов разбирал здесь) и при утвердительном ответе вызовем метод Загрузить() указав ключ объекта, ключ настроек и пользователя:

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

Хранилище настроек в 1С 8.3

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

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

Приобретя для фирмы программу «1С: Бухгалтерия» и при правильной установке настроек вы сможете сэкономить свое время работая с данной программой. Мы подготовили для вас простую инструкцию, позволяющую самостоятельно быстро настроить программу.

Все хранилища делятся на два вида. Давайте рассмотрим примеры их использования на программе 1С: Бухгалтерия 3.0.

Стандартное хранилище настроек пользователя 1С

В программе есть специальная функция стандартного хранения, которая предустановлена еще на стадии разработки. Если вы выбираете такой вариант, то все установки, которые вы сделаете, будут храниться в таблице ИБ.

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

Стандартное хранилище системой используется в том случае, если поля будут пустыми.

Ниже представлены примеры параметров и кодов, которые может использовать администратор при указании нового места хранилища:

  • код для хранилища вариантов отчетов:
  • код для хранилища пользовательский настроек отчетов:
  • код для хранилища настроек данных форм:
  • код для хранилища общих настроек:
  • код для хранилища системных настроек:
  • код для хранилища пользовательских настроек динамических списков:

Механизм работы

Как работает «Хранилище настроек»? Оно является объектом метаданных, который пописывает порядок хранения установленных настроек у некоторых объектов. Так, для примера мы откроем программу, «1C: Бухгалтерия», перейдем в конфигурационный режим и развернем дерево данных. Нам понадобится узел, который находится по следующему пути:

  • Общие;
  • Хранилище настроек;

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

Как использовать в обработках и отчетах

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

Для управляемых форм есть два варианта:

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

Формы отчета и реквизиты

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

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

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

Хотите получать подобные статьи по четвергам?
Быть в курсе изменений в законодательстве?
Подпишитесь на рассылку

Добавить комментарий

Ваш адрес email не будет опубликован.