SetRetail10 ▪️ Касса ◾️ Консервация и расконсервация

Публичное пространство

SetRetail10 ▪️ Касса ◾️ Консервация и расконсервация

 

Используйте эту инструкцию:

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

 

Важная информация

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

  • Расконсервация кассы необходима в тех случаях, когда кассу необходимо выставить на линию, например для новогодних продаж.

  • Пириты 2Ф до версии 565.1.10 не поддерживают ФФД1.2. Не забудьте обновить прошивку!

  • Если касса использует банковские оплаты по QR-кодам, а также процессинги банка, тогда их необходимо настроить заново, так как файлы банковского процессинга могут устареть, и требуется повторная привязка банковского терминала.

  • Для регистрации/перерегистрации ККТ используйте утилиту Fito последней версии с поддержкой ФФД 1.2.

  • Рекомендуется, если кассы не было в сети продолжительное время и её версия отстает от текущих более чем на три версии, например текущая версия касс 10.3.5.0, а старая 10.3.1.0 и ниже, тогда переустановите кассу, так как это процесс осуществить проще и быстрее после долгого простоя.

  • Также, если у вас установлена версия TinyCore3, то в этом случае производится полная переустановка кассы.

  • Плагины: после восстановления кассы обязательно скопируйте в папку /home/tc/storage/crystal-cash/plugins/ последнюю версию файлов плагинов, которые не содержатся в дистрибутиве Set Retail 10 и поставляются сторонними поставщиками.

  • Обязательно проверьте, что при загрузке товаров на законсервированную кассу с SetCentrum на SetRetail, статус кассы на сервере магазина не сменился на “Активна“. Если статус активен, а касса по факту отсутствует, тогда повторно переведите её в статус неактивной.

Консервация и расконсервация касс, начиная с версии 10.3.9.0 с использованием SetCentrum

10.3.9.0

https://crystals.atlassian.net/browse/SRTS-456

https://crystals.atlassian.net/browse/CR-6858

Начиная с версии 10.3.9.0, консервация и расконсервация касс в топологиях Centrum ↔ Retail ↔ Кассы и Centrum ↔ Кассы доступны только через SetCentrum.

Консервация, расконсервация, редактирование, удаление и создание новых касс для этих топологий недоступны через SetRetail.

Консервация доступна доступна для серверных пользователей с привелегией “Администрирование настроек магазина”.

Для добавления привилегии:

1. Перейдите в Персонал → Роли пользователей → нажмите .

8841d20c-7880-4173-ba97-6157c4760304-20241206-144527.png

2. Выберите Управление продажами → Настройки магазина → Админитрирование настроек магазина → нажмите Добавить к роли

Консервация 

Топология SetCentrum ↔ SetRetail ↔ Кассы

Внимание!

Только для топологии SetCentrum ↔ SetRetail ↔ Кассы.

1. МагазинНастройки магазина → выберите нужную кассу  → выберите пункт меню Законсервировать.

 

2. После консервации кассы/касс обязательно выполните очистку справочников на кассе, выполнив скрипт в базах данных кассы:

cards

DO $$ BEGIN IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'card_cards' AND schemaname = 'public') THEN TRUNCATE TABLE public.card_cards CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'card_cardrange' AND schemaname = 'public') THEN TRUNCATE TABLE public.card_cardrange CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cards_lastcardid' AND schemaname = 'public') THEN TRUNCATE TABLE public.cards_lastcardid CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'card_cardtype' AND schemaname = 'public') THEN TRUNCATE TABLE public.card_cardtype CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'card_clients' AND schemaname = 'public') THEN TRUNCATE TABLE public.card_clients CASCADE; END IF; END $$;

 

catalog

DO $$ BEGIN IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_product' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_product CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_price' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_price CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'loy_cg_sale_restrictions' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.loy_cg_sale_restrictions CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'loy_products_group' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.loy_products_group CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'loy_products_salegroup' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.loy_products_salegroup CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'likond' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.likond CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'likond_files' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.likond_files CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_product_cg_salegroup' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_product_cg_salegroup CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_salegroup' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_salegroup CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_counterparty' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_counterparty CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_limits_base' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_limits_base CASCADE; END IF; END $$;

 

