Ускорение пробития чека на ККТ для Розницы 2.3

Публикация № 1438488

Учет и отчетность - Кассовые операции

Обработка розница оптимизация регламент

Ускорение пробития чека на ККТ для Розницы 2.3 путем частичной очистки регистра сведений "Фискальные операции".

Заметил, что со временем все дольше и дольше пробиваются чеки в периферийных розничных базах. Первый же замер производительности указал на узкое место – перед и после пробития фискального чека выполняется запрос к регистру сведений «Фискальные операции». Количество записей в нем в нашем случае оказалось более 170 тыс. Причем записи мигрируют через обмен «По магазину» по всем периферийным ИБ. Как я понял, данный регистр нужен для контроля, пробился или нет чек на ККТ, но зачем хранить его за весь период существования базы, мне пока не понятно.

После очистки избыточных записей время пробития чека сократилось с 10-15 секунд до 0,5-1 секунды.

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

Можно настроить расписание выполнения.

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

Тестировалось на релизе 2.3.7.19.

Использовать на свой страх и риск.

Скачать файлы

Наименование Файл Версия Размер
Ускорение пробития чека на ККТ для Розницы 2.3:

.epf 4,86Kb
54
.epf 4,86Kb 54 Скачать бесплатно

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. aspirator23 456 09.05.21 09:37 Сейчас в теме
Интересно, нужно попробовать.
2. Vyacheslide 15 09.05.21 09:47 Сейчас в теме
Спасибо за наблюдение, будем проверять и пробовать ))).
3. oldcopy 125 09.05.21 21:55 Сейчас в теме
Спасибо, актуально. Только я бы не очищал регистр, а ограничил период запроса к нему, скажем текущим месяцем.

Похожая ситуация есть и при закрытии смены, там делается запрос по чекам без ограничения по периоду, хотя фактически надо только с момента открытия текущей смены.
4. defini 454 09.05.21 23:02 Сейчас в теме
(3) Вариант, но тут либо с поддержки снимать, либо расширение писать. Плюс еще базы файловые, и такие большие "бесполезные" таблицы там ни к чему.
5. oldcopy 125 09.05.21 23:21 Сейчас в теме
(4) Расширения с РИБ пока не очень хорошо дружат, поэтому проще снять с поддержки. При должном подходе с документированием изменений вполне рабочий вариант получается.
6. user1253320 1 10.05.21 15:05 Сейчас в теме
Маленько не в тему, но вот такой вопрос, есть риб на 20 магазинов, обмен работает все ок, но в одном магазине переодически, при пробитии чека, пустая смена и номер с 1,эти чеки не уходят в офд, как исправить? Подскажите пожалуйста
7. triviumfan 25 10.05.21 18:17 Сейчас в теме
Хоть бы запрос показал, а то... 10-15с на запрос с 170к записей выглядит даже не смешно, а нелепо.
Я, конечно, видел, что там есть запросы не ахти, но в данном случае это перебор.
ЗЫ: речь про МенеджерОборудованияВызовСервера.ДанныеФискальнойОперации()?
	Запрос = Новый Запрос(
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	ФискальныеОперации.ИдентификаторЗаписи     КАК ИдентификаторЗаписи,  
	|	ФискальныеОперации.Дата                    КАК Дата,
	|	ФискальныеОперации.НомерЧекаККМ            КАК НомерЧекаККМ,
	|	ФискальныеОперации.НомерСменыККМ           КАК НомерСменыККМ,
	|	ФискальныеОперации.ТипДокумента            КАК ТипДокумента,
	|	ФискальныеОперации.ТипРасчета              КАК ТипРасчета,
	|	ФискальныеОперации.Организация             КАК Организация,
	|	ФискальныеОперации.ТорговыйОбъект          КАК ТорговыйОбъект,
	|	ФискальныеОперации.ЗаводскойНомерФН        КАК ЗаводскойНомерФН, 
	|	ФискальныеОперации.РегистрационныйНомерККТ КАК РегистрационныйНомерККТ,
	|	ФискальныеОперации.ДокументОснование       КАК ДокументОснование, 
	|	ФискальныеОперации.КорректируемыйДокумент  КАК КорректируемыйДокумент,
	|	ФискальныеОперации.Сумма                   КАК Сумма,         
	|	ФискальныеОперации.ФискальныйПризнак       КАК ФискальныйПризнак,
	|	ФискальныеОперации.ДополнительныйРеквизит  КАК ДополнительныйРеквизит,  
	|	ФискальныеОперации.ЕдиныйЧек               КАК ЕдиныйЧек,  
	|	ФискальныеОперации.ДанныеXML               КАК ДанныеXML
	|ИЗ
	|	РегистрСведений.ФискальныеОперации КАК ФискальныеОперации
	|ГДЕ
	|	(ФискальныеОперации.ДокументОснование = &ДокументСсылка)"
		+ ?(ИдентификаторЗаписи = Неопределено, "", " И (ФискальныеОперации.ИдентификаторЗаписи = &ИдентификаторЗаписи)")
		+ ?(ТипыДокументов = Неопределено, "", " И (ФискальныеОперации.ТипДокумента В (&ТипыДокументов))")
		+ ?(ТипРасчета = Неопределено, "", " И (ФискальныеОперации.ТипРасчета = &ТипРасчета)")
		+ " УПОРЯДОЧИТЬ ПО ФискальныеОперации.Дата УБЫВ, ФискальныеОперации.НомерСменыККМ УБЫВ");
Показать

Где ДокументОснование - первое измерение, т.е. отбор по кластерному индексу + топ1... 15 секунд?! Бабушкины сказки.
У меня 500к записей и никаких проблем.
10. defini 454 11.05.21 05:26 Сейчас в теме
(7) Вот подобная проблема: https://forum.infostart.ru/forum81/topic253567/.
А то, что у конкретно у тебя летает, еще ни о чем не говорит,
не у всех нормальное железо на кассовых местах.
11. triviumfan 25 11.05.21 09:34 Сейчас в теме
(10) навряд ли это связано с железом.
Файловая 1с - совсем другая жизнь, там может быть что у годно.
Нужно было в описании или заголовке это указать.
ЗЫ: хотя даже в файловой базе есть индексы... может нужно было сделать реиндексацию =\
12. defini 454 13.05.21 09:31 Сейчас в теме
(11) Реиндексация не помогала, помогла только очистка лишних записей
8. oldcopy 125 10.05.21 21:02 Сейчас в теме
(7) Я бы не стал так категорично, на кассовых узлах может стоять что-то совсем не бодрое, типа J1900, да еще с HDD, плюс несвернутая база за несколько лет. Там может оказаться и критично. В общем - надо тестировать на кассовом железе.
9. oldcopy 125 10.05.21 22:50 Сейчас в теме
(7) Проверил на кассовом узле. Особого влияния запроса на производительность не обнаружил. Возможно у автора имели место еще какие-то факторы. Всего в регистре 150к записей.
Прикрепленные файлы:
13. aspirator23 456 13.05.21 13:03 Сейчас в теме
Посмотрел выборочно. В центральной базе 350тыс. записей. В узлах максимум 80 тыс. Возможно что записи по узлам зря "не гуляют"?
14. gordeevan 14.05.21 09:47 Сейчас в теме
"...но зачем хранить его за весь период существования базы, мне пока не понятно."
в некоторых случаях можно не печатать бумажную версию чека, а формировать его просто как электронную версию. В случае оказания коммунальных услуг (может и еще есть уточнения) при приходе денежных средств на расчетный счет от абонента мы пробиваем электронный чек и имеем право не направлять его абоненту на почту (или на телефон). Но по письменному заявлению абонента мы обязаны указать ему сведения о пробитом чеке (для коммунальных услуг абонент может заявить свое требование в течении 3-х месяцев). Т.е. в этом случае регистр нужен уже не за 1 месяц, а за 3 месяца. Возможно в других случаях сфер деятельности этот период законодательством еще больше.
15. defini 454 14.05.21 13:20 Сейчас в теме
(14)Спасибо за комментарий. Насчет периода, код открытый, изменить не проблема.
16. user1603884 25.05.21 19:14 Сейчас в теме
у меня обработка почему-то не открылась :(
Вернее открылось чистое окно... 8.3.16.1224 Розница 2.3.4.33

А как посмотреть (на пальцах) сколько накопилось в регистре сведений "Фискальные операции"?
Прикрепленные файлы:
17. defini 454 26.05.21 09:34 Сейчас в теме
(16) У обработки нет формы, она подключается как внешняя обработка, для создания регламентного задания.

Посмотреть количество записей можно либо через "все функции - регистры сведений - Фискальные операции", либо выполнить в консоли запросов простой текст запроса:

"ВЫБРАТЬ
КОЛИЧЕСТВО(ФискальныеОперации.ИдентификаторЗаписи) КАК ИдентификаторЗаписи
ИЗ
РегистрСведений.ФискальныеОперации КАК ФискальныеОперации".
Оставьте свое сообщение

См. также

Помощник работы с VirtueMart Промо

WEB Розничная торговля Розничная торговля v8 УТ10 УПП1 Россия Бесплатно (free)

Обработка для обмена данными с интернет-магазином на базе VirtueMart. Позволяет выгружать товары с изображениями и загружать заказы покупателей. Управлять интернет-магазином теперь стало просто!

19.04.2012    26507    208    salexdv    13    

Перехватчик нажатий клавиш (ActiveX)

Разработка внешних компонент Сканер штрих-кода Розничная торговля Розничная торговля v8 1cv8.cf 1cv7.md Россия Бесплатно (free)

Примитивная компонента ActiveX, перехватывающая нажатия клавиш и принудительно возвращающая фокус компоненте при его потере. Искал в свое время для внедрения в интерфейс кассира. Может, кому еще пригодится.

14.12.2007    21997    922    MRAK    18    

Работа с фискальным регистратором

Кассовые операции Фискальный регистратор Рабочее место Кассовые операции v8 БП2.0 УТ10 УПП1 Россия БУ УУ Бесплатно (free)

Совсем простенькая обработка, позволяющая снимать X-отчет, делать внесение и изъятие денег из кассы ККМ (в типовых конфигурациях) в любом интерфейсе, а не только в интерфейсе кассира, как это задумано в типовой конфигурации.

05.10.2006    24174    1012    z-alexey    3