При работе в программе 1С:Розница (особенно в распределенных или веб-серверных базах) многие администраторы сталкиваются с неприятной ситуацией. Настроенный автоматический обмен с ЕГАИС по расписанию отлично функционирует под учетной записью администратора. Однако стоит кассиру зайти в базу под своим именем, как обмен ЕГАИС перестает работать. Аналогичная проблема возникает и с отправкой чеков по SMS или электронной почте — они просто «застревают» в очереди, ожидая запуска под правами администратора.
В этой статье мы подробно проанализируем причины такого поведения системы, выясним, почему типовых прав кассира недостаточно для выполнения регламентных задач, и разберем по шагам несколько эффективных сценариев решения этой проблемы без предоставления сотрудникам избыточных административных прав.
Для того чтобы понять, почему система ведет себя подобным образом, давайте рассмотрим внутреннюю архитектуру выполнения фоновых задач в платформе 1С:Предприятие 8.3 при работе через веб-сервер (IIS или Apache).
Когда информационная база опубликована на веб-сервере, регламентные задания по умолчанию пытаются запуститься в контексте того сеанса пользователя, который в данный момент активен и отправляет запросы к веб-серверу. В случае файловой базы на веб-сервере фоновые потоки инициируются непосредственно в процессах веб-сервера (w3wp.exe или httpd.exe) под учетной записью активного пользователя. Когда в систему заходит кассир с ограниченным набором прав, регламентное задание сталкивается со следующими ограничениями безопасности:
ЗапускФоновыхЗаданий или АдминистрированиеРегламентныхЗаданий. По умолчанию у профиля «Продавец-кассир» эти роли полностью отключены для оптимизации быстродействия интерфейса РМК.ИспользованиеУчетныхЗаписейЭлектроннойПочты), что приводит к ошибкам при попытке отправки.ОчередьЧековККТ). Обычный кассир не имеет прав на модификацию этих таблиц напрямую.Рассмотрим подробнее четыре практических метода исправления этой ситуации.
---
Самое правильное и архитектурно верное решение — полностью убрать выполнение регламентных заданий из клиентского сеанса кассира и перенести их на сторону сервера 1С или веб-сервера. В этом случае регламентные задания будут выполняться в фоновом режиме под системной учетной записью, не завися от прав вошедшего в программу пользователя.
Давайте разберем настройку этого режима по шагам:
127.0.0.1 или localhost). Однако сервер 1С не знает, что такое localhost на клиентском компьютере — для него это будет сам сервер. Поэтому в поле «Адрес УТМ» необходимо обязательно прописать абсолютный статический IP-адрес компьютера кассы в локальной сети (например, 192.168.1.105) и сетевой порт (по умолчанию 8080).8080 для входящих подключений из локальной сети. Сервер 1С должен свободно «пинговать» компьютер кассира.После этого обмен ЕГАИС будет запускаться сервером по расписанию независимо от того, кто авторизован в системе — кассир или администратор.
---
Если ваша информационная база является файловой и опубликована на веб-сервере, встроенный механизм регламентных заданий может работать нестабильно, так как веб-сервер периодически «усыпляет» неактивные рабочие процессы. Чтобы гарантировать выполнение обмена ЕГАИС и отправки чеков, настроим выделенный служебный сеанс.
Для этого выполним следующие действия:
РоботЕГАИС и назначим ей права администратора.
"C:\Program Files\1cv8\8.3.25.1234\bin\1cv8.exe" ENTERPRISE /F"C:\1C_Bases\Retail" /N"РоботЕГАИС" /P"СложныйПароль123" /AllowExecuteScheduledJobs
Параметр /AllowExecuteScheduledJobs принудительно указывает платформе, что именно этот запущенный сеанс является главным планировщиком и должен забирать на себя выполнение абсолютно всех фоновых задач (включая обмен ЕГАИС, отправку почты и обработку очереди чеков), полностью разгружая сеансы кассиров.
---
Если по каким-то причинам перевести обмен «На сервер» невозможно, и обмен должен запускаться именно из клиентского приложения кассира, нам придется точечно расширить его права доступа, создав специальный профиль. Давать кассиру полные права администратора категорически запрещено из соображений безопасности.
Проанализируем процесс создания безопасного профиля:
Дополнительные права для обмена ЕГАИС и отправки чеков.ВыполнениеСинхронизацииДанных — отвечает за запуск механизмов автоматического обмена;ИспользованиеУчетныхЗаписейЭлектроннойПочты — позволит отправлять электронные чеки на Email;ЧтениеЕГАИС и ДобавлениеИзменениеЕГАИС — разрешит запись документов и логов ЕГАИС;ВыполнениеРегламентныхЗаданийВСеансеКлиента — откроет доступ к механизму регламентных задач платформы.Продавец-кассир.---
Чтобы раз и навсегда решить проблему с «застреванием» очереди электронных чеков (по закону 54-ФЗ) под кассирами, мы рекомендуем полностью освободить программу 1С от этой задачи и переложить её на вашего Оператора фискальных данных (ОФД).
Этот способ является наиболее надежным, так как ОФД гарантирует стопроцентную доставку сообщений и не нагружает базу 1С фоновыми запросами. Выполним настройку по шагам:
При такой схеме работы кассир в РМК по-прежнему вводит номер телефона или Email покупателя перед пробитием чека. 1С передает эти контактные данные напрямую в фискальный накопитель (ФН) кассы, откуда они уходят в ОФД вместе с чеком. ОФД самостоятельно осуществляет отправку сообщений клиенту. Проблема «зависших» писем в 1С исчезает навсегда.
Мы проанализировали проблему блокировки регламентных заданий под учетной записью кассира и рассмотрели варианты ее решения. Наиболее стабильным и безопасным подходом является перевод обмена ЕГАИС в режим «На сервере» (Вариант 1) с указанием точного IP-адреса УТМ, а также делегирование отправки чеков на сторону ОФД (Вариант 4). Эти шаги позволят вашей системе работать полностью в автоматическом режиме, не требуя от вас ручного вмешательства и регулярного входа под учетной записью администратора.