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

07.06.14

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

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

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




Скачать файлы

Наименование Файл Версия Размер
Утилита для работы со списком пользователей
.exe 32,50Kb
28
.exe 1.0 32,50Kb 28 Скачать
Библиотека классов .net
.dll 20,50Kb
13
.dll 1.0 20,50Kb 13 Скачать

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

Для работы нужен .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с77

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

Блокировка открытия формы обработки одним пользователем.

1 стартмани

24.05.2023    586    igor7777    1    

0

Групповое переименование файлов для 1С 7.7

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

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

1 стартмани

18.02.2022    3780    0    igor7777    6    

2

[7.7 ТиС. СТОП-БАРДАК] Автоперенос непроведенных документов на текущий день

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

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

2 стартмани

25.05.2020    5684    2    CheBurator    3    

2

Анализ 1С: Предприятие 7.7 с помощью ELK стека

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

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

22.01.2019    11093    phsin    20    

27

Автоматическое объединение конфигураций 1С 7.7

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

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

1 стартмани

22.04.2017    15665    4    devlabnn    2    

6

Перепроведение по счету

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

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

1 стартмани

23.09.2016    3745    1    Genyak    1    

0

Решение проблем с печатью, предварительным просмотром печати, пакетной печатью 1С: 7.7 в терминале

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

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

1 стартмани

09.06.2016    27128    18    tux    3    

1

Логирование в 1С

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

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

18.05.2016    34944    rudjuk    21    

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