1с нет пользователя в списке выбора
Данная статья рассказывает о синхронизации справочника «Пользователи» с пользователями БД. Типовые конфигурации от «1С» обладают достаточно сложной конфигурацией для понимания теми людьми, которые впервые сталкиваются с данной платформой и программированием на ней. В этой статье приводится наглядный пример, упрощающий схему работы пользователей.
Для создания формы списка справочника «Пользователи» следует создать новый справочник «Пользователи» без реквизитов, которые в случае необходимости могут быть добавлены позже. Отображение списка пользователей произойдет после создания «Формы Списка» опять же без реквизитов. Вместо этого создается реквизит «Таблица Значений», далее в него добавляются колонки.
Затем на форме размещается «Элемент таблица» с названием «Список Пользователей», в нее необходимо добавить два поля: «Список Пользователей Полное Имя» (Путь к информации – Список. Полное имя) и «Список Пользователей Имя» (Путь к информации – Список. Имя). После создания данной таблицы она заполняется сведениями с помощью создания события формы «При Создании На Сервере» и добавляется следующий код:
&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )
ОМПользователи . ОбновитьСписокПользователей ( Список );
Функция «Обновить Список Пользователей (Список)» размещается в общем модуле, а сама она теперь выглядит следующим образом:
Процедура ОбновитьСписокПользователей ( СписокПользователей ) Экспорт
Перем ПользователиИБ , СпрПользователейДляПоиска , СсылкаНаНайденногоПользователя ;
СпрПользователейДляПоиска = Справочники . Пользователи ;
ПользователиИБ = ПользователиИнформационнойБазы . ПолучитьПользователей ();
Для Каждого ПользовательИБ Из ПользователиИБ Цикл
СсылкаНаНайденногоПользователя = СпрПользователейДляПоиска . НайтиПоНаименованию ( ПользовательИБ . Имя );
Если СсылкаНаНайденногоПользователя = СпрПользователейДляПоиска . ПустаяСсылка () Тогда
НоваяСтрока = СписокПользователей . Добавить ();
НоваяСтрока . Имя = ПользовательИБ . Имя ;
НоваяСтрока . ПолноеИмя = ПользовательИБ . ПолноеИмя ;
НоваяСтрока . Ссылка = СсылкаНаНайденногоПользователя ;
НоваяСтрока . СуществуетВСправочнике = Ложь;
Иначе
НоваяСтрока = СписокПользователей . Добавить ();
НоваяСтрока . Имя = ПользовательИБ . Имя ;
НоваяСтрока . ПолноеИмя = ПользовательИБ . ПолноеИмя ;
НоваяСтрока . Ссылка = СсылкаНаНайденногоПользователя ;
НоваяСтрока . СуществуетВСправочнике = Истина;
КонецЕсли;
В данной функции перебираются пользователи БД, они добавляются в «Список Пользователей». Если этот элемент присутствует в справочнике «Пользователи», то обязательно устанавливается флажок «Существует В Справочнике», это требуется для условного форматирования в оформлении, то есть программа видит незаведенного в справочник пользователя и отображает его другим цветом. В свойствах формы указывается это же форматирование:
Затем создается новое форматирование за счет нажатия на кнопку «Добавить». Параметры их колонки «Оформление» должны выглядеть следующим образом:
Параметры колонки «Условие» должны выглядеть следующим образом:
Параметры колонки «Оформляемые поля» должны выглядеть следующим образом:
Для создания элемента справочника «Пользователи» следует добавить новую форму в справочник «Пользователи»:
После этого в форму добавляется новое поле со строковым реквизитом «Полное Наименование»:
Затем требуется вернуться к форме «Форма Списка» и создать событие «Выбор» для списка «Список Пользователей» с добавлением данного кода:
ТекущиеДанные = Элементы . СписокПользователей . ТекущиеДанные ;
//Если в справочнике Пользователи элемента нет тогда создаем новый
Если ТекущиеДанные . Ссылка . Пустая () Тогда
//В открываемую форму передаем 2 параметра:
//имя пользователя и полное имя пользователя
ОткрытьФорму ( "Справочник.Пользователи.ФормаОбъекта " ,
Новый Структура ( "ИмяПользователя, ПолноеИмяПользователя" ,
ТекущиеДанные . Имя , ТекущиеДанные . ПолноеИмя ));
//Иначе открываем существующий элемент справочника
Иначе
//В открываемую форму передаем 2 параметра:
//ссылка на существующий справочник и полное имя пользователя
ОткрытьФорму ( "Справочник.Пользователи.ФормаОбъекта" ,
Новый Структура ( "Ключ, ПолноеИмяПользователя" ,
ТекущиеДанные . Ссылка , ТекущиеДанные . ПолноеИмя ));
КонецЕсли;
После отправления параметров в открываемую форму осуществляется их прием и обработка, что делается благодаря созданию нового события формы «При Создании На Сервере» в форме элемента справочника «Пользователи»:
&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )
Попытка
Объект . Наименование = Параметры . ИмяПользователя ;
Исключение
КонецПопытки;
Попытка
ПолноеНаименование = Параметры . ПолноеИмяПользователя ;
Исключение
КонецПопытки;
Форма элемента закончена, однако во время записи элемента справочника форма списка не обновляется. Для обновления формы справочника нужно воспользоваться функцией «Обработка Оповещения», что делается при помощи создания в форме элемента справочника события «После Записи» с добавлением следующего кода:
Далее в форме списка справочника создается событие «Обработка Оповещения» с добавлением кода:
&НаКлиенте
Процедура ОбработкаОповещения ( ИмяСобытия , Параметр , Источник )
Если ИмяСобытия = "ОбновитьФормуСписка" Тогда
ЭтаФорма . Список . Очистить ();
ОбновитьСписокПользователей ();
КонецЕсли;
Функция «Обновить Список Пользователей» теперь выглядит следующим образом:
Пользователи 1С
Управление пользователями в 1С — процесс достаточно простой и интуитивно понятный, однако всё равно нуждается в описании.
Условно администрирование и контроль включает в себя:
- создание пользователя;
- установка прав пользователей;
- просмотр активных пользователей;
- анализ действий пользователей.
Рассмотрим каждый из этих пунктов подробнее:
Создание и установка прав пользователей 1С
В зависимости от конфигурации пользователи вводятся либо в конфигураторе, либо в режиме пользователя. Практически все современные конфигурации поддерживают ввод пользователей в режиме 1С: Предприятие 8. Также в режиме 1С: Предприятие, как правило, вводятся дополнительные параметры пользователей.
Однако, независимо от конфигурации, первый пользователь с административными правами всегда вводится в режиме конфигуратор. Поэтому мы рассмотрим оба режима ввода пользователей.
Ввод пользователей в Конфигураторе
Для входа в режим 1С Конфигуратор необходимо в списке выбора баз выбрать вариант Конфигуратор:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Получите понятные самоучители по 1С бесплатно:
После входа необходимо выбрать в меню пункты Администрирование — Пользователи. Откроется список пользователей, если Вы заводите первого пользователя, он будет пуст. Добавим нового пользователя «Администратор»:
На этой странице Вы должны указать настройки пользователя:
- Имя и Полное имя — наименование пользователя.
- Если установлен флаг Аутентификация 1С: Предприятия, то станут доступны пункты Пароль (пароль, который используется для входа в 1С), Пользователю запрещено изменять пароль (делает доступным возможность смены пароля пользователем в пользовательском режиме), Показывать в списке выбора (делает доступным выбор пользователя в списке, в противном случае имя пользователя необходимо вводить вручную).
- Аутентификация операционной системы — флаг, отвечающий за возможность авторизации с помощью имени пользователя операционной системы. Пользователь — имя пользователя информационной системы (например, \\dom\kirill, где dom — домен сети, а kirill имя пользователя ОС). 1С при запуске сначала проверяет авторизацию через ОС, а потом авторизацию 1С.
- Аутентификация OpenID — включение возможности авторизации с помощью технологии OpenID. OpenID — это открытая децентрализованная система, которая позволяет пользователю использовать единую учётную запись для аутентификации на множестве не связанных друг с другом сайтов, порталов, блогов и форумов.
На вкладке Прочее нужно указать соответствующие роли для пользователя (подробней о ролях). В нашем случае мы укажем для администратора Полные права. Для других пользователей здесь можно отметить флагами требующиеся роли. Права пользователей суммируются из доступных объектов разных ролей. Т.е. если у пользователя выбрано две роли, в одной есть доступ к справочнику «Номенклатура», а у второй роли нет, доступ будет. Для любого пользователя без «Полных прав» обязательна установка роли «Пользователь»(если она присутствует).
Также на этой вкладке можно указать Основной интерфейс (работает только для обычных форм). Язык по умолчанию — если конфигурация разработана на нескольких языках. Режим запуска — управляемое или обычное приложение.
Создание пользователя в 1С Бухгалтерия 2.0
Для этого в меню необходимо выбрать пункт Сервис — Управление пользователями и доступом. Откроется справочник «Пользователи». Создайте нового пользователя:
Занесите информацию о пользователе и его основные настройки 1С, нажмите кнопку «ОК»: система предложит создать автоматически пользователя БД:
Необходимо согласиться, отобразится форма нового пользователя базы данных:
Где необходимо указать нужные настройки авторизации и роли пользователя.
Вот и всё! Создание пользователя и назначение ему прав завершено.
Просмотр активных пользователей в базе 1С
Для просмотра работающих в базе данных пользователей в режиме 1С: Предприятие необходимо выбрать пункт Сервис — Активные пользователи. Откроется список работающих в базе данных пользователей:
Как отключить пользователей в 1С 8.3
Отключить активного пользователя в базе 1С можно двумя способами:
- в интерфейсе программы (для конфигураций 1С Бухгалтерия 3.0, Управление торговлей 11 и т.д);
- через консоль кластера серверов (доступно только в клиент-серверном режиме работы).
Из интерфейса
В пользовательском режиме выкинуть зависшего пользователя можно, зайдя в меню «Администрирование» — «Поддержка и обслуживание», затем выбрав пункт «Активные пользователи»:
Выбираем в списке нужного пользователя и нажимаем кнопку «Завершить».
Из консоли кластера
Если у Вас есть доступ к административной панели сервера 1С, завершить сеанс можно с её помощью. Заходим в консоль, находим зависшего пользователя в меню «Сеансы», вызываем контекстное меню и нажимаем «Удалить»:
Контроль работы пользователей 1С 8.3
Для просмотра истории работы пользователей необходимо зайти в меню в пункт Сервис — Журнал регистрации:
Например, пользователь Иванов Иван в 15:09:18 создал новую номенклатуру «Лопата».
Информацию из журнала регистрации можно сортировать по типу данных, пользователю, виду действия и т.д. Для этого необходимо нажать на пиктограмму воронки над таблицей журнала регистрации.
Если база данных давно установлена и данные в ней часто меняются, просмотр журнала регистрации существенно замедляется, в особо запущенном случае система может обрабатывать данные очень продолжительный период времени.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
— Вася, с сегодняшнего дня пользователей заводишь ты!
— Но я программист, а не сисадмин?!
— Сисадмины не знают 1С, поэтому пользователей заводить будешь ты!
— Ааааа.
Программист – это человек, который пишет программы для компьютера. Однако управление списком пользователей в 1С обычно поручают тому, кто связан с 1С, а именно -программисту 1С.
В принципе некоторые программисты и не против, поскольку это дает им в руки некоторые «привелегии».
Тем не менее список пользователей в 1С мало отличается от списков пользователей в других программах. Поэтому завести нового пользователя или отключить существующего – проще простого.
Итак, в 1С есть свой список пользователей. С помощью него регулируется доступ к базе данных 1С. При входе в базу данных 1С попросит выбрать пользователя из этого списка и ввести пароль.
Существуют варианты, при которых 1С не спрашивает имя пользователя для входа. Однако это совсем ничего не значит . Просто в этом случае пользователь из списка сопоставлен с пользователем Windows/домена и определяется автоматически. Как
Единственный вариант, когда 1С действительно не запрашивает пользователя – при создании новой (пустой) базы данных. В этом случае список пользователей 1С пуст. Пока не будет добавлен первый пользователь – 1С будет входить автоматически. Аналогичная система используется в Windows при наличии одного пользователя без пароля.
Пользователи 1С отличаются друг от друга:
- Правами доступа
- Интерфейсом (наличии в меню пунктов).
Как такового «суперпользователя» или «группы администраторов» — не существует. Администратором считается тот пользователь, у которого включены все права в конфигурации и права на администрирование. В пустой базе (когда список пользователей еще пуст) – первым должен быть добавлен именно такой пользователь.
Два списка пользователей 1С
На самом деле в 1С два списка пользователей. Один из них (список пользователей 1С) – с точки зрения программиста «настоящий». Он находится в конфигураторе. Именно по нему 1С определяет пользователя.
Это подход старых типовых конфигураций (например, управление торговлей 10, бухгалтерия 1.6 и т.п.) – пользователи редактируются в этом списке, а в справочник пользователей попадают автоматически при первом входе.
Второй (пользователи версии 1С 8.2, «не настоящий») – это справочник пользователи (и справочник внешние пользователи, как в ут 11). Справочник был и раньше, однако подход новых типовых конфигураций состоит в том, что пользователи заводятся именно в нем, а в «настоящий» список попадают автоматически.
Основная бяка этого подхода состоит в том, что тем кому не нравится так работать и хочется по старому – не могут это сделать, так как при заведении заполняются определенные поля, а если завести пользователя ручками в списке, то они уже не подхватятся в справочнике автоматически.
Как добавить пользователя в список пользователей 1С
Итак, список пользователей 1С находится в конфигураторе. Зайдите в конфигуратор 1С и откройте меню Администрирование/Пользователи.
Чтобы добавить пользователя – необходимо нажать кнопку добавления (или Ins с клавиатуры). Если список сейчас пуст, то первый пользователь должен быть с административными правами (см. далее).
- Имя – имя пользователя (которое он будет выбирать при входе в 1С)
- Полное имя – справочное ФИО, нигде не фигурирует
- Пароль
- Показывать в списке выбора
o если галочка стоит, то пользователь будет в списке выбора при входе в 1С
o если галочка не стоит, то пользователя в списке выбора не будет (то есть выбрать нельзя), но можно ввести его имя с клавиатуры и войти - Аутентификация операционной системы – можно ассоциировать с пользователем Windows/домена и этому пользователю не нужно будет вводить пароль (будет заходить автоматически).
На закладке Прочие выбираются права и основные настройки пользователя.
- Основной интерфейс – меню, которое будет доступно пользователю (используется только в толстом клиенте)
- Язык – русский
- [Основной] Режим запуска – толстый или тонкий клиент, с помощью этого параметра можно войти в конфигурацию тонкого клиента – толстым и наоборот
- Доступные роли (права пользователя).
Права пользователя в конфигурациях обычно разбиты на блоки («роли»). В подходе старых конфигураций они разбивались по должностям пользователей (кассир, менеджер и т.п.). Этот подход имеет минус – так как в разных организациях кассир и менеджер могут иметь разные функции.
Поэтому в подходе новых конфигураций они разбиваются по действиям (доступ к зарытию месяца, доступ к кассовым операциям). То есть для каждого пользователя ставится набор операций.
В обоих случаях есть базовые права на доступ ко входу в программу. В старом подходе это:
- Пользователь
- ПолныеПрава (для администратора).
В новом подходе это:
- БазовыеПрава
- БазовыеПраваУТ
- ЗапускТонкогоКлиента – плюс ЗапускХххКлиента для запуска других
- ПодсистемаХхх – галочка на каждую подсистему (закладка в интерфейсе), которая нужна пользователю
- ПолныеПрава (для администратора, а не Администрирование!).
PS. Для внешних пользователей базовые права не нужны.
Как добавить пользователя 1С — пользователи 1С 8.2
Список пользователей 1С 8.2 в новом варианте находится в 1С (в режиме 1С Предприятие), в справочниках Пользователи и Внешние пользователи (только если поддерживает конфигурация). Различие состоит в том, что пользователей Вы должны заводить не в конфигураторе, а в этом справочнике, а в конфигуратор они попадут автоматически.
Если Вы используете тонкий клиент – то смотрите закладку рабочего стола Администрирование. Иначе – откройте справочник Пользователей, например, через меню Операции.
- Полное имя – ФИО
- Физическое лицо и Подразделение – необязательные поля, которые требуются для аналитики
- Доступ к информационной базе разрешен – добавить пользователя в конфигуратор автоматически
- Поля на закладке свойства пользователя инф. базы – аналогичны конфигуратору, обратите внимание, что галочка Показывать в списке выбора не ставится автоматически
- Нажать кнопку Записать
В отличии от первого подхода – здесь Вы не указываете пользователю напрямую каждое право (роль), а указываете группы прав (группы пользователей).
В справочнике Группы пользователей указан профиль, который определяет набор прав (ролей). В справочнике Профили групп пользователей можно изменить или добавить такие наборы прав (ролей).
Настройки пользователей 1С
В некоторых конфигурациях (особенно в конфигурациях старого подхода) – мало создать пользователя. Дополнительно необходимо:
- Зайти под пользователем первый раз в систему
- После этого найти пользователя в справочнике пользователей
- В форме справочника нажать (варианты «или»)
o Меню Перейти/Настройки пользователей
o Меню Дополнительные сведения/Настройки пользователя и Дополнительные права пользователя
o В некоторых конфигурациях это табличка прямо в форме пользователя
o В некоторых конфигурациях глобальное меню программы Сервис/Настройки пользователя - Настроить дополнительные настройки/права пользователя, которые определяют автозаполнение полей и некоторые доступы.
Как отключить пользователя 1С
[Временное] отключение пользователя в большинстве конфигураций не предусмотрено. Здесь указаны вариации, с помощью которых можно достичь этого результата.
Конфигурации старого подхода (через конфигуратор):
- Удалить пользователя
- Сменить пароль
- Снять роль Пользователь (не сможет войти).
Конфигурации нового подхода (через предприятие):
- Снять галочку Доступ к инф. базе разрешен
- Сменить пароль
- Исключить из всех групп доступа.
Активные пользователи 1С
1С позволяет узнать список пользователей, которые непосредственно сейчас находятся в базе данных.
Для этого в режиме Предприятие выберите меню Сервис/Активные пользователи (толстый клиент, административный интерфейс). В тонком клиенте – закладка Администрирование, слева Активные пользователи (может быть в См. также).
В режиме Конфигуратор выберите меню Администрирование/Активные пользователи.
Отключение пользователей 1С
Как известно, чтобы обновить базу данных (конфигурацию) – необходимо, чтобы все пользователи вышли из 1С (не во всех случаях, но часто требуется).
Пользователи выходить не любят (это факт). А если их попросить по телефону, то они обязательно войдут снова через 30 секунд. Когда пользователей 200 человек, то это становится очень веселым мероприятием.
Поэтому есть три способа отключения пользователей от 1С:
Данная статья рассказывает о синхронизации справочника «Пользователи» с пользователями БД. Типовые конфигурации от «1С» обладают достаточно сложной конфигурацией для понимания теми людьми, которые впервые сталкиваются с данной платформой и программированием на ней. В этой статье приводится наглядный пример, упрощающий схему работы пользователей.
Для создания формы списка справочника «Пользователи» следует создать новый справочник «Пользователи» без реквизитов, которые в случае необходимости могут быть добавлены позже. Отображение списка пользователей произойдет после создания «Формы Списка» опять же без реквизитов. Вместо этого создается реквизит «Таблица Значений», далее в него добавляются колонки.
Затем на форме размещается «Элемент таблица» с названием «Список Пользователей», в нее необходимо добавить два поля: «Список Пользователей Полное Имя» (Путь к информации – Список. Полное имя) и «Список Пользователей Имя» (Путь к информации – Список. Имя). После создания данной таблицы она заполняется сведениями с помощью создания события формы «При Создании На Сервере» и добавляется следующий код:
&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )
ОМПользователи . ОбновитьСписокПользователей ( Список );
Функция «Обновить Список Пользователей (Список)» размещается в общем модуле, а сама она теперь выглядит следующим образом:
Процедура ОбновитьСписокПользователей ( СписокПользователей ) Экспорт
Перем ПользователиИБ , СпрПользователейДляПоиска , СсылкаНаНайденногоПользователя ;
СпрПользователейДляПоиска = Справочники . Пользователи ;
ПользователиИБ = ПользователиИнформационнойБазы . ПолучитьПользователей ();
Для Каждого ПользовательИБ Из ПользователиИБ Цикл
СсылкаНаНайденногоПользователя = СпрПользователейДляПоиска . НайтиПоНаименованию ( ПользовательИБ . Имя );
Если СсылкаНаНайденногоПользователя = СпрПользователейДляПоиска . ПустаяСсылка () Тогда
НоваяСтрока = СписокПользователей . Добавить ();
НоваяСтрока . Имя = ПользовательИБ . Имя ;
НоваяСтрока . ПолноеИмя = ПользовательИБ . ПолноеИмя ;
НоваяСтрока . Ссылка = СсылкаНаНайденногоПользователя ;
НоваяСтрока . СуществуетВСправочнике = Ложь;
Иначе
НоваяСтрока = СписокПользователей . Добавить ();
НоваяСтрока . Имя = ПользовательИБ . Имя ;
НоваяСтрока . ПолноеИмя = ПользовательИБ . ПолноеИмя ;
НоваяСтрока . Ссылка = СсылкаНаНайденногоПользователя ;
НоваяСтрока . СуществуетВСправочнике = Истина;
КонецЕсли;
В данной функции перебираются пользователи БД, они добавляются в «Список Пользователей». Если этот элемент присутствует в справочнике «Пользователи», то обязательно устанавливается флажок «Существует В Справочнике», это требуется для условного форматирования в оформлении, то есть программа видит незаведенного в справочник пользователя и отображает его другим цветом. В свойствах формы указывается это же форматирование:
Затем создается новое форматирование за счет нажатия на кнопку «Добавить». Параметры их колонки «Оформление» должны выглядеть следующим образом:
Параметры колонки «Условие» должны выглядеть следующим образом:
Параметры колонки «Оформляемые поля» должны выглядеть следующим образом:
Для создания элемента справочника «Пользователи» следует добавить новую форму в справочник «Пользователи»:
После этого в форму добавляется новое поле со строковым реквизитом «Полное Наименование»:
Затем требуется вернуться к форме «Форма Списка» и создать событие «Выбор» для списка «Список Пользователей» с добавлением данного кода:
ТекущиеДанные = Элементы . СписокПользователей . ТекущиеДанные ;
//Если в справочнике Пользователи элемента нет тогда создаем новый
Если ТекущиеДанные . Ссылка . Пустая () Тогда
//В открываемую форму передаем 2 параметра:
//имя пользователя и полное имя пользователя
ОткрытьФорму ( "Справочник.Пользователи.ФормаОбъекта " ,
Новый Структура ( "ИмяПользователя, ПолноеИмяПользователя" ,
ТекущиеДанные . Имя , ТекущиеДанные . ПолноеИмя ));
//Иначе открываем существующий элемент справочника
Иначе
//В открываемую форму передаем 2 параметра:
//ссылка на существующий справочник и полное имя пользователя
ОткрытьФорму ( "Справочник.Пользователи.ФормаОбъекта" ,
Новый Структура ( "Ключ, ПолноеИмяПользователя" ,
ТекущиеДанные . Ссылка , ТекущиеДанные . ПолноеИмя ));
КонецЕсли;
После отправления параметров в открываемую форму осуществляется их прием и обработка, что делается благодаря созданию нового события формы «При Создании На Сервере» в форме элемента справочника «Пользователи»:
&НаСервере
Процедура ПриСозданииНаСервере ( Отказ , СтандартнаяОбработка )
Попытка
Объект . Наименование = Параметры . ИмяПользователя ;
Исключение
КонецПопытки;
Попытка
ПолноеНаименование = Параметры . ПолноеИмяПользователя ;
Исключение
КонецПопытки;
Форма элемента закончена, однако во время записи элемента справочника форма списка не обновляется. Для обновления формы справочника нужно воспользоваться функцией «Обработка Оповещения», что делается при помощи создания в форме элемента справочника события «После Записи» с добавлением следующего кода:
Далее в форме списка справочника создается событие «Обработка Оповещения» с добавлением кода:
&НаКлиенте
Процедура ОбработкаОповещения ( ИмяСобытия , Параметр , Источник )
Если ИмяСобытия = "ОбновитьФормуСписка" Тогда
ЭтаФорма . Список . Очистить ();
ОбновитьСписокПользователей ();
КонецЕсли;
Функция «Обновить Список Пользователей» теперь выглядит следующим образом:
Есть произвольная база 1С. У меня нет информации о ее пользователях и соответственно учетной записи для подключения к ней. Требуется программно получить ее список пользователей. Само клиентское приложение это умеет делать. Значит программно это можно сделать. Теперь осталось понять как.
через менеджер ком соединений получить можно список рабочих сеансов и оттуда выдрать но только рабочих. а так, штатно нельзя
получает то при запуске весь список Можно же зайти под скрытым пользователем, напечатав имя руками Может где в темповых файлах есть список?
Про временные файлы было бы слишком легко. Я искал, но не нашел. Если они там и есть, то закодированы. Но здравый смысл подсказывает, что не зачем их во временный файл помещать.
Ну а в чём проблема ? Запускаешь 1С на невидимом декстопе. Подключаешься к нему и из ComboBox-а читаешь список строк. Подозреваю, что придётся dll в адресное пространство 1С внедрить или запустить exe-файл в режиме отладки.
Далее, подозреваю, что и ссылку на подключение к Sql можно "перехватить", чтобы один запросик к пользователям сделать.
вообще-то последний пользователь запоминается. В кэше. Когда кэш чистим, выходит окошко без пользователя.
дайте доступ к тому, к чему нет доступа. решение должно быть универсальным. Это фантастика. Если база файловая можно её тупо прочитать, а вот если нет доступа к базоводу - тут только если этот доступ украсть или если воспользоваться какими-то не закрытыми дырами - но это не универсально
Никакой фантастики. В описан в общем виде путь решения. Осталось дождаться того, кто уже ходил теми дорожками.
Был у нас один принципиальный противник 1С, правда и программист он был так себе, ваял по 2-3 утилитки для считывания данных с датчиков на производственной линии (а что там ваять было- если исходники с датчиками шли). Потом запросил прямой доступ к базе 1С (к серверу). Слушали. Постановили- ввиду низкой квалификации в выдаче пароля на БД- отказать. Хез что он кривыми руками там натворит. И правильно.
Не. Темповые можно удалить и список все равно получается. Запрос к таблице в привилегированном режиме при старте. Не?
хакеры вы недоделанные, автор ты прикалываешься или действительно такой глупый? таких тем в инете как зайти в базу забыли пароль и ющку тыщи, если не больше. не знаю как щас во времена 8.1 100% можно было как и в 7.7 получить список пользователей и паролей подменой файла. кстати а где пятница?
Я не хакер. В данном случае я не прикалываюсь. Ломать базу мне не надо. Пароли мне не нужны. Нужны только имена пользователей.
>>Ну где же спецы по внутренностям? - где такие есть? >>Я не хакер. В данном случае я не прикалываюсь. Ломать базу мне не надо. Пароли мне не нужны >>делал подобное дл 7.7 - вот причем тут хакет-не хакер? Причем тут 7.7? В 1С8 используются хэши для паролей. Для пользователей - таблица SQL. Получай доступ к таблице - найдешь список пользюков. А вот войти не зная пароля не получится - минимум, должен знать хэш. И то тлько хитрым способом войдешь.
и причем тут Орефков, который со входами в стандартные длл-ки майкрософта и файлами ресурсов 1С работает?
>>не знаю как щас во времена 8.1 100% можно было как и в 7.7 получить список пользователей и паролей подменой файла. - давно ли в 8.х пользюки отдельным файлом лежат?
>>По ОЛЕ стучись к базе. - да хоть сто лет стучись - 1CD по OLE не работает и не работал, а SQL - к нему доступ без всякого ОЛЕ организуется.
>>Нужно из памяти процесса достать это список. Кто поможет? а что, уже кто-то 1С-процесс rphost'а дизассемблировал? Вот уж не думал, что ТАКИЕ 1сники будут ТАКИЕ вопросы ставить.
>>в клюшках явки/пароли передавались в открытом виде, снеговик вроде не особо дальше ушел - вы давно интересовались, как пользюки и пароли хранятся в 1С8? ))
>>Первое, что пришло в голову - глянуть в таблицы SQL, нет ли среди них такой с юзерами. - есть, и в 27 сказали, какая. В 1CD то же самое, только нужен чтец 1CD (там модель DBF). >>как и в каком виде они передаются - примерно как пароли Windows - в зашифрованном. В хэше.
Сейчас пользователи хранятся в таблице v8users. Если надо вытащить список, не запуская 1С - надо реализовывать чтение этой таблицы для разных форматов баз - файловая, ms-sql, postgress и т.д. Если делать универсально, через сам движок 1С - надо извращаться, чтобы в него попасть и вызвать пару методов. Могу попробовать в снегопате реализовать, подключение к другой базе и вытаскивание списка юзеров.
>- примерно как пароли Windows - в зашифрованном. В хэше. у меня из какой-то статьи отложилось что получить и разобрать сие хозяйство - "ху есть кто" не особо сложно из того что падает на сервер из клиента
+ Мой сосед по кабинету, DmitrO, делал частный случай, для mssql, еще для прошлых версий 1С, когда список хранился не отдельной табличкой, а бинарным файлом в виде записи в таблице. Вытаскивал и парсил.
>>Могу попробовать в снегопате реализовать, подключение к другой базе и вытаскивание списка юзеров. - и?? Что мешает список вытащить из самой 1С? А если мешает (нет дотспуа, паролей, etc - значит, что и как вам делать в той базе? ))
как я понял физический доступ к базе есть, причем здесь винда? для винды прога reset windows password
Не тупи, а? Список пользователей - не секретная информация, и виден при запуске 1С любому пользователю еще до авторизации в базе. Вопрос, как получить его программно.
>>у меня из какой-то статьи отложилось что получить и разобрать сие хозяйство - 1с пароль невозможно подобрать/расшифровать современными мощностями.
не тупи, а? Программно в 1с получается прекрасный список пользователей. А если ты не имеешь доступа к базу 1С - как будешь работать с ней? Зачем тебе туда доступ?
>>как я понял физический доступ к базе есть - неправильно поняли. Если есть доступ к базе - список пользюков получить вообще не проблема.
да, если не знаешь - организуешь COM-соединение и получаешь справочник пользователей. Это если нужно заранее "до входа" получить список из якобы" полностью доступной базы 1С", в чем я сильно сомневаюсь ))
>- 1с пароль невозможно подобрать/расшифровать современными мощностями. зачем его расшифровывать, если в строке уже все есть чтобы зайти в базу? а отделить это юзер/это хеш пароля - там было можно
Чтобы получить средствами 1С - надо зайти в базу, то есть иметь соответствующие права доступа к этой базе. Между тем, "глазками", "ручками" - можно видеть список пользователей, не заходя в базу, и не имея никаких прав доступа к ней - достаточно просто запустить базу и список будет показан еще до аворизации. Получается, что список пользователей не является секретной информацией, и этического вопроса "значит, что и как вам делать в той базе" - возникать не должно. Вот человек и ищет способ - получить список пользователей базы 1С не заходя в нее, но только программно.
Еще тут конечно спросил и пожелал такую возможность от производителя. Цели - интеграционные прикладные решения.
orefkov, как я понял способ только снегопатовский здесь подойдет. Нужно консольное приложение, которое 1. запустит невидимый 1cv8.exe с параметрами подключения к базе (без аутентификации) 2. отловит список после появления диалога аутентификации 3. завершит невидимый процесс 4. выведет список юзеров в stdout
Тогда проблема. Если данные хранятся в сиквеле, то как получить эти данные без прав на сиквел? Сервер приложений эти права имеет, поэтому и может показать список пользователей. Единственный способ, получается - это убедить сервер приложений выдать эти данные. Штатно без авторизации это сделать нельзя. Получается, что единственный вариант - "нечестный": впытаться притвориться твоей проге, что она является клиентом 1С, пытающимся авторизоваться.
Читайте также: