Как дать возможность продавцу выполнять синхронизацию в 1С:Розница Базовая?

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

При автоматизации небольших торговых точек на базе программы 1С:Розница (особенно её базовой версии) часто возникает классическая проблема. Нам необходимо организовать регулярный обмен данными между управляющей системой (например, 1С:Управление торговлей) и локальной кассовой базой. При этом за кассой работают продавцы или кассиры, квалификация которых не позволяет им перемещаться по сложным меню программы. Нам нужна максимально простая схема работы: либо полностью автоматическая синхронизация, либо запуск процесса в одно нажатие кнопки.

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

Выясняем причину: почему кнопка «Выполнить обмен» в меню РМК неактивна?

Сначала разберем, почему стандартная кнопка обмена в режиме управляемой кассы (РМК) оказывается недоступной. В типовом решении 1С:Розница эта кнопка жестко привязана к механизму Распределенных Информационных Баз (РИБ).

Однако базовая версия платформы «1С:Предприятие» имеет ряд жестких лицензионных ограничений, среди которых:

Поскольку синхронизация между базовой розницей и УТ настраивается через универсальный формат обмена (EnterpriseData), программа не распознает это подключение как РИБ-соединение. Соответственно, кнопка обмена в меню РМК программно блокируется. Включить её стандартными галочками в настройках невозможно. Нам придется использовать альтернативные пути решения.

Решение 1. Настройка прав доступа для кассира (Обязательный шаг)

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

Настроим права кассира правильно:

  1. Зайдем в программу под учетной записью администратора системы.
  2. Перейдем в раздел Администрирование, далее выберем пункт Настройки пользователей и прав.
  3. Перейдем по ссылке Группы доступа (или Профили групп доступа).
  4. Найдем профиль, назначенный вашему кассиру (обычно это «Продавец» или «Кассир»). Если это предопределенный профиль, мы не сможем его изменить напрямую. В этом случае создадим новый профиль групп доступа (скопировав существующий кассирский) или создадим отдельную группу доступа.
  5. В списке разрешенных ролей найдем и отметим флажком роль Выполнение синхронизации данных.
  6. Сохраним изменения. Теперь кассир имеет легальное право запускать обмен.

Решение 2. Вывод настроек синхронизации на начальную страницу (Рабочий стол)

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

Разберем процесс настройки по шагам:

  1. В главном меню программы (в верхнем левом углу) выберем пункт Вид — Настройка начальной страницы.
  2. В открывшемся окне в левой колонке («Доступные формы») найдем форму Настройки синхронизации данных.
  3. Переместим ее в правую колонку («Рабочий стол») с помощью кнопки Добавить.
  4. Нажмем кнопку ОК для сохранения настроек интерфейса.

Теперь алгоритм работы для кассира выглядит следующим образом:

  1. В конце смены кассир закрывает смену и выходит из режима РМК (нажимает кнопку «Закрыть» или «Выход»).
  2. Перед ним открывается рабочий стол системы «1С», где крупно выведена форма синхронизации.
  3. Кассиру достаточно нажать всего одну кнопку — Синхронизировать (кнопка с зелеными круговыми стрелочками).
  4. После завершения процесса кассир закрывает программу и выключает компьютер. Это просто, понятно и не вызывает стресса у персонала.

Решение 3. Настройка автоматического фонового обмена по расписанию

Рассмотрим ситуацию с регламентными заданиями. Многие администраторы считают, что в базовой версии невозможно настроить автоматический обмен по расписанию из-за отсутствия сервера «1С:Предприятие». Это не так. В файловых базах данных регламентные задания успешно выполняются, но только внутри активного сеанса пользователя. То есть, пока программа кассира запущена в течение дня, обмен может происходить сам по себе в фоновом режиме.

Настроим сценарий синхронизации:

  1. Перейдем в раздел Администрирование — Синхронизация данных.
  2. Откроем ссылку Настройки синхронизации данных.
  3. В меню выберем пункт Сценарии синхронизации и нажмем кнопку Создать.
  4. В открывшемся окне укажем нашу настройку обмена с УТ.
  5. Зададим способ подключения (например, через сетевой каталог, FTP-сервер или веб-сервис).
  6. Настроим расписание. Для этого перейдем по ссылке настройки расписания и укажем интервал (например, «каждый день, каждые 30 минут»).
  7. Сохраним созданный сценарий.

