Перенос/удаление пользователей ИБ и их настроек через COM-соединение



Вы переезжаете в новую ИБ, а пользователей много? Или просто есть необходимость перенести пользователей из одной ИБ в другую. Или есть много баз и всех пользователей необходимо добавить в эти базы?

Доработанная обработка, облегчившая жизнь многим администраторам баз 1С.
Скажем НЕТ ручному переносу и удалению пользователей.

 

По роду деятельности необходимо постоянно добавлять новых пользователей в базы, а потом (в случае увольнения) удалять их. И если баз одна или две, то добавление юзеров и настройка их прав не составляет особых затруднений. Но если баз как минимум 10 и нужно добавить одного пользователя во все рабочие базы, то это навевает грусть и тоску…

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

И вот результат

Возможности:

1. Загрузка списка баз из файла ibases.v8i;

2. Добавление/удаление пользователей по списку баз;

3. Установка нового пароля для создаваемых пользователей;

4. Сохранение/восстановление настроек;

5. Поддержка 8.2+;

6. Перенос старого пароля (работает только для 8.2+);

7. Перенос настроек, дополнительных прав пользователя.

 

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

Тестировалось на УПП 1.3 для Украины, платформа 8.2+. На других конфигурациях не тестировалась, но должно работать.

Навеяно обработками:

//infostart.ru/public/69104/

Огромное спасибо Valerich

Upd 01.03.2011: Добавлена возможность переносить существующий пароль (функция работает только для баз-получателей на 8.2).

Upd 04.04.2011: В реквизит «ИдентификаторПользователяИБ» справочника «Пользователи» записывается UUID пользователя (актуально для УПП, пользователи выделяются другим шрифтом). Мелкие исправления формы.

Upd 10.10.2011: Исправлена ошибка, в некоторых случаях не переносились все роли пользователей.

Upd 25.05.2012: Исправлена ошибка, в некоторых случаях не заполнялся список баз из файла ibases.v8i.

Upd 20.08.2012: По многочисленным просьбам трудящихся добавлена возможность переноса настроек пользователя из регистра сведений «Настройки пользователей». Добавлена опциональная возможность переноса элементов справочника «Пользователи» через XML-файл (при этом переносятся полные копии элементов). Доработана встроенная справка.

Upd 20.02.2013: Добавлен вывод группы пользователя.

Upd 20.03.2014: Добавлена платформа 8.3 в список выбора. Исправлена ошибка с переносом настроек пользователя. Доработана встроенная справка.

Upd 14.05.2014: Исправлена ошибка открывания встроенной справки в режиме предприятия.

Upd 10.12.2014: Добавлена возможность переноса дополнительных прав пользователя.

Upd 04.04.2026: Исправлена ошибка переноса настроек и доп. прав пользователя при отключенных соответствующих флажках. Мелкие исправления формы.

Оставляйте ваши отзывы и пожелания в комментариях