discount

DO $$ BEGIN IF EXISTS ( SELECT 1 FROM pg_tables WHERE tablename = 'discounts_advertisingactions' AND schemaname = 'public' ) THEN TRUNCATE TABLE PUBLIC.discounts_advertisingactions CASCADE; END IF; END $$;

 

Топология SetCentrum ↔ Кассы

1. Перейдите в Магазины → Поиск магазинов (найдите требуемый из списка) → кликните иконку редактирования.

2. Перейдите в Кассы → кликните иконку контекстного меню → выберите нужную кассу  → выберите пункт меню Законсервировать.

image-20250128-221102.png

Расконсервация

Очистка данных кассы в любой топологии перед расконсервацией

После того, как касса подключена к локальной сети, обязательно выполните скрипты по очистке данных на кассе всех справочников:

Выполните скрипты в следующий базах данных:

cards

DO $$ BEGIN IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'card_cards' AND schemaname = 'public') THEN TRUNCATE TABLE public.card_cards CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'card_cardrange' AND schemaname = 'public') THEN TRUNCATE TABLE public.card_cardrange CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cards_lastcardid' AND schemaname = 'public') THEN TRUNCATE TABLE public.cards_lastcardid CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'card_cardtype' AND schemaname = 'public') THEN TRUNCATE TABLE public.card_cardtype CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'card_clients' AND schemaname = 'public') THEN TRUNCATE TABLE public.card_clients CASCADE; END IF; END $$;

 

catalog

DO $$ BEGIN IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_product' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_product CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_price' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_price CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'loy_cg_sale_restrictions' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.loy_cg_sale_restrictions CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'loy_products_group' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.loy_products_group CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'loy_products_salegroup' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.loy_products_salegroup CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'likond' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.likond CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'likond_files' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.likond_files CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_product_cg_salegroup' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_product_cg_salegroup CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_salegroup' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_salegroup CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_counterparty' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_counterparty CASCADE; END IF; IF EXISTS (SELECT 1 FROM pg_tables WHERE tablename = 'cg_limits_base' AND schemaname = 'public') THEN TRUNCATE TABLE PUBLIC.cg_limits_base CASCADE; END IF; END $$;

 

discount

DO $$ BEGIN IF EXISTS ( SELECT 1 FROM pg_tables WHERE tablename = 'discounts_advertisingactions' AND schemaname = 'public' ) THEN TRUNCATE TABLE PUBLIC.discounts_advertisingactions CASCADE; END IF; END $$;

 

 

 

Топология SetCentrum ↔ SetRetail ↔ Кассы

Способ 1. Расконсервация на сервере

  • Если вы работаете удаленно с инженером ЦТО, обязательно позвоните ему и уточните собрана ли касса, готова ли она к работам по расконсервации.

  • Если на кассе не работает какое-либо периферийное оборудование, обязательно дождитесь подтверждения его готовности.

1. Включите кассу в сеть.

2. Удаленно с помощью SetConsole (КассыЗапустить SSH) или на кассе Ctrl + Alt + F1,

3. Выполните команду для проверки версии операционной системы:

cash status

4. Убедитесь в том, что у вас установлена версия 8.1.X и выше

Если у вас касса ниже версии 8.1.X, например TinyCore3, тогда переустановите кассу полностью.

После этого приступите к следующему шагу.

 

*** Set Retail Cash status *** POS Loaded : YES OS Release : 8.1.9 IP address : 172.29.17.19 Gateway : 172.29.16.1 DB Size : 103.7M TCE Path : /mnt/sda1/tce Disk free : 51.6G Server IP : 172.29.16.201 Server status : Available

5. Произведите все действия с фискальным регистратором по его активации (регистрация или перерегистрация) с помощью утилиты Fito.

6. Дождитесь пока касса появится по сети.

7. Откройте модуль управления конфигурацией и обновите кассу до последней версии.

8. На сервере перейдите в МагазинНастройки магазина → выберите нужную кассу  → выберите пункт меню Активировать.

9. Касса станет активна и на неё будут созданы задания на загрузку данных.

10. Обязательно проверьте, что задания отправляются на кассу и в панели уведомлений идет прогрузка.

Способ 2. Клонирование кассы

Описание

Инструмент позволяет выполнить быстрое клонирование соседней кассы и ввести её в эксплуатацию.

Инструмент предназначен для клонирования касс внутри одного магазина, но он не проверяет номер магазина.

При клонировании с кассы “донора” копируются:

  • товары

  • цены

  • рекламные акции

  • кассиры

В разных торговых сетях вышеуказанные параметры могут различаться.

При смене номера магазина поменяйте его через конфигуратор кассы, как и IP-адрес сервера.

Порядок действий

1. Скачайте дистрибутив инструмента на кассу, одним из способов:

Если сети Интернет на кассе нет, тогда скачайте инструмент по ссылке, и с помощью инструмент SetConsole → Кассы → Запустить WinSCP загрузите его на кассу.

2. Распакуйте и скопируйте, создав папку /home/tc/cash-clone на кассу файлы инструмента.

3. Выполните команды:

chmod +x /home/tc/storage/cash-clone.sh cd /home/tc/cash-clone

4. В зависимости от того, с какой кассы требуется скопировать данные и программную часть,  выполните команду:

Пример команды
./cash-clone.sh -ip=192.168.56.102 -num=6
  • -ip= - IP-адрес кассы, с которой копируем кассовый модуль с настройками>

  • -num= - Номер кассы, который будет назначен этой кассе

  • -nodb=1 - необязательный параметр NoDB, указывающий скрипту, что копировать надо только кассовый модуль, при этом базы данных переноситься не будут.

Порядок указания параметров не имеет значения.

5. Начнется процесс копирования.

6. Дождитесь окончания процесса выполните команды

cash save cash reboot

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

Топология SetCentrum ↔ Кассы

1. Проверьте доступность кассы по сети по IP-адресу. 

После включения кассы в сеть:

  • IP-адрес кассы можно узнать с помощью комбинации клавиш CTRL + ALT + F1 → команда ifconfig

  • После подключения кассы в сеть, а также, когда она создана в карточке магазина в базе данных

    set таблица 

    cash_cash

2. Перейдите в Магазины → Поиск магазинов (найдите требуемый из списка) → кликните иконку редактирования.

3. Перейдите на вкладку Кассы → кликните Добавить кассу → введите количество касс → установите раскладку клавиатуры и шаблон кассы → кликните СОХРАНИТЬ.

4. Касса появится в списке.

  • После добавления кассы в список сервера не нужно нажимать на сервере или на кассе "Новый магазин".

  • Задания на загрузку данных будут сформированы автоматически.

 

5. Проверьте актуальность версии на кассе в МУК. При необходимости обновите кассу.

6. Обязательно проверьте актуальные версии плагинов на кассе. Обязательно скопируйте последние актуальные версии файлов плагинов /home/tc/storage/crystal-cash/plugins/

7. Дождитесь загрузки товаров на кассу. Функциональность "Новая касса" на кассе применять не нужно!

8. Выполните скрипт проверки в базе данных set

Переустановка кассы 

Если касса отсутствовала на связи очень продолжительный период времени (больше 2-х недель), то вы также можете переустановить её на последнюю версию, и загрузить новыми данными.

Пример чек-листа проверки после расконсервации

Составьте чек-лист проверки ваших бизнес-процессов. После включения кассы и выполнения всех проверок проверьте кассу по чек-листу:

Фаза 

Статус

Открыть смену: печатается чек об открытии смены. Нет ошибок.

ОК/Ошибка

Проверить поиск товаров:

  • Товарный справочник

  • Добавление в чек

Убедиться в актуальности цен

ОК/Ошибка

Добавить алкогольный товар в чек во время запрета продажи (если есть ограничения на продажу алкоголя)

ОК/Ошибка

Добавить подарочную карту

ОК/Ошибка

Проверить сохранение и работоспособность настроек маркированных товаров

ОК/Ошибка

Добавить весовой или штучный товар в чек из справочника

ОК/Ошибка

