Как настроить обмен с ЕГАИС и отправку чеков по расписанию под учетной записью кассира в 1С:Розница?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

При работе в программе 1С:Розница (особенно в распределенных или веб-серверных базах) многие администраторы сталкиваются с неприятной ситуацией. Настроенный автоматический обмен с ЕГАИС по расписанию отлично функционирует под учетной записью администратора. Однако стоит кассиру зайти в базу под своим именем, как обмен ЕГАИС перестает работать. Аналогичная проблема возникает и с отправкой чеков по SMS или электронной почте — они просто «застревают» в очереди, ожидая запуска под правами администратора.

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

Выясняем причину: почему обмен не работает под кассиром?

Для того чтобы понять, почему система ведет себя подобным образом, давайте рассмотрим внутреннюю архитектуру выполнения фоновых задач в платформе 1С:Предприятие 8.3 при работе через веб-сервер (IIS или Apache).

Когда информационная база опубликована на веб-сервере, регламентные задания по умолчанию пытаются запуститься в контексте того сеанса пользователя, который в данный момент активен и отправляет запросы к веб-серверу. В случае файловой базы на веб-сервере фоновые потоки инициируются непосредственно в процессах веб-сервера (w3wp.exe или httpd.exe) под учетной записью активного пользователя. Когда в систему заходит кассир с ограниченным набором прав, регламентное задание сталкивается со следующими ограничениями безопасности:

  1. Ограничение безопасного режима (сетевая активность): В целях безопасности сеансы обычных пользователей и кассиров часто запускаются платформой в так называемом «безопасном режиме» или с ограничением доступа к внешним интернет-ресурсам. Так как УТМ (Универсальный транспортный модуль) ЕГАИС принимает запросы по протоколу HTTP, платформа 1С блокирует любые попытки кода отправить исходящий сетевой запрос из сеанса кассира.
  2. Отсутствие необходимых ролей: Для выполнения регламентных и фоновых задач сеансу пользователя необходима специализированная роль ЗапускФоновыхЗаданий или АдминистрированиеРегламентныхЗаданий. По умолчанию у профиля «Продавец-кассир» эти роли полностью отключены для оптимизации быстродействия интерфейса РМК.
  3. Ограничения на отправку почты и SMS: Для отправки электронных чеков по закону 54-ФЗ регламентное задание обращается к системной учетной записи почты и SMS-шлюзу. У кассиров нет прав доступа к этим объектам (отсутствует роль ИспользованиеУчетныхЗаписейЭлектроннойПочты), что приводит к ошибкам при попытке отправки.
  4. Блокировка записи в системные регистры: Процедура обмена ЕГАИС требует записи служебной информации в логи, изменения статусов документов и работы с очередями сообщений (например, с регистром сведений ОчередьЧековККТ). Обычный кассир не имеет прав на модификацию этих таблиц напрямую.

Рассмотрим подробнее четыре практических метода исправления этой ситуации.

---

Вариант 1. Настройка обмена на сервере (Рекомендуемый сценарий)

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

Давайте разберем настройку этого режима по шагам:

  1. Перейдем в раздел Администрирование — Настройки интеграции с ЕГАИС.
  2. В поле настройки обмена выберем способ выполнения обмена: На сервере.
  3. Внимание! Ключевой момент: Когда обмен настроен «На клиенте», программа обращается к локальному адресу УТМ (127.0.0.1 или localhost). Однако сервер 1С не знает, что такое localhost на клиентском компьютере — для него это будет сам сервер. Поэтому в поле «Адрес УТМ» необходимо обязательно прописать абсолютный статический IP-адрес компьютера кассы в локальной сети (например, 192.168.1.105) и сетевой порт (по умолчанию 8080).
  4. Убедимся, что на компьютере с УТМ настроен статический IP-адрес, а в брандмауэре Windows открыт порт 8080 для входящих подключений из локальной сети. Сервер 1С должен свободно «пинговать» компьютер кассира.
  5. При необходимости (если магазины находятся в разных сетях) настроим VPN-соединение между сервером и торговыми точками, чтобы обеспечить прямую видимость сетевых адресов.

После этого обмен ЕГАИС будет запускаться сервером по расписанию независимо от того, кто авторизован в системе — кассир или администратор.

---

Вариант 2. Запуск выделенного сеанса-планировщика (для файловых баз)

Если ваша информационная база является файловой и опубликована на веб-сервере, встроенный механизм регламентных заданий может работать нестабильно, так как веб-сервер периодически «усыпляет» неактивные рабочие процессы. Чтобы гарантировать выполнение обмена ЕГАИС и отправки чеков, настроим выделенный служебный сеанс.