82 Comments

  1. red80

    А чем она лучше стандартной обработки Выгрузки-загрузки справочника Пользователей в XML формате?

    Reply ↓
  2. BigB

    (0) Она пароли переносит?

    Reply ↓
  3. Muxomop
    BigB пишет:

    (0) Она пароли переносит?

    Нет, не переносит. Но зато позволяет установить новый пароль.

    Reply ↓
  4. Muxomop
    red80 пишет:

    А чем она лучше стандартной обработки Выгрузки-загрузки справочника Пользователей в XML формате?

    Быстрее переносит, т.к. запускаешь обработку только из базы-донора и нажимаешь кнопку. А стандартную нужно открывать в каждой базе-приемнике.

    Reply ↓
  5. BigB
    Muxomop пишет:

    Нет, не переносит. Но зато позволяет установить новый пароль.

    С диска ИТС переносит с паролями.

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

    Переносить надо с паролями.

    Reply ↓
  6. Muxomop

    Доделал обработку, теперь есть возможность переносить пароли. Правда работает только для баз-приемников на 8.2.

    Reply ↓
  7. OBEH

    Цитирую «а потом (в случае увольнения) удалять их».

    По моему, это какое то недоразумение. Как можно удалять

    пользователей из базы? А как же документы внесенные ими?

    — «Объект не найден»?

    Reply ↓
  8. Поручик

    (7) Незнание матчасти detected. Не путай пользователей ИБ, сиречь информационной базы, с элементами справочника Пользователи. В документах указывается элементы указанного справочника, вот их удалять не стоит.

    Reply ↓
  9. Muxomop

    (7) Поручик прав. Удаляются только пользователи ИБ, а элементы справочника «Пользователи» помечаются на удаление.

    Reply ↓
  10. OBEH

    Ну вот. Выходит «вот их удалять не стоит»

    Reply ↓
  11. Valerich

    Немного не понял, почему можно перенести пароль «только для баз-приемников на 8.2.»… В 8.1 тоже можно записывать пароль, но я не знаю как его прочитать (существующий). любой новый установить не проблема.

    Reply ↓
  12. Muxomop

    (11) Имелось ввиду что можно перенести существующий пароль. Это возможно только в 8.2 т.к. разработчики добавили функционал для чтения пароля в платформу (если быть совсем точным, то читается хеш пароля, поскольку пароли в чистом виде в базе не хранятся). А устанавливать новый пароль можно начиная с 8.0

    Reply ↓
  13. andreysan

    Большое спаисбо за обработку

    Очень сильно помогла.

    Есть небольшое замечание.

    У меня в СправочникПользователи элементы расположены вне группы

    поэтому Ваша обработка вылетает с ошибкой .

    предлагаю в модуле формы стр ~ 392 сделать дополнительную проверку :

    если не( ТекущийПользователь.Родитель.Ссылка.Пустая()) тогда

    Родитель = СправочникПользователи.НайтиПоНаименованию(ТекущийПользователь.Родитель.Наименование);

    Если СокрЛП(Родитель.Code) <> «» Тогда

    ПользовательИБПриемника.Parent = Родитель;

    Иначе

    Сообщить(«В базе-приемнике не найдена папка пользователей «»»+ТекущийПользователь.Родитель.Наименование+»»»!», СтатусСообщения.БезСтатуса);

    КонецЕсли;

    конецесли;

    Еще раз огромное СПАСИБО .

    Reply ↓
  14. Muxomop

    (13) Спасибо за комментарий. Обработку подправил, можно скачать заново.

    Reply ↓
  15. SotNick

    Отличная обработка! И аналогов я не нашла. Спасибо!

    Reply ↓
  16. java

    автору респект, спасла обработка.

    огроммное человечесское спасибо!!!

    Reply ↓
  17. aigaig

    Огромное спасибо за обработку.Очень помогла.

    Reply ↓
  18. Akio

    спасибо! помогло ))

    Reply ↓
  19. ewqewqewq

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

    Reply ↓
  20. Muxomop

    (19) ewqewqewq, Во время тестов переносил по 10 пользователей в 30 баз, все было без сбоев

    Reply ↓
  21. navic

    Спасибо, очень нужная обработка.

    Reply ↓
  22. avenira_

    Ура! То, что нужно! Сейчас особенно актуально в связи с переходом всех бюджетников с ББУ на БГУ. Проблема с переносом пользователей решена, осталось решить проблему с переносом настроек пользователей. На этом сайте пока нашла обработку только для клиент-серверного варианта… будем искать…

    Автору спасибо и плюс, конечно!

    Reply ↓
  23. alex.msk

    Респект автору. Не пришлось писать самому.

    Плюсанул.

    Reply ↓
  24. echo77

    Не работает.

    При попытке соедиения с COM-сервером произошла следующая ошибка:

    {Форма.Форма.Форма(160)}: Ошибка при вызове метода контекста (Connect): Произошла исключительная ситуация (V82.COMConnector.1): База данных не обнаружена
    Reply ↓
  25. Muxomop

    (24) echo77, Проверьте параметры аутентификации ОС для пользователя в базе, к которой происходит подключение. На тестовой базе проверил, все работает

    Reply ↓
  26. prettyfly

    Отличная обработка, тем не менее еще остается вопрос с предоставлением доступа к информационным базам(ibases) всей куче скопированных пользователей. Есть какие-нибудь идеи по автоматизации этого процесса, с учетом того что у разных пользователей может быть доступ к разным базам?

    Reply ↓
  27. Muxomop

    (26) prettyfly, в домене можно с помощью батника копировать каждому пользователю файлик ibases (при входе в систему, например), со стороны 1С это вряд-ли получится сделать.

    Reply ↓
  28. prettyfly

    Возможно кому-то пригодится в дополнение к этой обработке, приложение для управления информационными базами пользователей через группы в AD http://infostart.ru/public/147404/

    Reply ↓
  29. andreysan

    Большое человеческое спасибо за вашу обработку. Сэкономил много сил и времени

    Reply ↓
  30. kivas

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

    бежать по 200 пользователям чтобы галки проставить трудоемко, а если как у меня надо из 200 пользователей перенести только 2 группы (~50) элементов и каждого открыть — проверит в той ли он группе — закрыть — поставить галку….

    это плохо… очень плохо

    но в целом +1

    Reply ↓
  31. Muxomop

    (30) kivas, Спасибо за комментарий, обработку доработал согласно ваших замечаний

    Reply ↓
  32. dyak84

    Автор подскажите ваша обработка будет работать в типовой УТ для украины. И будуш ли переносится дополнительный настройки пользователей. Зарание спасибо за ответ??????

    Reply ↓
  33. Muxomop

    (32) dyak84, Должна отработать, переносятся данные из регистра сведений «Настройки пользователей». Если такой регистр есть в УТ, то данные перенесутся.

    Reply ↓
  34. OrsoBear

    Я так понимаю, что из 7.7 изначально нельзя пароли вытянуть.. заглянул в надежде, что нашелся умелец..

    Но все равно спасибо!

    Reply ↓
  35. pvb2003

    Увы , но на нестандартной конфигурации не работает …

    Reply ↓
  36. Muxomop

    (35) pvb2003, Попробуйте подогнать структуру справочника «Пользователи» как в типовых решениях 1С

    Reply ↓
  37. Dolour

    Спасибо , сегодня запустил базу клиента ,а пользователи куда-то делись .Впервые такое вижу .

    Reply ↓
  38. Muxomop

    (37) Dolour, Пропали элементы справочника «Пользователи» или пользователи ИБ? Опишите порядок действий с обработкой перед «пропажей».

    Reply ↓
  39. Dolour

    Обработка тут не причем…Наоборот помогла, пользователи ИБ у меня пропали по неведомым пока причинам .

    Reply ↓
  40. ninch

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

    1. базы были файловые. Жмешь кнопку «выполнить перенос». Не хочет работать — вылетает с ошибкой. Оказалось, что на компе стоит 1С 8.3 и не важно что базы работают под 1С 8.2. В итоге пришлось указать в процедуре ПодключитсяКИнформационнойБазе()

    ОбъектПодключения = «V83.COMConnector»;

    А было «V82.COMConnector».

    2. при переносе настроек пользователей с регистра сведений (опция в обработке) в новой базе вносились настройки только последнего пользователя. Пришлось подправить в процедуре ВыполнитьПеренос() после строки

    НаборЗаписей = РегСвНастройкиПользователей.СоздатьНаборЗаписей();

    поставил строку

    НаборЗаписей.Отбор.Пользователь.Установить(Пользователь);

    после этого все ок. тоже самое судя по всему надо сделать в процедуре ВыполнитьПереносXML() — по аналогии.

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

    Reply ↓
  41. Muxomop

    (40) ninch, Спасибо за развернутый комментарий. Отвечу по пунктам:

    1. Действительно проблема существует, если последней была установлена платформа 8.3. После переустановки платформы 8.2 проблема исчезает. (Привет разработчикам 1с). Добавлю в выбор платформу 8.3 в качестве временного решения проблемы.

    2. Ошибка будет исправлена.

    3. На моем компе (Win XP SP3, 8.2.19.80) справка в конфигураторе открывается без проблем. В режиме предприятия справка открывается, но после этого база вылетает с записью дампа. Еще проверил на компе, в котором установлены платформы 8.1 и 8.2, но нет 8.3: справка открывается без проблем в обоих режимах. Справку обновлю, возможно это решит проблему

    Reply ↓
  42. bambr1975

    (41) чтобы справка не «вылетала» в режиме предприятия, откорректируйте синоним обработки «Перенос/удаление пользователей ИБ» — удалите оттуда слэш. Дело в том, что синоним объекта всегда выводится в заголовке html-документа, формирующего справку, а платформа эту ситуацию корректно не обрабатывает.

    Reply ↓
  43. Muxomop

    (42) bambr1975, Спасибо за дельный комментарий, обработку подправил

    Reply ↓
  44. xten

    На 8.3 пойдет?

    Reply ↓
  45. Muxomop

    (44) xten, Должно пойти, нужно выбирать версию платформы 8.3

    Reply ↓
  46. Alex_grem

    Неплохо бы добавить перенос групп доступа и дополнительных прав пользователя для таких конфигураций как УПП или КА

    Reply ↓
  47. Muxomop

    (46) Alex_grem, Добавил возможность переноса доп. прав. Скачайте обновленную обработку

    Reply ↓
  48. Rebel2007

    В ЗУП 3.0 не работает, зря мани потратил

    Reply ↓
  49. Muxomop

    (48) Rebel2007, Обработку под управляемые формы планирую сделать во 2 кв. 2015 года. Мани вернуть не могу, т.к. их перевод временно отключен

    Reply ↓
  50. ollega

    Спасибо! Отработало ОК!

    Reply ↓
  51. Pavean

    (49) перевод на управляемые формы всё ещё в планах?

    Reply ↓
  52. naziknazik333

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

    Reply ↓
  53. Muxomop

    (51) Pavean, Пока да, еще изучаю УФ и не готов выложить сырую обработку

    Reply ↓
  54. Muxomop

    (52) naziknazik333, Ошибку в студию. Обработка предназначена только для обычного приложения

    Reply ↓
  55. naziknazik333

    Например обработчик требует от меня регистр сведений настройки пользователя. Хотя в ТК их нет.

    Reply ↓
  56. naziknazik333

    {ВнешняяОбработка.ПереносУдалениеПользователейИБ.МодульОбъекта(118)}: Ошибка при вызове метода контекста (Выполнить)

    Результат = Запрос.Выполнить();

    по причине:

    {(9, 2)}: Таблица не найдена «РегистрСведений.НастройкиПользователей»

    <<?>>РегистрСведений.НастройкиПользователей КАК НастройкиПользователей

    Reply ↓
  57. mikele_bes

    В обработке нет загрузки/выгрузки выбранных пользователей в xml.

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

    Reply ↓
  58. mikele_bes

    И профили пользователей не переносятся…

    Reply ↓
  59. CaSH_2004

    Обработка хорошая — свою задачу делает

    Однако она явно сырая: интерфейс какой-то сделанный «под себя» т.е. не очевидный — все нагромождено в кучу и настройки пользователей ИБ и пользователей БД: флаги «Дополнительные права пользователей» и «Настройки пользователей» — явно не на своем месте

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

    Но и даже после этого пришлось каждого пользователя грузить отдельно т.к. после загрузки производится чтение данных БД — зачем непонятно

    Вот и у (56) из-за этого ошибки

    Reply ↓
  60. sysadminresurs

    {ВнешняяОбработка.ПереносУдалениеПользователейИБ.МодульОбъекта(130)}: Значение не является значением объектного типа (Метаданные)

    ПолноеИмя = СтрокаТЗ.Значение.Метаданные().ПолноеИмя();

    Не переносится вываливается эта ошибка, есть идеи по поводу этой ошибки ?

    Управление торговлей и взаимоотношениями с клиентами (CRM), редакция 1.1 (1.1.28.1) (http://solutions.1c.ru/catalog/trade-crm)

    Платформа 8.2

    Reply ↓
  61. Muxomop

    (60) sysadminresurs, скорей всего в регистре сведений «Настройки пользователей» содержится какое-то значение настройки, по которому невозможно получить метаданные. Возможно это битая ссылка, возможно что-то другое. Если есть доступ к конфигуратору и отладчику, то можете самостоятельно вычислить глючную настройку. У меня доступа к вашей конфигурации нет, проверить не могу.

    Reply ↓
  62. Muxomop

    (56) naziknazik333, (59) CaSH_2004, (60) sysadminresurs, Обновил обработку, постарался учесть все ваши замечания

    Reply ↓
  63. silex38

    При тестировании подключения пишет ошибку

    ри попытке соедиения с COM-сервером произошла следующая ошибка:

    {ВнешняяОбработка.ПереносУдалениеПользователейИБ.Форма.Форма.Форма(159)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован

    что делать?

    Reply ↓
  64. Muxomop

    (63) silex38, Скорей всего обновили платформу, и слетела регистрация компоненты comcntr.dll. Нужно выполнить команду regsvr32 «C:Program Files1cv828.2.12.xxxincomcntr.dll». Более подробно можно почитать по ссылке http://infostart.ru/public/152303/

    Reply ↓
  65. milov.aleksey

    При переходе с ЗУП2.5проф на ЗУП3.1корп сначала создал тестовую базу переноса и завёл актуальных пользователей. Чтобы не заводить список снова в рабочем варианте пробовал перенести ЗУП3.1 —>ЗУП3.1, но ломалась на поиске по Коду пользователя. Оказалось, что длина Кода = 0, т.е. справочник только с Наименованием. Переписал поиск с кода на наименование пПользователи.Name.

    Это характерно для многих справочников ЗУП3.0-3.1. Предлагаю делать попытку поиска сначала по Коду, затем по Наименованию или по-взрослому по идентификатору УИД.

    Не перенеслись «Пользователи Windows», чтобы не привязывать доменные учётки. Разбираюсь дальше.

    Reply ↓
  66. milov.aleksey

    (48) Rebel2007, Можно доработать: во-первых, в ЗУП3.0-3.1 многие справочники стали без Кода, точнее с нулевой длиной и линейный(без родителей). Нужно в конфе слделать спр.Сотрудники иерархическим, либо изменить запрос в обработке. Во-вторых, заменить поиск пользователя по Коду, на поиск по Наименованию. Код ниже:

    //Перенос элемента спр. Пользователи
    //{-=Н=- по запросу № Перенос пользователей между ЗУП3.1, в новом справочнике пользователей поле Код нулевой длины, т.е. его нет
    //Милов А.В., 25 августа 2016 г. 12:39:20
    //Цель: Изменение функционала
    //—————
    //-=Старый код=-
    //—————
    //ТекущийПользователь = Справочники.Пользователи.НайтиПоКоду(пПользовательИБ.Имя);
    //ПользовательИБПриемника = СправочникПользователи.НайтиПоКоду(пПользовательИБ.Имя);
    //Если СокрЛП(ПользовательИБПриемника.Code) = «» Тогда
    // Если НЕ СоздаватьПользователей Тогда
    //  Продолжить;
    // КонецЕсли;
    // ПользовательИБПриемника = СправочникПользователи.CreateItem();
    // ПользовательИБПриемника.Code = пПользовательИБ.Имя;
    //ИначеЕсли НЕ ЗаменятьПользователей Тогда
    // Продолжить;
    //ИначеЕсли СокрЛП(ПользовательИБПриемника.Code) <> «» Тогда
    // ПользовательИБПриемника = ПользовательИБПриемника.GetObject();
    //КонецЕсли;
    //—————
    //-=Новый код=-
    //—————
    ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию(пПользовательИБ.Имя);
    ПользовательИБПриемника = СправочникПользователи.НайтиПоНаименованию(пПользовательИБ.Имя);
    Если СокрЛП(ПользовательИБПриемника.Name) = «» Тогда
    Если НЕ СоздаватьПользователей Тогда
    Продолжить;
    КонецЕсли;
    ПользовательИБПриемника = СправочникПользователи.CreateItem();
    ПользовательИБПриемника.Name = пПользовательИБ.Имя;
    ИначеЕсли НЕ ЗаменятьПользователей Тогда
    Продолжить;
    ИначеЕсли СокрЛП(ПользовательИБПриемника.Name) <> «» Тогда
    ПользовательИБПриемника = ПользовательИБПриемника.GetObject();
    КонецЕсли;
    //-=К=-}

    Показать

    Reply ↓
  67. Патриот

    Прочитав

    Добавлена опциональная возможность переноса элементов справочника «Пользователи» через XML-файл

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

    Reply ↓
  68. sonGodv

    На УТ11 не работает, так как у справочника пользователи нет реквизита «Код»

    Reply ↓
  69. Muxomop

    (68) Вариант решения проблемы можно глянуть в комментарии №66. Код обработки открыт. Когда появится свободное время обновлю обработку.

    Reply ↓
  70. user665952_a.karuna

    подскажите, возникла потребность переноса параметров Active Directory с ексель файла в базу на упр режиме.

    порядка 400 пользователей, лень в ручную заносить)

    Reply ↓
  71. Muxomop

    (70) возможно вам подойдет это http://infostart.ru/public/156207/ или ищите в каталоге «Загрузка пользователей»

    Reply ↓
  72. ЛЛ Юрий

    Скачал обработку. Ошибки:

    1. Настройки пользователей: Не удалось получить метаданные настройки «Основная организация» ()!

    2. При попытке соедиения с COM-сервером произошла следующая ошибка:

    {ВнешняяОбработка.ПереносУдалениеПользователейИБ.Форма.Форма.Форма(159)}: Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован

    Но я выбрал «Использовать XML», зачем работать с СОМ соединением тогда.

    Reply ↓
  73. Muxomop

    (72) Обработка всегда переносит/удаляет пользователей через СОМ-соединение. Опция «Использовать XML» нужна для переноса абсолютно точных копий элементов справочника «Пользователи» (актуально для РИБ). Т.е. при установленной галке выбранные пользователи записываются в XML-файл, обработка подключается через СОМ к базе-получателю, читает файл с пользователями и создает элементы справочника «Пользователи». При снятой галке «Использовать XML» обработка подключается через СОМ к базе-получателю, читает данные пользователей напрямую из базы-отправителя и создает элементы справочника «Пользователи».

    По вашим ошибкам:

    1. Возможно в базе битая ссылка в настройке «Основная организация» у какого-то пользователя, поэтому обработке не удалось получить метаданные по этой настройке. Ничего страшного не произошло. Данная настройка не будет перенесена в новую базу.

    2. Скорей всего обновили платформу, и слетела регистрация компоненты comcntr.dll. Нужно выполнить команду regsvr32 «C:Program Files1cv88.3.хх.xxxincomcntr.dll». Более подробно можно почитать по ссылке http://infostart.ru/public/152303/

    Reply ↓
  74. DWZ2
    Reply ↓
  75. DWZ2

    (74) п.1 бывает, когда в регистре сведений «НастройкиПользователей» резурс значение равен «Неопределено»

    Reply ↓
  76. DWZ2

    В модуле формы в строке 473

    Пользователь = СправочникПользователи.НайтиПоНаименованию(пПользовательИБ.Имя);

    вроде по коду надо искать или нет?

    Reply ↓
  77. DWZ2

    и в строке 541 тоже 🙁

    Reply ↓
  78. DWZ2

    (74)

    2. «В базе-приемнике не найдена папка пользователей»

    по п. 2 рекомендую в модуле формы в строке 444 заменить

    Если СокрЛП(Родитель.Code) <> «» Тогда
    ПользовательИБПриемника.Parent = Родитель;
    Иначе
    Сообщить(«В базе-приемнике не найдена папка пользователей «»»+СокрЛП(ТекущийПользователь.Родитель.Наименование)+»»»!», СтатусСообщения.БезСтатуса);
    КонецЕсли;

    на

    Если СокрЛП(Родитель.Code) = «» Тогда
    // DWZ — создадим группу. В справочнике всего 2 уровня,
    // поэтому делаем просто, без рекурсии
    Родитель=СправочникПользователи.CreateFolder();
    
    Родитель.Code=ТекущийПользователь.Родитель.Код;
    Родитель.Description=ТекущийПользователь.Родитель.Наименование;
    
    Родитель.Записать();
    КонецЕсли;
    ПользовательИБПриемника.Parent = Родитель.Ref;

    Показать

    Reply ↓
  79. DWZ2

    (75) рекомендую в модуле ОБЪЕКТА в строках 130 и 188 добавить в условие

    Если СтрокаТЗ.ТипЗначения = Тип(«Булево»)
    ИЛИ СтрокаТЗ.ТипЗначения = Тип(«Строка»)
    ИЛИ СтрокаТЗ.ТипЗначения = Тип(«Дата»)
    ИЛИ СтрокаТЗ.ТипЗначения = Тип(«Число»)
    ИЛИ СтрокаТЗ.Значение = Неопределено Тогда
    Reply ↓
  80. DWZ2

    (74)

    3. Настройки пользователя NNN не найдено значение XXX для настройки YYY в базе-приемнике!

    По п. 3 рекомендую рекурсивную выгрузку справочника «Пользователи» наподобие всеми любимой «Конвертации» (пока НЕ сделал)

    Кстати, ещё не раскрыта тема перекачки Хранилищ настроек 😉

    Руки дойдут, сделаю. Но не буду возражать, если это сделает автор или кто-то ещё.

    Вот что у меня вышло. Может, надо кому.

    P.S. Выгрузку в XML убрал, всё равно это фикция, только людей путает.

    P.P.S. Жаль, здесь не работает автоматическое royalty для автора оригинала.

    Reply ↓
  81. Muxomop

    (80) Добрый день. Рад, что вам помогла обработка. Хотел сделать уточнение, что выгрузка XML нужна для однотипных баз с унифицированными справочниками (в т.ч. пользователи).

    Reply ↓
  82. DWZ2

    (81)Насколько я понимаю:

    1) Через XML выгружаются ТОЛЬКО пользователи.

    2) Загрузка всё равно идёт через COM-соединение, после чего XML-файл уничтожается и использовать его нельзя, поэтому утрачивается основное преимущество выгрузки в XML — загрузка на другой машине.

    3) Через XML, в отличие от COM-соединения, выгружаются пользователи вместе с группами, но этот момент я поправил.

    4) Через XML выгружается голый справочник «Пользователи», без рекурисвной выгрузки взаимосвязей, в отличие, например, от обработки «Конвертация».

    5) По сравнению с COM-соединением, выгрузка в XML избыточна в том смысле, что при выгрузке мы не знаем, есть ли эти данные в другой базе и вынуждены выгружать лишние данные на всякий случай.

    P.S. Чтобы 2 раза не вставать — в УПП дополнительные права могут быть назначены, не только на пользователей, но на их группы, в этом случае при перекачке дополнительных прав обработка не проверяет этот случай, ругается, что что не может перенести дополнительные права, и пользователи недовольны. Надо бы добавить обработку этого случая, но Заказчик уже вынес свой вердикт, поэтому мне лень 😉

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *