Консольная утилита и .Net класс для работы со списком пользователей 1с 7.7

07.06.14

База данных - Инструменты администратора БД

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

Либо готовая утилита.




Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Утилита для работы со списком пользователей
.exe 32,50Kb ver:1.0
29
29 Скачать (1 SM) Купить за 1 850 руб.
Библиотека классов .net
.dll 20,50Kb ver:1.0
13
13 Скачать (1 SM) Купить за 1 850 руб.

Для начала описание рабочей утлилиты:

Для работы нужен .net 4.5

usrutility.exe позволяет:

Добавлять, удалять, изменять, переименовывать пользователей. Совместима с SQL версией, т.е. обновляет файл 1cv7.dba. Так же проверяет не запущен ли конфигуратор, т.к. если при запущенном конфигураторе изменить users.usr и 1cv7.dba настройки подключения к SQL будут сброшены конфигуратором. 

Просмотреть список пользователей и их параметры. Может выгружать список в трех форматах csv, xml, txt.

Может создавать пустой users.usr.

Парметры командной строки :

usrutility.exe [-f:\usrdef\users.usr] | [-d:] [options] [account options] [list options]
- полный путь к каталлогу базы. 

[options]
-w = ожидать нажатия клавиши после завершения
-l = вывести список пользователей из "userdef.usr"
-dba = показать расшифрованное содержимаое "1cv7.dba"
-add = добавить новую учетную запись. должно быть задано хотя бы имя пользователя
-change = изменить учетную запись (для переименования нужно указать параметр -usernewname)
-delete = удалить учетную запись 
-r =  пересоздает поток "Container.Contents". Включает в него все потоки учетных записей, найденные в файле.

[account options]  - эти параметры нужны для команд -add, -chage, -delete.  Если в значени параметра нет пробелов, можно указывать без двойных кавычек.
-UserName:"Name" = имя учетной записи. Можно указывать с пробелами, тире и прочими символами.(1С принимает нормально, но не дает записать из конфигуратора.)
-UserPassword:"password" = пароль. Хэш вычисляется автоматически с учетом "предпочтений" 1с. Т.е. пароль режется до 10 символов и переводится в верхний регистр.

-UserFullName:"full name" = полное имя пользователя
-UserRights:"rights" = название набора прав.
-UserInterface:"interface" = название интерфейса.
-UserDirectory:"path" = каталог пользователя.

[list options] - параметры вывода списка
-lf:csv|xml|txt|ssv = формат вывода списка. текстовый, csv - поля разделеные запятыми, ssv - поля разделенные точкой с запятой, xml - вывод списка в формате XML. 
-sm = не выводить служебные сообщения. Нужен например для формирования списка в XML.

sh = выводить заголовки полей в форматах csv,ssv.

Примеры:

UsrUtility.exe -f:users.usr -add -username:Иван -userfullname:"Иван Петров " -userpassword:qwerty -userinterface:Полный -userrights:Пипец -UserDirectory:"./users\Иван"

Создаст нового пользователя с именем "Иван", полным именем  "Иван Петров", паролем "QWERTY", интерфейсом "Полный" и набором прав "Пипец", каталог пользователя - "./users\Иван".

UsrUtility.exe -f:users.usr -change -username:"Иван Иваныч" -userpassword:сложныйпароль

Изменит пользователю "Иван Иваныч" пароль на "СЛОЖНЫЙПАР".

UsrUtility.exe -f:users.usr -l -sm -lf:xml >userdef.xml

сформирует файл xml примерно такого содержания:

 

     
         0
         202CB962AC59075B964B07152D234B70
         Иван Петров
         ./users\Иван
         1
         Полный
         Пипец
     
     
         0
         202CB962AC59075B964B07152D234B70
         Иван Иванович Иванов
         ./
         1
         Админ
         Администратор
     

 

 

Класс .Net UserDefworks реализует набор процедур и классов для работы с файлом списка пользователей users.usr вот краткое описание:

Нужен .Net 4.5

Класс UserItem, описывает элемент учетной записи пользователя:

публичные поля:

Name (string)
PageName (string)- служебное поле содержит имя потока в файле users.usr
CheckRights (int)
PasswordHash (string)
FullName (string)
UserCatalog (string)
RightsEnabled 
UserInterface (string)
UserRights (string)

поля доступны через индексатор пересичлением UserParameters.


Констурктор поддерживает создание объекта из массива байт. Так же функция Serialyze() формирует массив байт для записи в поток.

Основной используемцй класс - UsersList - потомок Dictionary

Конструктор может загружать в список файл users.usr по переданному пути. 

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

Функция Save() сохраняет текущий список в файл users.usr по переданному пути.

 

краткий пример

using UserDef;
namespace Example
{
class Example
{
[STAThread]
static void Main(string[] args)
{
string USRfileName = @"C:\MyDB\userdef\users.usr";
string DatabaseCatalog = Path.GetDirectoryName(Path.GetDirectoryName(USRfileName));

//Загрузим текущий список пользователей
UserDefworks.UsersList Users = new UserDefworks.UsersList(USRfileName);

string UserName = "User1";
//Изменим параметры пользователя в списке.
if (Users.ContainsKey(UserName))
{
UserDefworks.UserItem User = Users[UserName];
User.FullName = "Владимир Владимироваич Путин";
User.UserInterface = "Президент";
User.UserRights = "IDDQD";
User.PasswordHash = UserDefworks.GetStringHash("sdlfhw342e8");
}

UserName = "User2";
//Создадим нового пользователя
UserDefworks.UserItem User2 = new UserDefworks.UserItem(
UserName, //Имя потока
1, //Контроль прав
UserDefworks.GetStringHash("qwerty"), //Пароль
"Зинаида Петровна", //Полное имя
DatabaseCatalog, //Каталог пользователя
"ИнтерфейсБухгалтера", //Интерфейс
"ПраваБухгалтера", //Набор прав
"Зинуля" //Имя пользователя
);
//Добавим его в список
Users.Add(User2);
//Теперь он доступен по индексу "Зинуля"
Console.WriteLine(Users["Зинуля"].FullName);

//Удалим пользователя из списка
Users.Remove("User3");
try
{
if (Users.Save(USRfileName))
{
Console.WriteLine("Усё пучком!");
}
else
{
Console.WriteLine("Чегой-то не то!");
}
}
catch (Exception ex)
{
Console.WriteLine("Ошибка - {0}", ex.Message);
}
}
}
}

users.usr пользователи IStorage Compund

См. также

Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

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

1 стартмани

18.02.2022    4056    0    igor7777    6    

2

Инструменты администратора БД Программист Пользователь Оперативный учет 7.7 1С:Торговля и склад 7.7 Управленческий учет Абонемент ($m)

Боремся с бардаком. Работы в прошлых датах запрещены. Непроведенные документы (по разным причинам) - автоматом переносятся в начало текущего дня при запуске любого первого сеанса 1С в текущем дне. Задержка старта 1С - практически незначима. Не требует настройки, не требует допрограммирования (исключая один оператор вставки в процедуру старта системы). Можно обработку выполнять вручную с любой периодичностью.

2 стартмани

25.05.2020    5896    2    CheBurator    3    

2

Журнал регистрации Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Бесплатно (free)

Рассмотрим систему на базе Elasticsearch, Logstash и Kibana (ELK Stack) для анализа логов 1С Предприятие 7.7 с целью визуализации и анализа событий 1С.

22.01.2019    11607    phsin    20    

28

Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Скрипт позволяет выполнить объединение конфигураций и реструктуризацию из командной строки. Объединение выполняется штатными средствами конфигуратора 1С 7.7, взаимодействие с которым происходит путем посылки нажатий клавиш. Пригодится, если есть необходимость обновить или постоянно обновлять множество ИБ.

1 стартмани

22.04.2017    15879    4    devlabnn    2    

6

Инструменты администратора БД Бухгалтер Бухгалтерский учет 7.7 1С:Бухгалтерия 7.7 Украина Бухгалтерский учет Абонемент ($m)

Перепроведение по счету для конфигурации Бухгалтерский учет для Украины, 1С: Предприятие 7.7

1 стартмани

23.09.2016    3859    1    Genyak    1    

0

Инструменты администратора БД Системный администратор Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Периодически сталкивался со следующими проблемами при печати в 1С: 7.7 работающей под терминалом: 1) После замены принтера на клиентской машине 1С пытается печатать на старый принтер. 2) Отсутствует предварительный просмотр при печати. 3) Не работает печать без предварительного просмотра (пакетная печать документов). 4) В некоторых формах печатает, в некоторых нет.

1 стартмани

09.06.2016    28181    19    tux    3    

1

Инструменты администратора БД Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Часто бывает необходимо отслеживать состояние часто повторяющихся регламентных заданий. Например, синхронизация данных с IP-телефонией, которая может производиться каждую минуту, синхронизация с сайтами, синхронизация данных с различными системами. Использовать для этих целей логирование 1С чрезвычайно неэффективно и не удобно. В таких случаях удобно использовать подход, применяемый в Unix-системах: писать логи в обычные текстовые файлы, а потом делать их обработку через эффективно работающие Unix-команды: grep, tail, cat, less и т.п.

18.05.2016    37455    rudjuk    21    

34
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. MadDAD 136 09.06.14 11:26 Сейчас в теме
Для гурманов. Утилита умеет загружать список из ранее выгруженного (или сделанного вручную) XML. Ключ командной строки -loadfromxml:XMLFile.xml
2. Aletar 11.12.14 11:25 Сейчас в теме
Отличная утилита. Спасибо.
Оставьте свое сообщение