Как сделать, чтобы кассир в 1С:Розница всегда открывал своё рабочее место с нужной ККТ и сканером

· 9 мин

Содержание

В 1С:Розница рабочее место привязывается не к пользователю программы, а к компьютеру и профилю Windows, с которого запущена 1С. Поэтому «закрепить место за кассиром» на практике значит: дать кассиру свой компьютер или свою учётную запись Windows, проверить текущее рабочее место в Администрирование → РМК и оборудование → Подключаемое оборудование и подключить к нему ККТ, сканер и дисплей покупателя.

Прямого поля «Пользователь» в карточке рабочего места нет. Если нужна жёсткая связка «этот сотрудник — только это место», её строят через отдельные учётные записи Windows, а при необходимости — небольшим расширением конфигурации. Всё ниже относится к 1С:Розница 2.x на платформе 8.3 с интерфейсом «Такси».

Что даёт закреплённое рабочее место кассиру и магазину

Рабочее место — элемент справочника «Рабочие места». К нему привязано всё подключаемое оборудование: фискальный регистратор, сканер штрихкодов, эквайринговый терминал, весы, дисплей покупателя.

Когда место определено правильно, кассир открывает РМК, и программа сама берёт «свою» ККТ и «свой» сканер. Без этого начинаются сюрпризы:

  • 🧾 чек уходит не на тот фискальный регистратор, если в магазине две кассы;
  • 🔌 при открытии РМК появляется сообщение, что оборудование не подключено;
  • 🔁 после переустановки 1С или чистки профиля Windows в справочнике плодятся дубли мест;
  • 👥 на терминальном сервере два кассира попадают на одно место и мешают друг другу.

Закрепление решает и вопрос ответственности. Кассовая смена открывается на конкретной ККТ, а ККТ стоит на конкретном рабочем месте. Значит, по месту видно, кто и где пробивал чеки.

Как программа определяет текущее рабочее место

Это ключ ко всей теме. Подсистема подключаемого оборудования при запуске смотрит на две вещи:

ПризнакОткуда берётсяКогда меняется
Имя компьютераимя ПК в Windowsпри переименовании компьютера
Идентификатор клиентауникальный код клиентского приложения 1С в профиле пользователя Windowsпри новом профиле Windows, переустановке системы, чистке профиля

Если в справочнике есть место с таким сочетанием — программа выбирает его. Если нет — создаёт новое автоматически и называет его по имени компьютера.

Отсюда три практических вывода:

  1. Один кассир за одним компьютером под одной учётной записью Windows — место определяется само, настраивать почти нечего.
  2. Два кассира за одним ПК под общей учётной записью Windows — у них одно рабочее место. Различить их программа не сможет.
  3. Два кассира под разными учётными записями Windows — у каждого свой идентификатор клиента, значит и своё рабочее место.

Самый надёжный способ «привязать место к человеку» — именно третий вариант. Он работает без доработок и не ломается при обновлении конфигурации.

Способы закрепить рабочее место за пользователем

Выбор зависит от того, как устроен магазин.

СпособКогда подходитМинусы
Свой компьютер на каждую кассуклассический магазин, касса = отдельный ПКсмена ПК даёт новое место, оборудование переподключают
Своя учётная запись Windows на кассираобщий ПК, терминальный сервернужно вести учётки Windows
Вход в 1С через аутентификацию ОСхотите, чтобы кассир не вводил пароль 1Сбез отдельной учётки Windows не работает
Расширение с таблицей «пользователь → место»нужна проверка, что кассир не сел за чужое местотребует программиста и тестов на копии

Обычно комбинируют второй и третий способы. Кассир входит в Windows под своим логином, 1С пускает его без пароля и сама находит его рабочее место.

Как у вас организованы кассы?

Настройка в режиме 1С:Предприятие: пошагово

Эта часть делается под пользователем с полными правами, но на том компьютере и под той учётной записью Windows, с которой будет работать кассир. Иначе вы настроите своё место, а не его.

Шаг 1. Убедитесь, что кассир заведён в программе

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

Шаг 2. Настройте вход без пароля 1С (по желанию)

  1. В карточке пользователя найдите блок настроек входа в программу.
  2. Включите аутентификацию операционной системы.
  3. Укажите учётную запись Windows в виде \\ИМЯ-ПК\kassir1 или \\ДОМЕН\kassir1.

Теперь при входе под этой учёткой Windows 1С сразу откроет нужного пользователя.

Шаг 3. Проверьте текущее рабочее место

  1. Запустите 1С под учётной записью Windows кассира.
  2. Откройте Администрирование → РМК и оборудование → Подключаемое оборудование.
  3. В верхней части формы видно текущее рабочее место. Если для этого ПК и профиля его ещё не было, программа уже создала его автоматически.
  4. Переименуйте место понятно: «Касса 1 — Ленина 15», а не «DESKTOP-7F3K2LQ».

Шаг 4. Подключите оборудование к этому месту

  1. В той же форме добавьте устройства: ККТ, сканер, эквайринг, весы.
  2. У каждого устройства укажите драйвер и параметры подключения (порт, IP-адрес ККТ).
  3. Нажмите проверку устройства в его настройках и добейтесь успешного теста.
  4. Проверьте, что в кассе ККМ, через которую кассир пробивает чеки, выбран именно этот фискальный регистратор.

Шаг 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С.

Перезагрузку терминального сервера или завершение сеансов кассиров делайте вне торговых часов. Оборвутся все открытые сеансы, а незакрытый чек на ККТ придётся разбирать отдельно.

Сбои после настройки и как их найти

Диагностика: выберите симптом

Частые вопросы

Можно ли закрепить одно рабочее место за несколькими кассирами?
Да. Если кассиры работают по сменам за одним ПК под одной учёткой Windows, у них общее место и общее оборудование. Чеки различаются по пользователю 1С, который открыл смену.
Можно ли удалить старое рабочее место?
Да, пометьте его на удаление в справочнике «Рабочие места». Перед этим убедитесь, что к нему не привязано нужное оборудование, и удаляйте помеченные в нерабочее время.
Нужна ли отдельная лицензия 1С на каждое рабочее место?
Лицензии считаются по сеансам и компьютерам, а не по элементам справочника «Рабочие места». Число мест в справочнике на лицензии не влияет.
Переносится ли рабочее место при копировании базы на другой сервер?
Элементы справочника переносятся вместе с базой. Но если сменились имена компьютеров или профили Windows, программа их не узнает и создаст новые места.
Что будет, если кассир зайдёт в 1С через веб-клиент?
Рабочее место определяется и для веб-клиента, но работа с локальным оборудованием в браузере ограничена. Для кассы с ККТ надёжнее тонкий клиент.