Для этого выполним следующие действия:

  1. Создадим в справочнике Пользователи служебную учетную запись с именем РоботЕГАИС и назначим ей права администратора.
  2. Настроим запуск этого пользователя на сервере (или любом постоянно включенном компьютере) в скрытом режиме при старте операционной системы с помощью планировщика задач Windows.
  3. В качестве запускаемого файла укажем исполняемый файл платформы 1С с параметрами командной строки. Посмотрим на пример такой строки запуска:

"C:\Program Files\1cv8\8.3.25.1234\bin\1cv8.exe" ENTERPRISE /F"C:\1C_Bases\Retail" /N"РоботЕГАИС" /P"СложныйПароль123" /AllowExecuteScheduledJobs

Параметр /AllowExecuteScheduledJobs принудительно указывает платформе, что именно этот запущенный сеанс является главным планировщиком и должен забирать на себя выполнение абсолютно всех фоновых задач (включая обмен ЕГАИС, отправку почты и обработку очереди чеков), полностью разгружая сеансы кассиров.

---

Вариант 3. Настройка специального профиля доступа для кассира

Если по каким-то причинам перевести обмен «На сервер» невозможно, и обмен должен запускаться именно из клиентского приложения кассира, нам придется точечно расширить его права доступа, создав специальный профиль. Давать кассиру полные права администратора категорически запрещено из соображений безопасности.

Проанализируем процесс создания безопасного профиля:

  1. Перейдем в раздел Администрирование — Настройки пользователей и прав — Профили групп доступа.
  2. Создадим новый профиль и назовем его, например, Дополнительные права для обмена ЕГАИС и отправки чеков.
  3. В списке разрешенных ролей отметим флажками следующие важные роли:
    • ВыполнениеСинхронизацииДанных — отвечает за запуск механизмов автоматического обмена;
    • ИспользованиеУчетныхЗаписейЭлектроннойПочты — позволит отправлять электронные чеки на Email;
    • ЧтениеЕГАИС и ДобавлениеИзменениеЕГАИС — разрешит запись документов и логов ЕГАИС;
    • ВыполнениеРегламентныхЗаданийВСеансеКлиента — откроет доступ к механизму регламентных задач платформы.
  4. Сохраним профиль и перейдем в карточку пользователя-кассира. Вкладка Права доступа — добавим кассиру созданный профиль в дополнение к его основному профилю Продавец-кассир.
  5. Важно: Убедимся, что для данного профиля в режиме конфигуратора отключен безопасный режим с ограничением прав. В противном случае платформа 1С все равно заблокирует исходящие сетевые запросы к УТМ и SMS-сервисам.

---

Вариант 4. Перенос отправки чеков (SMS и Email) на сторону ОФД

Чтобы раз и навсегда решить проблему с «застреванием» очереди электронных чеков (по закону 54-ФЗ) под кассирами, мы рекомендуем полностью освободить программу 1С от этой задачи и переложить её на вашего Оператора фискальных данных (ОФД).

Этот способ является наиболее надежным, так как ОФД гарантирует стопроцентную доставку сообщений и не нагружает базу 1С фоновыми запросами. Выполним настройку по шагам:

  1. Перейдем в раздел Администрирование — Продажи — Закон № 54-ФЗ.
  2. Снимем флажки Электронный чек (SMS) передаются программой 1С и Электронный чек (Email) передаются программой 1С.
  3. Зайдем в личный кабинет вашего ОФД (например, Платформа ОФД, Такском, Контур.ОФД) и активируем там услугу отправки электронных чеков по SMS и Email.

При такой схеме работы кассир в РМК по-прежнему вводит номер телефона или Email покупателя перед пробитием чека. 1С передает эти контактные данные напрямую в фискальный накопитель (ФН) кассы, откуда они уходят в ОФД вместе с чеком. ОФД самостоятельно осуществляет отправку сообщений клиенту. Проблема «зависших» писем в 1С исчезает навсегда.

Резюме

Мы проанализировали проблему блокировки регламентных заданий под учетной записью кассира и рассмотрели варианты ее решения. Наиболее стабильным и безопасным подходом является перевод обмена ЕГАИС в режим «На сервере» (Вариант 1) с указанием точного IP-адреса УТМ, а также делегирование отправки чеков на сторону ОФД (Вариант 4). Эти шаги позволят вашей системе работать полностью в автоматическом режиме, не требуя от вас ручного вмешательства и регулярного входа под учетной записью администратора.

← На главную