Тормоза при сканировании в рабочем месте кассира

07.08.23

База данных - HighLoad оптимизация

На низкоскоростных каналах связи в УТ 11 в РМК подтормаживает поиск по штрихкоду.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Тормоза при сканировании в рабочем месте кассира:
.cfe 25,31Kb
0 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Столкнулся с проблемой, на низкоскоростных каналах связи в УТ 11 в РМК подтормаживает поиск по штрихкоду.

Обнаружил серверный вызов, который и вызывает торможение.

Речь идет о процедуре ИнформацияОбОплатеЛокализация в форме ФормаДокументаРМК документа Чек ККМ.

Сама процедура может вызываться с клиента, но имеет 3 серверных вызова, которые и приводят к задержке.

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

Привожу доработанный код в расширении. Тестирование проводил на версии УТ 11.5.12.95, но думаю, будет работать и на других версиях.

Процедура СБП_ИнформацияОбОплатеЛокализация(Форма, ИнформацияОбОплате)
		
	//++ Локализация
	#Удаление
	СуммаОплатыЭСФССПоДокументу = СуммаОплатыЭСФССПоДокументу(Форма.Объект.ОплатаПлатежнымиКартами);
    #КонецУдаления
	#Вставка     
	СуммаОплатыЭСФСС = 0;
	
	Для Каждого СтрокаТЗ Из Форма.Объект.ОплатаПлатежнымиКартами Цикл
		
		Если СтрокаТЗ.ВидОплаты = ПредопределенноеЗначение("Перечисление.ТипыПлатежнойСистемыККТ.СертификатНСПК") Тогда
			СуммаОплатыЭСФСС = СуммаОплатыЭСФСС + СтрокаТЗ.Сумма;
		КонецЕсли;
		
	КонецЦикла;
	СуммаОплатыЭСФССПоДокументу = СуммаОплатыЭСФСС;
	#КонецВставки
	
	Форма.ЭтоОплатаЭСФСС = (СуммаОплатыЭСФССПоДокументу > 0);
	ИнформацияОбОплате.Вставить("ЭСФСС", СуммаОплатыЭСФССПоДокументу);

	ИтогоОплачено = ИнформацияОбОплате.ИтогоОплачено
	+ ИнформацияОбОплате.ЭСФСС;
	ИнформацияОбОплате.Вставить("ИтогоОплачено", ИтогоОплачено);

	#Удаление
	СуммаОплатыСБППоДокументу = СуммаОплатыСБППоДокументу(Форма.Объект.ОплатаПлатежнымиКартами);
    #КонецУдаления
	#Вставка     
	СуммаОплатыСБП = 0;
	ТолькоОплатаВыполнена = Истина;
	
	Для Каждого СтрокаТЗ Из Форма.Объект.ОплатаПлатежнымиКартами Цикл
		
		Если СтрокаТЗ.ВидОплаты = ПредопределенноеЗначение("Перечисление.ТипыПлатежнойСистемыККТ.СистемаБыстрыхПлатежей") Тогда
			
			Если ТолькоОплатаВыполнена И СтрокаТЗ.СтатусОплатыСБП = ПредопределенноеЗначение("Перечисление.ТипыСтатусовОплатыСБП.Выполнена")
				ИЛИ Не ТолькоОплатаВыполнена Тогда
				
				СуммаОплатыСБП = СуммаОплатыСБП + СтрокаТЗ.Сумма;
			КонецЕсли;
		КонецЕсли;
		
	КонецЦикла;
	СуммаОплатыСБППоДокументу = СуммаОплатыСБП;
	#КонецВставки
	#Удаление
	СуммаОжиданиеОплатыСБППоДокументу = СуммаОжиданиеОплатыСБППоДокументу(Форма.Объект.ОплатаПлатежнымиКартами);
    #КонецУдаления
	#Вставка     
	ТолькоОплатаВыполнена = Ложь;
	СуммаОплатыСБП = 0;
	
	Для Каждого СтрокаТЗ Из Форма.Объект.ОплатаПлатежнымиКартами Цикл
		
		Если СтрокаТЗ.ВидОплаты = ПредопределенноеЗначение("Перечисление.ТипыПлатежнойСистемыККТ.СистемаБыстрыхПлатежей") Тогда
			
			Если ТолькоОплатаВыполнена И СтрокаТЗ.СтатусОплатыСБП = ПредопределенноеЗначение("Перечисление.ТипыСтатусовОплатыСБП.Выполнена")
				ИЛИ Не ТолькоОплатаВыполнена Тогда
				
				СуммаОплатыСБП = СуммаОплатыСБП + СтрокаТЗ.Сумма;
			КонецЕсли;
		КонецЕсли;
		
	КонецЦикла;
	СуммаОжиданиеОплатыСБППоДокументу = СуммаОплатыСБП;
 	#КонецВставки

	Форма.ЕстьОплатаСБП = (СуммаОплатыСБППоДокументу > 0);
	ИнформацияОбОплате.Вставить("СБП", СуммаОплатыСБППоДокументу);
	ИнформацияОбОплате.Вставить("СБПОжидание", СуммаОжиданиеОплатыСБППоДокументу);

	ИтогоОплачено = ИнформацияОбОплате.ИтогоОплачено
	+ ИнформацияОбОплате.СБП;
	ИнформацияОбОплате.Вставить("ИтогоОплачено", ИтогоОплачено);
	//-- Локализация

КонецПроцедуры

 

Вступайте в нашу телеграмм-группу Инфостарт

Тормоза при сканировании РМК УТ11

См. также

HighLoad оптимизация Программист 1С 8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Использование оператора «В» для полей или данных составного типа (например, Регистратор) может приводить к неочевидным проблемам.

10.11.2025    14658    ivanov660    48    

57

HighLoad оптимизация Программист 1С:Предприятие 8 1C:ERP Бесплатно (free)

Приведем примеры использования различных в динамических списках и посмотрим, почему это плохо.

18.02.2025    15567    ivanov660    39    

62

HighLoad оптимизация Программист Россия Бесплатно (free)

А вы знали, что сервер 1С при соединении с базой на сервере PostgreSQL самостоятельно устанавливает некоторые параметры? Это важно знать при настройке сервера и отладке долгих запросов. Предлагаю разобраться.

27.08.2024    9474    soulner    10    

41

HighLoad оптимизация Технологический журнал Системный администратор Программист Бесплатно (free)

Обсудим поиск и разбор причин длительных серверных вызовов CALL, SCALL.

24.06.2024    18107    ivanov660    13    

64

HighLoad оптимизация Программист 1С:Предприятие 8 Бесплатно (free)

Метод очень медленно работает, когда параметр приемник содержит намного меньше свойств, чем источник.

06.06.2024    24065    Evg-Lylyk    73    

46

HighLoad оптимизация Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Анализ простого плана запроса. Оптимизация нагрузки на ЦП сервера СУБД используя типовые индексы.

13.03.2024    13833    spyke    29    

54
Для отправки сообщения требуется регистрация/авторизация