Чем заменить построчный обход таблицы в открытой форме?

1. ksen 01.03.23 09:59 Сейчас в теме
&НаКлиенте
Функция СумматорДублей(Номенклатура)
	Сумма = 0;
	Для Каждого Строка Из Объект.Товары Цикл
		Если Строка.Номенклатура=Номенклатура Тогда
			Если ПроверитьВариантОбеспечения(Строка.ВариантОбеспечения) Тогда
				Сумма=Сумма+Строка.КоличествоУпаковок;
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	Возврат Сумма;			
КонецФункции
Показать


на лицо напрашивается запрос, но понятия не имею к чему стучаться, если документ еще не проведен.Казалось бы что сложность алгоритма n, но выполняется эта конструкция медленно.
По теме из базы знаний
Найденные решения
4. comptr 35 01.03.23 10:20 Сейчас в теме
(3) не надо никуда никакие колонки добавлять, достаточно перенести проверку в исходную функцию СумматорДублей, используя ПредопределенноеЗначение(), а если есть БСП 2.1.4 и выше, то ОбщегоНазначенияКлиент.ПредопределенныйЭлемент().
Получение предопределенных значений на клиенте (ИТС)
5. EVKash 16 01.03.23 10:20 Сейчас в теме
(2) В данном случае контекстный вызов сервера не нужен.
А вообще...
ПредопределенноеЗначение (PredefinedValue)
Синтаксис:
ПредопределенноеЗначение(<ИмяПредопределенногоЗначения>)
Параметры:
<ИмяПредопределенногоЗначения> (обязательный)
Тип: Строка.
...
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Вызов метода выполняет обращение к серверу.
Примечание:
Результат выполнения кэшируется при первом обращении до изменения конфигурации или версии платформы.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ksen 01.03.23 10:07 Сейчас в теме
Кажется нашел в чем проблема,
&НаСервере
Функция ПроверитьВариантОбеспечения(ВО)
	Если ВО = Перечисления.ВариантыОбеспечения.РезервироватьПоМереПоступления ИЛИ ВО = Перечисления.ВариантыОбеспечения.КОбеспечению Тогда
		Возврат Истина
	Иначе
		Возврат Ложь
	КонецЕсли;
КонецФункции
Показать

Слишком часто стучусь на сервер.
3. FetisovAN 01.03.23 10:08 Сейчас в теме
(2) ну да ... добавьте в таблицу колонку с вариантом обеспечения в 1ин вызов
4. comptr 35 01.03.23 10:20 Сейчас в теме
(3) не надо никуда никакие колонки добавлять, достаточно перенести проверку в исходную функцию СумматорДублей, используя ПредопределенноеЗначение(), а если есть БСП 2.1.4 и выше, то ОбщегоНазначенияКлиент.ПредопределенныйЭлемент().
Получение предопределенных значений на клиенте (ИТС)
7. Ravil_ 01.03.23 11:14 Сейчас в теме
(4) ну и вынести их получение до цикла
5. EVKash 16 01.03.23 10:20 Сейчас в теме
(2) В данном случае контекстный вызов сервера не нужен.
А вообще...
ПредопределенноеЗначение (PredefinedValue)
Синтаксис:
ПредопределенноеЗначение(<ИмяПредопределенногоЗначения>)
Параметры:
<ИмяПредопределенногоЗначения> (обязательный)
Тип: Строка.
...
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Вызов метода выполняет обращение к серверу.
Примечание:
Результат выполнения кэшируется при первом обращении до изменения конфигурации или версии платформы.
6. ksen 01.03.23 10:44 Сейчас в теме
ПредопределенноеЗначение так и сделал, спасибо.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот