В процессе работы с программой «1С:Розница 2.2» (особенно в базовой версии) пользователи часто сталкиваются с проблемой: данные о продажах за день не успевают передаться в управляющую систему (например, «Управление торговлей 10.3»), так как кассир закрывает смену и сразу выключает компьютер. Стандартная синхронизация по расписанию может быть настроена на определенные интервалы, но «события» закрытия смены как триггера для обмена в типовом функционале зачастую не предусмотрено.
Рассмотрим подробнее, как решить эту задачу различными методами: от простых административных манипуляций до использования технических инструментов платформы 1С:Предприятие 8.3.
Проанализируем ситуацию: кассир заканчивает работу в 20:00, закрывает смену и хочет уйти домой. Если настроить обмен на 20:05, но при этом выключить ПК в 20:01, данные не уйдут. Самый простой и надежный способ без программирования — это использование системных возможностей Windows в связке с расписанием 1С.
Разберем этот метод по шагам:
shutdown /s /t 0.Важный нюанс: как показывает практика, для кассира проще «ничего не делать», чем выполнять сложные инструкции. Если объяснить персоналу, что компьютер выключится сам через 20 минут после закрытия смены, это исключит риск того, что обмен будет прерван ручным выключением питания. Рассмотрим преимущества: 15-20 минут работы компьютера после закрытия магазина гарантируют, что регламентные задания 1С успеют отработать в фоновом режиме.
Многие ошибочно полагают, что базовые версии не поддерживают расширения. Начиная с версии платформы 8.3.12, это ограничение снято. Мы можем использовать расширение, которое будет перехватывать событие закрытия смены.
Проанализируем программный подход. В расширении можно создать обработчик «После» для процедуры закрытия смены в интерфейсе РМК (Рабочее место кассира). В этот обработчик добавляется вызов процедуры обмена. Программно запуск синхронизации выглядит следующим образом:
// Пример вызова синхронизации для конкретной настройки
ПланыОбмена.ВыбратьПоТипу(Тип("ПланОбменаСсылка.СинхронизацияДанныхЧерезУниверсальныйФормат"));
// Используем стандартную функцию БСП для запуска обмена
СинхронизацияДанныхВсеОбъекты.ВыполнитьОбменДаннымиДляНастройки(НастройкаОбмена, Ложь);
Этот метод хорош тем, что обмен инициируется сразу после печати Z-отчета. Программа сама «доложит» в центральный офис об итогах смены, прежде чем кассир выйдет из системы.
Если вы опасаетесь вносить изменения даже через расширения, можно пойти путем создания внешней обработки. Рассмотрим этот вариант: стандартная форма ФормаЧек или общая форма РМК копируется во внешнюю обработку. В ней модифицируется кнопка «Закрытие смены».
Алгоритм работы такой обработки:
ЗакрытьСмену().Обработки.СинхронизацияДанныхПрофили.ЗавершитьРаботуСистемы().Этот способ позволяет оставить основную конфигурацию полностью типовой, что критично для базовых версий, находящихся на поддержке.
Выясним причину, по которой иногда не срабатывает автоматика: при закрытии программы 1С фоновые задания могут прерываться. Чтобы гарантировать доставку данных в УТ 10.3, можно создать исполняемый файл на рабочем столе, который кассир будет запускать вместо обычного выхода.
Пример содержания такого файла (exit_1c.bat):
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "Путь_К_Базе" /N "ИмяПользователя" /P "Пароль" /Execute "C:\Scripts\ForceSync.epf"
shutdown /s /t 60
В данном примере 1С запускается с параметром /Execute, который открывает внешнюю обработку ForceSync.epf. Эта обработка при открытии сразу инициирует обмен данными и закрывает сеанс 1С. После этого системная команда shutdown выключает компьютер через 60 секунд.
При настройке синхронизации между Розницей 2.2 и УТ 10.3 важно помнить, что УТ 10.3 построена на старой архитектуре (обычные формы), а Розница 2.2 — на новой (управляемые формы, БСП). Рассмотрим нюансы:
ОтчетОРозничныхПродажах.Проанализировав все доступные варианты, мы рекомендуем следующее:
Если бюджет на доработку ограничен, а версия 1С — базовая, используйте Способ 1 (Расписание + Планировщик Windows). Это самое надежное решение, не требующее программного вмешательства. Оно гарантирует, что даже если база «тяжелая» и обмен длится долго, данные успеют уйти до полного обесточивания системы.
Для более продвинутых пользователей оптимальным будет внедрение небольшого расширения, которое добавит флаг «Выполнить синхронизацию перед выходом» в диалоговое окно завершения работы программы. Это даст кассиру выбор и визуальный контроль над процессом.