Сделал небольшую внешнюю обработку для переноса пользовательских настроек между пользователями или информационными базами 1С.
Необходимость появилась при работе с несколькими базами: пользователю приходится повторно настраивать списки, колонки, формы, интерфейс и другие персональные настройки. Особенно неудобно, когда базы имеют одинаковую или близкую конфигурацию.
Обработка позволяет один раз выгрузить настройки пользователя в файл, а затем загрузить их в другой базе или другому пользователю.
Что переносится
На данный момент обработка работает с тремя стандартными хранилищами платформы:
ХранилищеСистемныхНастроек
ХранилищеНастроекДанныхФорм
ХранилищеПользовательскихНастроекДинамическихСписков
То есть переносятся в том числе:
- персональные настройки управляемых форм;
- настройки колонок форм и списков;
- отборы и сортировки динамических списков;
- часть настроек интерфейса пользователя;
- другие настройки, которые платформа хранит в указанных хранилищах.
ХранилищеОбщихНастроек специально не переносится.
В нем конфигурации могут хранить уже прикладные настройки конкретного пользователя: организацию, склад, подразделение, рабочие параметры и т. д. Автоматически переносить такие данные между базами считаю небезопасным.
Как пользоваться
Обработка внешняя, изменений в конфигурацию вносить не требуется.
Открываем .epf через:
Файл → Открыть
Для выгрузки:
- Выбираем пользователя-источника.
- Нажимаем «Выгрузить настройки».
- Указываем, куда сохранить файл настроек.
Пользователя вручную вводить не требуется — выбор выполняется из списка пользователей информационной базы.
Далее открываем эту же обработку в базе-приемнике.
Для загрузки:
- Выбираем пользователя, которому необходимо загрузить настройки.
- Нажимаем «Загрузить настройки».
- Выбираем ранее сохраненный файл.
После этого записи сохраняются уже под выбранным пользователем базы-приемника.
Для чего можно использовать
Например, есть рабочая база и ее копия / тестовая база.
В рабочей базе пользователь уже настроил:
Заказы клиентов
|
нужные колонки
|
ширину колонок
|
отборы
|
сортировки
Вместо повторной ручной настройки выгружаем его настройки:
Рабочая база
Пользователь Иванов
|
файл
|
Тестовая база
Пользователь Иванов
Также можно перенести настройки между двумя пользователями одной базы:
Иванов
|
файл настроек
|
Петров
Это удобно, например, когда для сотрудников одного отдела нужно подготовить одинаковое рабочее место.
Важные ограничения
Лучше всего использовать обработку между одинаковыми или близкими версиями одной конфигурации.
Например:
КА |; копия КА
КА рабочая |; КА тестовая
копия базы |; рабочая база
Если формы в базах значительно отличаются, часть сохраненных настроек может быть неприменима.
Также нужно учитывать, что внутри настроек могут находиться ссылки на объекты информационной базы.
Например, пользователь сохранил отбор:
Если в другой базе соответствующий объект отсутствует либо имеет другую ссылку, такой отбор корректно перенести между совершенно независимыми базами невозможно.
Поэтому обработка прежде всего рассчитана на копии баз или базы с одинаковой НСИ.
Обновление настроек после загрузки
Некоторые изменения становятся видны сразу.
Для уже открытых форм может потребоваться закрыть форму и открыть ее повторно. В отдельных случаях для полного применения интерфейсных настроек может потребоваться новый сеанс пользователя.
Это связано с тем, что открытая форма уже получила свои настройки при создании и не обязательно повторно считывает их после изменения хранилища.
Что обработка не делает
Обработка не переносит:
- пользователей информационной базы;
- права и роли;
- настройки доступа;
- данные справочников;
- НСИ;
- настройки программы, не относящиеся к указанным хранилищам;
- прикладные пользовательские настройки из
ХранилищеОбщихНастроек.
То есть обработка предназначена именно для переноса персональных настроек интерфейса, форм и списков.
Технически
При выгрузке обработка получает записи стандартных хранилищ конкретного пользователя и сохраняет вместе с каждой записью:
КлючОбъекта
КлючНастроек
Настройки
Представление
Полученные данные сериализуются в один файл.
При загрузке записи считываются из файла и сохраняются в соответствующее стандартное хранилище уже с именем пользователя-приемника.
Таким образом, обработка не пытается разбирать внутреннюю структуру каждой пользовательской настройки, а использует стандартные механизмы платформы.
Безопасность
Перед использованием на рабочей базе рекомендую сначала проверить перенос на копии базы.
Загрузка изменяет существующие пользовательские настройки по совпадающим ключам.
Сама конфигурация обработкой не изменяется.
Проверено на следующих конфигурациях и релизах:
- 1С:Комплексная автоматизация 2, релизы 2.6.1.70
- 1С:ERP Управление предприятием 2, релизы 2.6.1.70
- Управление торговлей, редакция 11, релизы 11.6.1.70
Вступайте в нашу телеграмм-группу Инфостарт