Добавить товар в чек по нажатию «горячей клавиши» (если заведена)

ОК/Ошибка

Проверить сумму чека (товары, экран кассира, табло) + когда есть товар в подвале чека

ОК/Ошибка

Изменить количество товара в чеке

ОК/Ошибка

Проверить смену привилегий по ключу и картам (если есть)

ОК/Ошибка

Проверить сумму чека (товары, экран кассира, табло)

ОК/Ошибка

Проверка работы с оплатами (часть типов оплат/все типы оплат отключены)

ОК/Ошибка

Проверить правильность расчета оплаты по чеку

ОК/Ошибка

Проверить правильность расчета оплаты при оплате наличными

ОК/Ошибка

Проверить правильность расчета оплаты при оплате банковской картой

ОК/Ошибка

Проверить правильность расчета оплаты при оплате по бонусу (в том числе с использованием плагинов)

ОК/Ошибка

Проверить правильность расчета оплаты при смешанной оплате (наличная, подарочная карта, банк, бонус)

ОК/Ошибка

Корректная форма чека

ОК/Ошибка

Распечатать товарный чек (только для последнего чека)

ОК/Ошибка

Распечатать Х-отчет

ОК/Ошибка

Распечатать копию Z-отчета

ОК/Ошибка

Открыть денежный ящик

ОК/Ошибка

Сделать декларацию денежного ящика

ОК/Ошибка

Сделать отмену произвольного возврата до расчета и пробить чек продажи

ОК/Ошибка

Сделать два возврата подряд

ОК/Ошибка

Сделать возврат чека, оплаченного банковской картой

ОК/Ошибка

Сделать возврат чека, оплаченного через Внешний банковский терминал

ОК/Ошибка

Проверить возврат чека пробитого с расконсервированной другой кассы и обратно

ОК/Ошибка

Проверить сумму чека (товары, экран кассира, табло)

ОК/Ошибка

Проверить оплату чека из SetKit

ОК/Ошибка

Прочитать и зарегистрировать отложенный чек

ОК/Ошибка

Аннулировать чек, после подтверждения оплаты неполной суммы чека на кассе (чек изначально оплачен через Внешний банковский терминал)

ОК/Ошибка

Аннулировать отложенный чек

ОК/Ошибка

Аннулировать восстановленный чек продажи

ОК/Ошибка

Аннулировать текущий чек продажи на этапе формирования

ОК/Ошибка

Аннулировать текущий чек продажи после частичной оплаты

ОК/Ошибка

Аннулировать чек возврата (по чеку и произвольный) с двумя типами оплаты после возврата одной части суммы

ОК/Ошибка

Восстановить и зарегистрировать чек возврата

ОК/Ошибка

Восстановить и зарегистрировать чека продажи

ОК/Ошибка

Отобразить список ручных скидок (нужно отправить их с сервера)

ОК/Ошибка

Прокатать карту дисконтную карту

ОК/Ошибка

Заблокировать карту.

После этого прокатать заблокированную карту 

ОК/Ошибка

Замена карты.

Проверить, что старая карта заблокирована. Новая - применяется.

ОК/Ошибка

Прокатать карту отсутствующую в БД кассы

ОК/Ошибка

Проверить звук бипера

ОК/Ошибка

Убедиться, что после расконсервации на сервере в МУКе прописаны корректные данные: IP-адрес, номер кассы, номер магазина, статус

ОК/Ошибка

Сравните данные между сервером и кассой с помощью скрипта сверки данных

ОК/Ошибка

Установка обновления прошла корректно

ОК/Ошибка

Скрипт сверки данных

1. Откройте с помощью SetConsole или PgAdmin подключение к базе данных set сервера магазина

2. Кликните базу данных  → кликните .

3. Выполните скрипт dblink.sql.

4. Скачайте скрипт проверки.

5. Откройте скрипт в базе данных set на сервере SetRetail или SetCentrum → введите IP-адрес кассы в 4-х секциях ниже → выполните скрипт.

6. Появится отчет сравнения данных между кассой и сервером.

© 1994-2025, ООО «Кристалл Сервис Интеграция».
Все права защищены..

Политика обработки персональных данных