Теперь, пока у кассира открыта программа, каждые полчаса система будет невидимо для него связываться с базой УТ, отправлять чеки и получать новые цены и товары. Это идеальный вариант, полностью исключающий человеческий фактор.

Решение 4. Использование расширения конфигурации (Программный метод)

Вопреки распространенному мнению, базовая версия 1С:Розница позволяет подключать расширения конфигурации. Единственное ограничение — расширение не должно менять структуру метаданных (создавать новые справочники, документы или реквизиты). Но добавлять новые элементы интерфейса и программный код в расширении можно!

Программист может создать небольшое расширение, которое добавит кнопку прямо на форму РМК. К этой кнопке можно привязать физическую клавишу на POS-клавиатуре.

При нажатии на эту кнопку в расширении должен выполняться следующий программный код:


// Вызов процедуры обмена через БСП
ПараметрыОбмена = ПолучитьПараметрыОбмена(); 
Если ПараметрыОбмена <> Неопределено Тогда
    ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазы(ПараметрыОбмена.УзелИнформационнойБазы);
    ПоказатьПредупреждение(, "Синхронизация успешно завершена!");
КонецЕсли;

Этот метод полностью решает проблему «бабушек у кассы», так как им вообще не нужно совершать никаких переходов по меню — достаточно нажать назначенную клавишу прямо в процессе работы на кассе.

Решение 5. Автоматизация запуска синхронизации через BAT-файл

Рассмотрим вариант, когда обмен нужно гарантированно выполнять при запуске компьютера или перед уходом домой, вообще минуя интерфейс программы для пользователя. Для этого мы можем использовать командный файл Windows (BAT-файл).

Создадим текстовый файл с расширением .bat на рабочем столе кассира. Пропишем в нем сценарий, который сначала запускает «1С» в скрытом режиме выполнения обмена, а затем открывает программу в обычном режиме для работы:


@echo off
echo Запуск синхронизации данных...
"C:\Program Files\1cv8\common\1estart.exe" ENTERPRISE /F "C:\1C_Bases\Retail" /N "Кассир" /P "Пароль" /C "ВыполнитьОбмен" /Out "C:\temp\sync_log.txt" -NoSplash
echo Синхронизация завершена. Запуск рабочей программы...
"C:\Program Files\1cv8\common\1estart.exe" ENTERPRISE /F "C:\1C_Bases\Retail" /N "Кассир" /P "Пароль"

Чтобы этот скрипт сработал, нам нужно в модуле управляемого приложения нашей базы (опять же, через небольшое расширение) прописать обработку параметра запуска в процедуре ПриНачалеРаботыСистемы:


Процедура ПриНачалеРаботыСистемы()
    ПараметрыЗапускаСкрипта = ПараметрыЗапуска;
    Если ПараметрыЗапускаСкрипта = "ВыполнитьОбмен" Тогда
        // Выполняем синхронизацию в тихом режиме
        ВыполнитьСинхронизациюВТихомРежиме();
        // Завершаем работу сеанса, чтобы bat-файл пошел дальше по коду
        ЗавершитьРаботуСистемы(Ложь);
    КонецЕсли;
КонецПроцедуры

При таком подходе кассиру достаточно дважды кликнуть по одному ярлыку на рабочем столе Windows. Программа сама запустится, обменяется данными с главным офисом, автоматически закроется и тут же откроет чистое окно РМК для продаж.

Возможные проблемы при синхронизации и способы их устранения

Даже при идеальной автоматизации обмена периодически могут возникать технические сбои. Проанализируем наиболее частые проблемы и пути их решения:

  1. Зависание сеансов: Если база закрылась некорректно, в каталоге базы может остаться файл блокировки 1Cv8.lgd или зависший фоновый процесс. Для исправления ситуации необходимо перезагрузить компьютер кассира.
  2. Конфликт версий файлов обмена: Возникает, если обмен не выполнялся долгое время. Рекомендуется настроить автоматический обмен по сценарию (Решение 3), чтобы минимизировать размер передаваемых пакетов данных.
  3. Ошибки сетевого доступа: Если обмен идет через сетевой каталог, убедитесь, что у пользователя Windows, под которым запущена программа «1С», есть полные права на чтение и запись в эту папку.

Мы подробно рассмотрели все доступные варианты организации синхронизации данных для продавца. Используя предложенные методики, вы сможете настроить стабильный обмен даже на базовых версиях программы «1С:Розница» без нарушения лицензионной политики.

← На главную