Введение
В статье описана ситуация поломки базы, когда в ней появляется блюдо с нулевым кодом.
Пример подобного поведения в кубическом отчете:
Возможные причины:
- Потеря связи и рассинхронизация между сервером справочников/отчетов и базой данных SQL
- Откат базы сервера справочников/отчетов на состояние, когда проданных блюд еще не было в меню менеджерской станции
Поиск причины ошибки
Первым делом необходимо выяснить причину ошибки.
Откройте SQL Server Management Studio и выполните запрос вашей базе данных:
select distinct sifr from SESSIONDISHES where SIFR not in(select sifr from MENUITEMS)
SQL
- Запрос показывает проданные блюда, которых нет в меню. В моем случае нашлось одно блюдо.
- Далее поиском в менеджерской станции проверьте, есть ли блюда с такими идентификаторами
Если блюда есть, значит у нас случай №1. Решить проблему можно выгрузив справочники в базу данных SQL. Об этом читайте ниже.
Исправление для случая №1
Для этого:
- Перейдите в меню Сервис > Экспорт данных > Экспорт в другую БД
- Укажите параметры соединения, логин и пароль
- Проставьте галочки по умолчанию, убрав галочку у Накопительных данных. Если галку оставить — данные о продажах перезапишутся
- Нажмите кнопку Проверить и затем Ok
- Дождитесь окончания экспорта.
Если после этих действий блюдо есть в менеджерской станции, но отсутствует в базе SQL, создайте задачу для службы поддержки.
Исправление для случая №2
Если блюд нет и в менеджерской, значит случай №2 — базу сервера справочников/отчетов откатили на состояние, когда эти блюда еще не были созданы. Для исправления:
- Вспомнить, что это за блюда: цену, название и прочие данные
- Создайте в менеджерской станции новые блюда по параметрам из предыдущего пункта
Выполните к SQL-базе запрос из поля ниже. Одному блюду — один запрос. То есть, для каждого блюда сделайте строку со старым и новым идентификатором блюда
update sessiondishes set sifr=111111 where sifr=1000979
SQL
где 1000979 – идентификатор старого блюда, которое отсутствует в базе rk7.udb, а 111111 — новое блюдо которое создали в менеджерской станции.
- Готово. Теперь в кубовых отчетах будет фигурировать созданные нами блюда вместо блюд с нулевым кодом.