Как сделать, чтобы кассир в 1С:Розница всегда открывал своё рабочее место с нужной ККТ и сканером
Содержание
В 1С:Розница рабочее место привязывается не к пользователю программы, а к компьютеру и профилю Windows, с которого запущена 1С. Поэтому «закрепить место за кассиром» на практике значит: дать кассиру свой компьютер или свою учётную запись Windows, проверить текущее рабочее место в Администрирование → РМК и оборудование → Подключаемое оборудование и подключить к нему ККТ, сканер и дисплей покупателя.
Прямого поля «Пользователь» в карточке рабочего места нет. Если нужна жёсткая связка «этот сотрудник — только это место», её строят через отдельные учётные записи Windows, а при необходимости — небольшим расширением конфигурации. Всё ниже относится к 1С:Розница 2.x на платформе 8.3 с интерфейсом «Такси».
Что даёт закреплённое рабочее место кассиру и магазину
Рабочее место — элемент справочника «Рабочие места». К нему привязано всё подключаемое оборудование: фискальный регистратор, сканер штрихкодов, эквайринговый терминал, весы, дисплей покупателя.
Когда место определено правильно, кассир открывает РМК, и программа сама берёт «свою» ККТ и «свой» сканер. Без этого начинаются сюрпризы:
- 🧾 чек уходит не на тот фискальный регистратор, если в магазине две кассы;
- 🔌 при открытии РМК появляется сообщение, что оборудование не подключено;
- 🔁 после переустановки 1С или чистки профиля Windows в справочнике плодятся дубли мест;
- 👥 на терминальном сервере два кассира попадают на одно место и мешают друг другу.
Закрепление решает и вопрос ответственности. Кассовая смена открывается на конкретной ККТ, а ККТ стоит на конкретном рабочем месте. Значит, по месту видно, кто и где пробивал чеки.
Как программа определяет текущее рабочее место
Это ключ ко всей теме. Подсистема подключаемого оборудования при запуске смотрит на две вещи:
| Признак | Откуда берётся | Когда меняется |
|---|---|---|
| Имя компьютера | имя ПК в Windows | при переименовании компьютера |
| Идентификатор клиента | уникальный код клиентского приложения 1С в профиле пользователя Windows | при новом профиле Windows, переустановке системы, чистке профиля |
Если в справочнике есть место с таким сочетанием — программа выбирает его. Если нет — создаёт новое автоматически и называет его по имени компьютера.
Отсюда три практических вывода:
- Один кассир за одним компьютером под одной учётной записью Windows — место определяется само, настраивать почти нечего.
- Два кассира за одним ПК под общей учётной записью Windows — у них одно рабочее место. Различить их программа не сможет.
- Два кассира под разными учётными записями Windows — у каждого свой идентификатор клиента, значит и своё рабочее место.
Самый надёжный способ «привязать место к человеку» — именно третий вариант. Он работает без доработок и не ломается при обновлении конфигурации.
Способы закрепить рабочее место за пользователем
Выбор зависит от того, как устроен магазин.
| Способ | Когда подходит | Минусы |
|---|---|---|
| Свой компьютер на каждую кассу | классический магазин, касса = отдельный ПК | смена ПК даёт новое место, оборудование переподключают |
| Своя учётная запись Windows на кассира | общий ПК, терминальный сервер | нужно вести учётки Windows |
| Вход в 1С через аутентификацию ОС | хотите, чтобы кассир не вводил пароль 1С | без отдельной учётки Windows не работает |
| Расширение с таблицей «пользователь → место» | нужна проверка, что кассир не сел за чужое место | требует программиста и тестов на копии |
Обычно комбинируют второй и третий способы. Кассир входит в Windows под своим логином, 1С пускает его без пароля и сама находит его рабочее место.
Настройка в режиме 1С:Предприятие: пошагово
Эта часть делается под пользователем с полными правами, но на том компьютере и под той учётной записью Windows, с которой будет работать кассир. Иначе вы настроите своё место, а не его.
Шаг 1. Убедитесь, что кассир заведён в программе
- Откройте
Администрирование → Пользователи и права → Пользователи. - Создайте пользователя или откройте существующего.
- Включите ему профиль или группу доступа с правами кассира. Названия групп зависят от релиза: ориентируйтесь на группы, в описании которых упомянуто рабочее место кассира.
- Если у вас включено ограничение доступа по магазинам — дайте доступ к нужному магазину.
Шаг 2. Настройте вход без пароля 1С (по желанию)
- В карточке пользователя найдите блок настроек входа в программу.
- Включите аутентификацию операционной системы.
- Укажите учётную запись Windows в виде
\\ИМЯ-ПК\kassir1или\\ДОМЕН\kassir1.
Теперь при входе под этой учёткой Windows 1С сразу откроет нужного пользователя.
Шаг 3. Проверьте текущее рабочее место
- Запустите 1С под учётной записью Windows кассира.
- Откройте
Администрирование → РМК и оборудование → Подключаемое оборудование. - В верхней части формы видно текущее рабочее место. Если для этого ПК и профиля его ещё не было, программа уже создала его автоматически.
- Переименуйте место понятно: «Касса 1 — Ленина 15», а не «DESKTOP-7F3K2LQ».
Шаг 4. Подключите оборудование к этому месту
- В той же форме добавьте устройства: ККТ, сканер, эквайринг, весы.
- У каждого устройства укажите драйвер и параметры подключения (порт, IP-адрес ККТ).
- Нажмите проверку устройства в его настройках и добейтесь успешного теста.
- Проверьте, что в кассе ККМ, через которую кассир пробивает чеки, выбран именно этот фискальный регистратор.
Шаг 5. Проверьте под кассиром
Перезайдите под кассиром, откройте РМК и пробейте тестовую операцию. Например, отсканируйте товар и отмените чек, не пробивая его. Если сканер ловит штрихкод, а ККТ отвечает — привязка работает.
Не подключайте одно и то же физическое устройство на COM-порту к двум рабочим местам на одном компьютере. Порт занимает тот, кто открыл его первым, второй получит ошибку подключения.
Что можно сделать в конфигураторе
Конфигуратор для этой задачи нужен меньше, чем кажется. Рабочие места и оборудование — это данные, их ведут в режиме 1С:Предприятие. В конфигураторе остаются три вещи.
Список пользователей информационной базы. Администрирование → Пользователи в конфигураторе. Здесь видно, включена ли аутентификация ОС и какая учётка Windows указана. Править пользователей лучше всё же из режима Предприятия, чтобы не рассинхронизировать их со справочником «Пользователи».
Доступ к справочнику «Рабочие места» напрямую. Если в интерфейсе неудобно, его открывают через «Все функции». Включите команду: главное меню → Сервис → Параметры → флажок «Отображать команду «Все функции»». Затем Все функции → Справочники → Рабочие места. Здесь видны имя компьютера и идентификатор клиента каждого места, удобно искать дубли.
Расширение конфигурации. Если нужна проверка «кассир работает только со своего места», её делают расширением. Типовую конфигурацию не снимают с поддержки — расширение подключается отдельно и переживает обновления.
Автоматизация: скрипты и проверка при входе
Создать учётки Windows для кассиров пакетно
На терминальном сервере удобно завести кассиров скриптом PowerShell. Запускайте от администратора.
$kassiry = @("kassir1", "kassir2", "kassir3")
$pass = Read-Host "Начальный пароль" -AsSecureString
foreach ($name in $kassiry) {
New-LocalUser -Name $name -Password $pass -PasswordNeverExpires
# S-1-5-32-555 — группа «Пользователи удаленного рабочего стола»
Add-LocalGroupMember -SID "S-1-5-32-555" -Member $name
}
Группа указана по SID, поэтому скрипт работает и на русской, и на английской Windows. После этого каждый кассир входит под своей учёткой, запускает 1С — и программа создаёт ему отдельное рабочее место.
Проверка «свой кассир — своё место» расширением
Схема такая: в расширении создают регистр сведений с измерением «Пользователь» и ресурсом «Рабочее место». При старте программы сравнивают текущее место с разрешённым.
Текущее место в типовых конфигурациях с библиотекой подключаемого оборудования хранится в параметре сеанса РабочееМестоКлиента. Перед написанием кода проверьте имя в дереве конфигурации, раздел «Общие → Параметры сеанса».
Серверный общий модуль расширения (флажки «Сервер» и «Вызов сервера»):
Функция РабочееМестоРазрешено() Экспорт
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Привязка.РабочееМесто КАК РабочееМесто
|ИЗ
| РегистрСведений.РМ_РабочиеМестаПользователей КАК Привязка
|ГДЕ
| Привязка.Пользователь = &Пользователь";
Запрос.УстановитьПараметр("Пользователь", Пользователи.ТекущийПользователь());
Выборка = Запрос.Выполнить().Выбрать();
Если Не Выборка.Следующий() Тогда
Возврат Истина; // для пользователя привязка не задана — не ограничиваем
КонецЕсли;
Возврат Выборка.РабочееМесто = ПараметрыСеанса.РабочееМестоКлиента;
КонецФункции
Модуль управляемого приложения расширения:
&После("ПриНачалеРаботыСистемы")
Процедура РМ_ПриНачалеРаботыСистемы()
Если Не РМ_ПривязкаМест.РабочееМестоРазрешено() Тогда
ПоказатьПредупреждение(, "Вы вошли не со своего рабочего места. Оборудование этой кассы может быть недоступно. Обратитесь к администратору.");
КонецЕсли;
КонецПроцедуры
Здесь РМ_ПривязкаМест — имя серверного модуля из примера выше. Код только предупреждает. Если нужно запрещать вход, замените предупреждение на завершение работы — но сначала проверьте, что у администратора нет записи в регистре, иначе можно закрыть себе доступ.
Расширение сначала подключите в копии базы. Проверьте вход под кассиром и под администратором, затем переносите в рабочую.
Кассиры на терминальном сервере (RDP)
Через RDP имя компьютера у всех одно — имя сервера. Различает кассиров только идентификатор клиента, а он живёт в профиле Windows. Отсюда правила.
- 👤 Одна учётка Windows — один кассир. Общий логин вроде
kassaна всех даёт одно рабочее место на всех. - 🔒 Не запускайте два сеанса под одной учёткой. Оба попадут на одно место и будут бороться за порт ККТ.
- 🧹 Не чистите профили пользователей на сервере без нужды. Новый профиль — новый идентификатор клиента и новое рабочее место без оборудования.
Отдельный вопрос — само оборудование. При работе через RDP драйвер ККТ запускается на сервере, а не на кассовом ПК. Вариантов два:
| Вариант | Как работает | На что смотреть |
|---|---|---|
| Сетевая ККТ | касса подключена по Ethernet или Wi-Fi, сервер обращается к ней по IP | сервер должен «видеть» IP кассы, порт открыт в сети |
| Проброс COM- или USB-порта через RDP | порт кассового ПК становится доступен в сеансе | драйвер ставят на сервер, номер порта в сеансе может отличаться |
Сканер штрихкодов в режиме эмуляции клавиатуры обычно работает через RDP без настроек: он просто «печатает» код в окно 1С.
Перезагрузку терминального сервера или завершение сеансов кассиров делайте вне торговых часов. Оборвутся все открытые сеансы, а незакрытый чек на ККТ придётся разбирать отдельно.