Как сохранить настройки конфигуратора 1с
Задача: Необходим механизм, позволяющий сохранять произвольные пользовательские данные (настройки). Настройки относятся к внешней обработке, вариант с изменением конфигурации не рассматривается. План видов характеристик трогать тоже нет желания.
В рамках заметки предложено два вариант работы с настройками пользователя.
Ваиант 1
Сохранение настроек:
ИмяНастройки = "ТЕСТ" ;
ЗначениеНастройки = Новый Структура ( "Это настройки произвольного типа, к примеру структура" , "" );
СохранитьЗначение ( ИмяНастройки , ЗначениеНастройки ) ;
- ИмяНастройки - ключ настроек, тип “строка”.
- значение - значение произвольного типа, возможность заманчивая, но не стоит слишком увлекаться и сохранять все подряд.
Восстановление настроек:
ИмяНастройки = "ТЕСТ" ;
ЗначениеНастройки = ВосстановитьЗначение ( ИмяНастройки );
Если ЗначениеНастройки = Неопределено Тогда
Сообщить ( "Нет настройки с ключем ТЕСТ!" );
КонецЕсли;
- ИмяНастройки - ключ настройки, тип “строка”
- возвращает значение произвольного типа, сохраненное ранее.Если восстановить не удалось, возвращает “Неопределено”
Плюсы
- прост в использовании
- возможно сохранить настройки произвольного типа текущего пользователя в текущей информационной базе
Минусы
Только толстый клиент
Вариант 2
Использование объекта ХранилищеОбщихНастроек. Считаю этот вариант наиболее удобным и гибким.
Объект доступен в глобальном контексте. Содержит следующие методы:
Сохранение настроек:
// ключи могут быть произвольными строками
КлючОбъекта = " MIKO " ;
КлючНастроек = "ПанельТелефонии" ;
// настройки могут быть произвольного типа
Настройки = Новый Структура ( "Это настройки произвольного типа, к примеру структура" , "" );
ИмяПользователя = ИмяПользователя ();
// имя пользователя - пользователь владелец настроек, если параметр не указать,
// то настройки будут сохранены для ТЕКУЩЕГО пользователя
ИмяПользователя = ИмяПользователя ();
ХранилищеОбщихНастроек .C охранить ( КлючОбъекта , КлючНастроек , Настройки , , ИмяПользователя );
Под пользователем понимается именно пользователь информационной базы! Пример получения имени текущего пользователя:
// получим имя
ИмяТекущегоПользователя = ИмяПользователя ();
// в типовых конфигурация используется справочник "Пользователи"
// в этом справочнике в стандартном реквизите "Код" обычно
// хранят информацию по имени пользователя, пример получения имени:
ИмяПользователя = Справочники . Пользователи . НайтиПоНаименованию ( "Администратор" ). Код ;
// обычно "Код", для этого справочника - строка фиксированной длинны, потому вероятно разумно обрезать пробелы справа:
ИмяПользователя = СокрП ( ИмяПользователя );
Восстановление настроек:
КлючОбъекта = " MIKO " ;
КлючНастроек = "ПанельТелефонии" ;
ВладелецНастроек = ИмяПользователя ();
// Для восстановления настроек необходимо воспользоваться функцией Загрузить
СтруктураНастроек = Неопределено;
Попытка
СтруктураНастроек = ХранилищеОбщихНастроек . Загрузить ( КлючОбъекта , КлючНастроек ,, ВладелецНастроек );
// если настроек нет, то будет возвращено значение "Неопределено"
Исключение
Сообщить ( "Нет прав на восстановление настроек." );
КонецПопытки;
Если СтруктураНастроек = Неопределено Тогда
Сообщить ( "Не вышло восстановить настройки!" );
КонецЕсли;
ВладелецНастроек - это имя пользователя, владельца настроек. Параметр очень важный.
Настройки других пользователей могут получать ТОЛЬКО пользователи с расширенными правами.
Необходимо право "АдминистрированиеДанных".
Пробелы справа игнорируются!
Плюсы
- Возможно работать со значениями настроек других пользователей.
- Доступность: Сервер, толстый клиент, внешнее соединение.
Получение всех ключей настроек по ключу объекта
// Пример получения всех настроек по ключу объекта
КлючОбъекта = "MIKO" ;
ВладелецНастроек = ИмяПользователя ();
Попытка
// возвращает список значений
// элементы списка - ключи настроек
СтруктураНастроек = ХранилищеОбщихНастроек . ПолучитьСписок ( КлючОбъекта , ВладелецНастроек );
Исключение
Сообщить ( "Нет прав на восстановление настроек." );
КонецПопытки;
Подведем итог
В рамках этой заметки я рассказал о двух вариантах работы с настройками пользователя. Пробуйте :).
Удобный перенос между рабочими местами и резервное копирование настроек конфигуратора через подсистему "Инструменты разработчика".
(3) Наибольшую пользу лично мне приносит настройка панелей инструментов и подсветки текущего и выделенного идентификатора в тексте.
(3)Просто с языка сняли )
Думаю, те кто настраивает цветовые схемы в конфигураторе не часто рабочие места меняет
(6) Даже если все они так делают, в чем у меня есть большие сомнения, то теперь они смогут наконец их менять. Подключение по RDP к серверу заказчика и проведение там работ в конфигураторе - довольно распространенный метод работы по моему опыту. Многие просто не настраивают конфигуратор под себя в таких местах, т.к. это затратно. Но на основном рабочем месте, где проводится бОльшая часть работ, настраивают. Так вот теперь они смогут везде иметь одинаково удобные настройки без долгих и нудных манипуляций.
Я на картинку публикации не зря выбрал настройку "Текущий идентификатор". По моему мнению это - самая полезная настройка в цветовой схеме. Я ее настраивал в большинстве рабочих мест. Те, кто ее не использует, неосознанно лишают себя очень удобной возможности.
Из личного опыта.
Чтобы сохранились настройки конфигуратора, надо закрыть конфигуратор. Иначе если кто убьет процесс с конфигуратором, то настройки станут изначальными.
При этом желательно перезапустить сеанс пользователя, иначе при его аварийном закрытии, настройки опять вернуться к изначальным.
Также желательно еще и перезагрузить компьютер/сервер. Иначе его падение приведет опять к изначальным настройкам конфигуратора.
У нас на серверах чистятся папки пользователей на диске C, когда место заканчивается. Соответственно все настройки конфигуратора удаляются и опять приходилось лезти в настройки.
Когда в очередной раз мне это поднадоело, я стал запускать 1С батником с перенаправлением каталога пользователя. Теперь настройки хранятся в том каталоге который я определил.
Когда приходится использовать в работе новый сервер я просто копирую данный каталог и батник и вуаля настройки конфигуратора у меня те, которые мне нужны.
Прикрепил батник, если кому интересно.
Ура! Наконец-то, а то задолбался в каждом конфигураторе устанавливать цвет фона и текущего идентификатора :D Спасибище за информацию!
К теме. Где-то давно на просторах инфостарта было:
// Светлая цветовая схема
Brightness contrast colorschemes:
Ключевые слова: D24C15
Константы типа "Число": B68900
Константы типа "Строка": 4CA49C
Константы типа "Дата": 859900
Идентификаторы: 258BD3
Операторы: D42F33
Комментарии: 93A1A1 (40A140)
Препроцессор: D53584
Текущий идентификатор: FFFF99 (255, 255, 153)
Выбранный идентификатор: C1FF8B
Прочее: 899A33
Фон: FFFBF0
// Темная цветовая схема
Low contrast colorschemes:
Ключевые слова: D24C15
Константы типа "Число": B68900
Константы типа "Строка": 4CA49C
Константы типа "Дата": 859900
Идентификаторы: 258BD3
Операторы: D42F33
Комментарии: 93A1A1
Препроцессор: D53584
Прочее: 899A33
Фон: 002B36
// Так же привожу цветовую схему для возвращения к настройкам по умолчанию
Default colorschemes:
Ключевые слова: FF0000
Константы типа "Число": 000000
Константы типа "Строка": 000000
Константы типа "Дата": 000000
Идентификаторы: 0000FF
Операторы: FF0000
Комментарии: 008000
Препроцессор: 963200
Прочее: 000000
Фон: FFFFFF
Примеры. Расположение окон. Цвета редактора модулей. Расположение и состав панелей инструментов и меню. Список последних открытых файлов.
Как видно из таблицы, конфигуратор хранит часть настроек в общем для пользователя ОС, часть - для пользователя ОС с учетом базы, часть - для пользователя ОС с учетом базы и ее пользователя.
В подсистеме Инструменты разработчика недавно появился инструмент "Управление профайлами 1С". Он в частности позволяет управлять профайлами конфигуратора - сохранять их в архив и загружать их из архива. Далее описание актуально для версии 4.88 подсистемы.
Сохраняем профайлы конфигуратора в архив
В командной панели над списком профайлов выполняем команду "Настройки конфигуратора"
Она помечает в списке все профайлы конфигуратора. Далее следует снять пометки с тех профайлов, которые не хотите сохранять в архив, т.к. в дальнейшем они будут все вместе загружаться из архива. Если настройки сохраняются с целью резервного копирования и восстанавливаться будут в этой же базе, то оптимальным выбором будет оставить все пометки. В большинстве остальных случаев оптимальным выбором будет оставить пометки только у профайлов, не связанных с базой.
Важно! Профайлы считываются в момент запуска конфигуратора и записываются при его штатном завершении. Поэтому
- При нештатном завершении конфигуратора настройки в профайлах не сохраняются.
- При одновременной работе нескольких конфигураторов в профайлах останутся настройки того, который последним штатно завершится.
Поэтому если вы сделали какие то важные настройки в конфигураторе, то сначала закройте все остальные конфигураторы, затем закройте текущий конфигуратор. Таким образом вы гарантировано сохраните нужные настройки в профайлах.
Теперь нажимаем кнопку "Выгрузить файлы" в командной панели формы и выбираем имя файла архива, в который сохранять выбранные профайлы.
Загружаем профайлы конфигуратора из архива
Нажимаем кнопку "Загрузить файлы" в командной панели формы и выбираем имя файла архива, из которого загружать профайлы. Т.к. профайлы считываются только в момент запуска конфигуратора, то программа предупредит нас о необходимости их закрытия.
После нажатия ОК в списке останутся помеченными только те профайлы, которые содержатся в выбранном архиве. И у пользователя будет запрошено финальное подтверждение
После нажатия ОК профайлы из архива будут записаны поверх помеченных в списке.
Сохранение пользовательских настроек — достаточно важный момент в любой информационной системе, ведь иногда на настройку определенного функционала уходит большое количество времени и сил.
Специально для этого в платформе 1С были созданы 2 объекта — стандартные общие хранилища и хранилища настроек 1С, созданные разработчиком на стадии разработки конфигурации.
Стандартное хранилище настроек платформы 1С
Данная функция появилась вместе с платформой 1С версии 8.2. Она позволяет сохранить любые данные настроек в разрезе объекта, определенной настройки 1С, пользователя.
- Записать настройки можно при помощи метода ХранилищеОбщихНастроек.Сохранить().
- Потом для прочтения нужно использовать ХранилищеОбщихНастроек.Загрузить() с теми же параметрами.
- Если настройка стала не актуальной, её можно удалить методом ХранилищеОбщихНастроек.Удалить().
- Также в разрезе объекта можно получить список сохраненных настроек с помощью метода ХранилищеОбщихНастроек.ПолучитьСписок().
Сохраненные настройки хранятся в отдельной сводной таблице БД.
Хранилище настроек, создаваемое в конфигураторе
Хранилище настроек может создать и сам разработчик в конфигураторе 1С:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Вместо стандартных хранилищ можно назначить хранилище, созданное разработчиком. Эта настройка производится в палитре свойств конфигурации:
Создание своих настроек может понадобиться в том случае, если:
- необходима миграции настроек между базами данных;
- необходим ссылочный контроль данных настроек.
Использование хранилищ настроек в отчетах и обработках 1С
Хранилище настроек можно указать для определенного отчета из конфигурации, указывается в свойствах отчета:
Флаг Сохраняемые данные данные позволяет автоматически сохранить значение при закрытии обработки:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Хранилище конфигурации в 1С 8.2 и 8.3 — это инструмент для групповой разработки решения, встроенный в платформу 1С: Предприятие 8. Хранилище позволяет вести многопользовательскую разработку решений неограниченным количеством пользователей. С его помощью можно увидеть полную историю разработки конфигурации и каждый шаг разработчиков в подробностях.
Рассмотрим настройки и работу с хранилищем конфигурации подробнее.
Как работает хранилище 1С
Хранилище, по сути, это база данных, где хранятся изменения конфигурации. Каждый из разработчиков работает со своей информационной базой, подключенной к хранилищу. Рабочая база так же может быть подключена к хранилищу. Лучше всего общая схема изображена на этой картинке:
Так же в этой БД хранится информации о том, кем захвачен тот и или иной объект. Захват объекта — это метка, устанавливаемая разработчиком. Установленный захват позволяет избежать коллизий при групповой разработке. Пока объект захвачен, никто не может его редактировать.
Захватить можно как объект целиком (рекурсивно), так и отдельно объект или формы.
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
После того как разработчик произвел какие-то действия над объектом, он обязан поместить доработки в хранилище. И тем самым снять пометку о том, что объект захвачен.
Как создать хранилище 1С
Создать хранилище достаточно просто, для этого необходимо выбрать в меню «Конфигурация — Хранилище конфигурации» пункт «Создать хранилище». В появившемся меню достаточно указать путь к будущему расположению хранилища и логин/пароль пользователя-администратора:
При создании сделайте обязательно резервную учетную запись с административными правами — очень часто это выручает.
Как подключиться к хранилищу 1С
Чтобы подключиться к хранилищу конфигурации, нужно выбрать в меню в меню «Конфигурация — Хранилище конфигурации» пункт «Подключиться к хранилищу». В появившемся окне необходимо указать путь к хранилищу и логин/пароль пользователя, нажать «Подключиться»:
В момент подключения Ваша конфигурация заменится конфигурацией из хранилища, будьте внимательны.
Администрирование хранилища конфигурации 1С
Для администрирования хранилища 1С необходимо выбрать в меню конфигурации следующий пункт — «Конфигурация — Хранилище конфигурации — Администрирование»:
- На вкладке «Пользователи» можно добавить или удалить новых пользователей, а также определить состав прав для каждого из них.
- На вкладке «Подключения» можно просмотреть всех пользователей, подключившихся к хранилищу, по необходимости отключить их.
- На вкладке «Отмена захвата» Вы можете снять захват любого пользователя на определенный объект, если конечно же Вы имеете права на это.
Как просмотреть историю хранилища 1С
Для просмотра истории надо зайти в меню «Конфигурация — Хранилище конфигурации», выбрать пункт «История хранилища»:
В истории хранилища 1С можно увидеть, когда, кем и что было изменено.
Разработка с хранилищем 1С 8.3
Работу с хранилищем условно можно разделить на основные действия:
-
конфигурации из хранилища конфигурации 1С;
- обновить статусы хранилища 1С;
- захват в хранилище;
- помещение в хранилище.
Остановимся подробнее на каждом действии:
Обновить статусы хранилища 1С
Производит получение последних статусов объектов (захвачен или нет).
Вызывается: «Конфигурация — Хранилище конфигурации — Обновить статусы».
Обновление конфигурации из хранилища конфигурации 1С
Действие позволит получить все измененные объекты конфигурации, которые были помещены в хранилище. Выполнение данной команды так же обновляет статусы объектов.
Вызывается: «Конфигурация — Хранилище конфигурации — Обновить конфигурацию из хранилища».
Захват в хранилище конфигурации 1С
С помощью этой команды можно заблокировать изменение данного объекта для других разработчиков: пока объект захвачен Вами, никакой пользователь не может изменить его до тех пор, пока Вы не поместите объект обратно.
Произвести захват можно, вызвав правой кнопкой контекстное меню у объекта метаданных:
В открывшемся окне можно установить некоторые настройки:
- Выполнять рекурсивно — позволяет захватить все подчиненные объекты — формы и т.д.
- Разрешать получать захваченные — позволяет получать другим пользователям промежуточные версии объекта
Помещение в хранилище 1С
После изменения объекта его необходимо поместить обратно в хранилище, делается это так же, как захват, только выбирается пункт «Поместить в хранилище»:
При помещении обязательно заполняйте поле «комментарий», это очень важно при групповой разработке. Через полгода Вы и не вспомните, зачем производили те или иные действия. Так же, как у захвата, у помещения есть свои специфичные настройки:
- Выполнять рекурсивно — позволяет поместить все подчиненные объекты — формы и т.д.
- Оставить захваченными — позволяет поместить «промежуточную» версию объекта, оставив при этом захват пользователем
Как добавить новый объект в хранилище 1С
Для этого необходимо захватить «корень» конфигурации, а после добавления объектов (справочников, регистров, перечислений и т.п.) поместить корень конфигурации обратно в хранилище.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Читайте также: