Перейти к содержимому

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

  • автор:

Как разделить “сплитануть” пользователей(user_id) на группы для А/Б теста.

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

Сплит с помощью SQL:

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

%6 это количество бакетов которые мы хотим получить на выходе. Их можно также обьеденить в группы:

Сплит с помощью Python:

Надеюсь кому-то это пригодится и буду рад вопросам, комментариям. Всем хороших А/Б тестов

Разбор тестирования 1С:Профессионал и PMP

Вопрос 01.22 экзамена 1С:Профессионал по платформе. Как можно разделить список пользователей на группы?
Тут нужно понимать о каком списке идет речь, если это список из конфигуратора, тогда разделять нельзя. В пользовательском же режиме, например в УТП, справочник "Пользователи" иерархичен, а вот список пользователей ИБ — нет.
Можете подробнее раскрыть этот вопрос?

По вопросу 1.12. В свойствах конфигурации я не нашел флага "Разрешить непосредственное удаление объектов". Этого флага не существует, или я плохо искал? Если его нет, то этот вариант поставили для усложнения задачи?

Вопрос 01.22 Как можно разделить список пользователей на группы?
"Разделение списка осуществляется с помощью общих реквизитов".
Упрощенно механизм такого разделения выглядит след.образом. Создается Общий реквизит со свойством Разделение данных "Разделять". После обновления базы, в окне настройки пользователя появляется закладка "Разделение данных", в которой можно указать флаг использования общего реквизита и указать для него значение в формате параметра командной строки /Z.

Теперь в тестах есть еще один вопрос:

1.73 Для запрета режима непосредственного удаления предопределенных
элементов справочника пользователем необходимо.
1. в свойствах конфигурации снять флаг "Разрешить непосредственное удаление предопределенных"
+++2. при определении роли для соответствующих объектов снять отметку у флага "Интерактивное удаление предопределенных"
3. при определении роли для соответствующих объектов снять отметку у флага "Интерактивное удаление"
4. в свойствах роли снять отметку у флага "Разрешить интерактивное удаление предопределенных"
5. в свойствах роли снять отметку у флага "Разрешить интерактивное удаление объектов"
6. возможности удаления предопределенных элементов в системе нет

вариант 2 правильный

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

v8.2 УП: как разграничить пользователей по справочнику Организации

1. для начала проверить, чтобы у пользователя не было "Полные права" и обязательно был "Пользователь"
2. зайти в интерфейс "Администрирование пользователей" и в меню "Доступ на уровней записей" в подменю "параметры" поставить галку "ограничить доступ на уровне записей по видам об'ектов" и далее галку супротив "Организации"
3. далее в этом же интерфейсе: "Пользователи" — "Группы пользователей" — "Добавить" — указать наименование, если нужно родителя, в списке "Ограничение доступа" уже будет "Вид об'екта доступа" — "Организации", в списке "Состав группы" добавить пользователя
4. переключиться в "Полный" интерфейс: "Справочники" — "Организации" — "Организации". зайти в нужную организацию, в ней "Перейти" — выбрать любой "Настройки прав доступа пользователей" (их там два). Заполнить: "Об'ект доступа" — нужная организация, "вид об'екта" — "Организации", "область данных" — пусто, "Группа пользователей" — нужная группа пользователей", "Владелец прав доступа" — нужная организация, "Наследована от все пользователи" — пусто, "Чтение" — пусто, "запись" — галочка, "Вид наследования прав доступа иерархических справочников" — "Распространять на подчиненных"

Вопрос из экзамена 1сПроф:1.22 КАК МОЖНО РАЗДЕЛИТЬ СПИСОК ПОЛЬЗОВАТЕЛЕЙ НА ГРУППЫ?

Вопрос из задачника: 1.22 КАК МОЖНО РАЗДЕЛИТЬ СПИСОК ПОЛЬЗОВАТЕЛЕЙ НА ГРУППЫ?

в инете нашла что правильный ответ будет:3. Разделение списка осуществляется с помощью общих реквизитов

Что-то совсем непонятное.

Вот пробую, создаю общий реквизит, в поле «Разделение данных» — выбираю «Разрешить», появилось окно «Создать параметры сеанса для значения и использования разделения данных» (см.рис.),жму ок

Далее появились новые поля, заполняю их,см.рис2

В поле «Условное разделение» — выбор объекта идет из Функциональных опций. Причем тут одно к другому-не пойму.

И вот следующие поля появились:1) Разделение пользователей; 2) Разделение аутентификации. И чего с этим делать?

Кто-нибудь использовал эту фишку, каков принцип работы этого механизма? В учебниках ничего по этому поводу найти не могу.

  • Скопировать ссылку
  • Перейти

(1) В помощнике:
РазделениеПользователейОбщегоРеквизита (CommonAttributeUsersSeparation)
Разделять (Separate)
Описание:

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

В БСП есть (а значит и в типовых), думаю там и посмотреть можно, как поведет себя система:

  • Скопировать ссылку
  • Перейти

(4) Если с окрытым замером, откроете код модуля, то будет отображение как на 1 рисунке.

Вообще работа с замером (чтобы замерять не весь сеанс):
1. Ставите 2 точки останова в начале кода, который хотите замерять и в конце (наприме 1 и последняя строка процедуры).
2. При остановке на первой точке зупускаете замер, нажимаете F5 — продолжить отладку.
3. На второй точке снова нажимаете замер.

  • Скопировать ссылку
  • Перейти

(1) В помощнике:
РазделениеПользователейОбщегоРеквизита (CommonAttributeUsersSeparation)
Разделять (Separate)
Описание:

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

В БСП есть (а значит и в типовых), думаю там и посмотреть можно, как поведет себя система:

  • Скопировать ссылку
  • Перейти

Следующий вопрос из задачника почти на эту же тему:
1.23 КАК РАЗДЕЛИТЬ МЕХАНИЗМ НУМЕРАЦИИ ДОКУМЕНТОВ ПО ФИЛИАЛАМ ДЛЯ МНОГОФИРМЕННОГО УЧЕТА?
1. Только программно.
2. С помощью механизма разделения данных.
3. Разделение нумератора для многофирменного учета не поддерживается.

здесь верный ответ №2: механизм разделения данных, и если по данному предложению спросить инет, то получим ссылку с сайта 1с: http://v8.1c.ru/overview/Term_000000788.htm
На страничке этого сайта как раз расписан механизм разделения данных с помощью «Общего реквизита»,н-р, «Организация», но как это практически используется, как по шагово создать такой механизм в новой базе с нуля? Что-то не очень понятно.

  • Скопировать ссылку
  • Перейти

Еще один непростой вопрос из задачника:

3.16 В ОКНЕ РЕДАКТИРОВАНИЯ ОБЪЕКТА КОНФИГУРАЦИИ — СПРАВОЧНИК «КОНТРАГЕНТЫ» НА ЗАКЛАДКЕ «ФОРМЫ» СВОЙСТВО «ВВОД ПО СТРОКЕ» МОЖЕТ БЫТЬ ЗАПОЛНЕНО.
1. только кодом и наименованием справочника.
2. кодом, наименованием, или другими строковыми или числовыми реквизитами, у которых свойство «Индексировать» имеет значение «Индексирование» или «Индексирование с доп. упорядочиванием».
3. кодом, наименованием, или другими реквизитами, у которых свойство «Индексировать» имеет значение «Индексирование» или «Индексирование с доп. упорядочиванием»
4. любыми реквизитами, с любым типом и значением индексирования.

Сразу было не понятно — что подразумевается под «Ввод по строке». Есть на сайте 1с картинка обычного ввода первых символов в любое поле ввода https://its.1c.ru/db/metod8dev#content:2207:hdoc

Пришлось заново пересмотреть все функции форм справочника и стало понятно, что в вопросе опечатка — ни закладка «Формы», а закладка «ПолеВвода» . Тогда создаем любой новый реквизит со стоковым или числовым типом данных,потом обязательно его индексируем, и после этого на закладке «ПолеВвода» — мы можем добавить кроме стандартного Наименования и Кода — наш новый реквизит (см.рис)

п.с.правильный ответ в этом случае — №2

  • Скопировать ссылку
  • Перейти

Очень интересный вопрос нашла в задачнике:
5.56 ИНФОРМАЦИЯ В КОЛОНКЕ ЛЕВЕЕ ТЕКСТА МОДУЛЯ ОТОБРАЖАЕТ. см.рис1

1. количество вызовов строки кода в замере производительности и время ее исполнения
2. количество вызовов строки кода в замере производительности и процент времени ее исполнения к общему времени замера
3. порядковый номер замера производительности и время исполнения строки кода
4. порядковый номер замера производительности и процент времени исполнения строки кода по отношению к общему времени замера

Но вот в чем дело — у меня никак не получается отразить точно такой же вариант отображения производительности как на рисунке из задачника. Может кто подскажет как это сделать.

п.с. я смогла включить расчет производительности только сл.методом:
1.Конфигуратор-меню-Отладка-ЗамерПроизводительности
2.запуск 1сПредприятия, вызов любой процедуры, н-р расчет с запросом Отчета
3.в Конфигураторе вновь на ту же кнопку «Замер производительности»-в результате получается вот такая таблица (см.рис2), в которой видно сколько времени идет обработка,н-р,запроса

п.с.2. И все равно мне понравился даже такой вариант замера производительности — теперь с помощью встроеного в 1с механизма замера можно сверять Оптимальность запросов, не прибегая к сторонним программам типа ExpressProfiler22wAddinSigned . ))

  • Скопировать ссылку
  • Перейти

(4) Если с окрытым замером, откроете код модуля, то будет отображение как на 1 рисунке.

Вообще работа с замером (чтобы замерять не весь сеанс):
1. Ставите 2 точки останова в начале кода, который хотите замерять и в конце (наприме 1 и последняя строка процедуры).
2. При остановке на первой точке зупускаете замер, нажимаете F5 — продолжить отладку.
3. На второй точке снова нажимаете замер.

Добавить комментарий

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