powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Вычисляемые поля
17 сообщений из 17, страница 1 из 1
Вычисляемые поля
    #36309962
iskander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток!

В УПП 8.1 есть документ ЗаказПокупателя.
В форме списка локументов добавил три колонки, где отображаю отгрузку по заказу, сумму налоговых, оплату. На событие СписокПриПолученииДанных повесил вычисление этих полей (запросами по регистрам).

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

Как ускорить процесс ?

Заранее благодарю.
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36309985
iskander77,
Обычно используют событие "ПриВыводестроки". Может быстрее будет
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36309999
iskander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новичок111111iskander77,
Обычно используют событие "ПриВыводестроки". Может быстрее будет

Пробовал. Эффект тот же.
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36310007
Господин ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кешировать надо
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36310500
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskander77
В УПП 8.1 есть документ ЗаказПокупателя.
В форме списка локументов добавил три колонки, где отображаю отгрузку по заказу, сумму налоговых, оплату. На событие СписокПриПолученииДанных повесил вычисление этих полей (запросами по регистрам).

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

Как ускорить процесс ?

Вариант 1 (по уму) :
Получать данные и выводить их в событие ПриВыводеСтроки. " iskander77: Пробовал. Эффект тот же. " - именно в это событие надо включать подчитку нужных данных. Очевидно, что ваш запрос данных надо оптимизировать. Опубликуйте запрос, посмотрим.

Вариант 2 (для сложных списков) :
Вместо использования ДокументСписок в данных табличного поля формы списка документов использовать таблицу значений, которую заполнять запросом нужной сложности. Здесь также необходимо обрабатывать различные события и текущие строки.

Вариант 3 (по идеологии 1С) :
Сделать регистр сведений или дополнительные реквизиты документа ЗаказПокупателя, в которые сохранять актуальное состояние интересующих интегральных показателей ("где отображаю отгрузку по заказу, сумму налоговых, оплату") при измениях. Расчет и сохранение таких показателей можно сделать через подписку на события.
Читать из этого регистра или дополнительных реквизитов документа.
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36310620
iskander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_VVP_iskander77
В УПП 8.1 есть документ ЗаказПокупателя.
В форме списка локументов добавил три колонки, где отображаю отгрузку по заказу, сумму налоговых, оплату. На событие СписокПриПолученииДанных повесил вычисление этих полей (запросами по регистрам).

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

Как ускорить процесс ?

Вариант 1 (по уму) :
Получать данные и выводить их в событие ПриВыводеСтроки. " iskander77: Пробовал. Эффект тот же. " - именно в это событие надо включать подчитку нужных данных. Очевидно, что ваш запрос данных надо оптимизировать. Опубликуйте запрос, посмотрим.



Вариант 1.
Делал так

Функция ПолучитьСуммуРН(заказСсылка)
суммаРН = 0;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ЗаказПокупателя",заказСсылка);
Запрос.Текст = "ВЫБРАТЬ
| СУММА(ЗаказыПокупателейОбороты.СуммаВзаиморасчетовРасход) КАК СуммаРН
|ИЗ
| РегистрНакопления.ЗаказыПокупателей.Обороты(, , , ЗаказПокупателя.Ссылка = &ЗаказПокупателя) КАК ЗаказыПокупателейОбороты";

результат = Запрос.Выполнить().Выбрать();

Пока результат.Следующий() Цикл
суммаРН = результат.СуммаРН;

КонецЦикла;

Возврат суммаРН;

КонецФункции




Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Если ЭлементыФормы.Список.Колонки.РН.Видимость Тогда
суммаДокументов = ПолучитьСуммуРН(ДанныеСтроки.ссылка);
ОформлениеСтроки.Ячейки.РН.УстановитьТекст(суммаДокументов);
КонецЕсли;

КонецПроцедуры
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36311136
iskander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to _VVP_,

Я написал запрос
Что я не так делаю ?

Заранее спасибо
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36311181
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мдааа а за запрос в цикле выгоняют с экзамена на спеца....


ps Вам сказали - КЭШИРУЙТЕ!. Сделайте изначально запрос по всему и загоните его в таблицу. Эти данные и вытаскивайте из этой таблицы.

psps а для обновления этой таблицы можно на форму повесить кнопку - обновить данные.
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36311250
iskander77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1с

Я не спец, а только учусь.

Спасибо за ответ!
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36311366
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сМдааа а за запрос в цикле выгоняют с экзамена на спеца....
ps Вам сказали - КЭШИРУЙТЕ!. Сделайте изначально запрос по всему и загоните его в таблицу. Эти данные и вытаскивайте из этой таблицы.
psps а для обновления этой таблицы можно на форму повесить кнопку - обновить данные.
Ну не надо передергивать про запрос в цикле.
Ничего страшного в том, чтобы выполнять запрос с разными параметрами в цикле нет, наоборот, если цикл обозримый, а запрос быстрый, то скорее можно рекомендовать подчитку данных таким образом.

А вот про кеширование вы погорячились. Какое может быть кеширование дополнительных данных к форме списка заказов?
Вы что предлагаете выгружать данные по всем заказам в таблицу значений? А что будет с формой списка, когда заказов станет отстатыщ?
Да каждое обновление такого количества данных с сервера на клиента будет укладывать и сервер и клиента!

Наоборот надо читать данные в обработке события ПриВыводеСтроки, поскольку таких подчиток будет сделано только для 30 заказов (сколько влезет на экран).
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36311421
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iskander77Я написал запрос
Что я не так делаю?Код вероятно некорректен:
* первое, вы забыли, что валюта заказа может отличаться от валюты взаиморасчетов и от валюты отгрузки (хотя конечно исполнение заказа считается по валюте взаиморасчетов);
* второе, вы забыли про механизм корректировки заказов и механизм закрытия заказов, которые работают через вид движения "Приход" регистра "ЗаказыПокупателей".

Вероятно стоит подумать об отказе от использования регистра "ЗаказыПокупателей" и считать объемы отгрузок по регистру "Продажи" или "ВзаиморасчетыСКонтрагентами".
Связано это с тем, что регистр "ЗаказыПокупателей" содержит представление всех строк заказа, тогда как вам нужна просто общая сумма отгруженного по заказу, которую можно получить в другом регистре.

Поигрался с возможным решением такой задачи. На самом деле задача имеет очень красивое решение.
Запрос надо делать сразу на тот список заказов (ОформленияСтрок[i].ДанныеСтроки.Ссылка), который передается в событие "ПриПолученииДанных". Этот список содержит ровно столько документов, сколько будет отображаться сейчас в списке.
Ускорение по сравнению с вычиткой данных по одному заказу весьма серьезно - подчитка данных вообще не заметна.

В общем, я был не прав, когда советовал читать данные по одному заказу за раз.
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36311482
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_VVP_Программист 1сМдааа а за запрос в цикле выгоняют с экзамена на спеца....
ps Вам сказали - КЭШИРУЙТЕ!. Сделайте изначально запрос по всему и загоните его в таблицу. Эти данные и вытаскивайте из этой таблицы.
psps а для обновления этой таблицы можно на форму повесить кнопку - обновить данные.
Ну не надо передергивать про запрос в цикле.
Ничего страшного в том, чтобы выполнять запрос с разными параметрами в цикле нет, наоборот, если цикл обозримый, а запрос быстрый, то скорее можно рекомендовать подчитку данных таким образом.

А вот про кеширование вы погорячились. Какое может быть кеширование дополнительных данных к форме списка заказов?
Вы что предлагаете выгружать данные по всем заказам в таблицу значений? А что будет с формой списка, когда заказов станет отстатыщ?
Да каждое обновление такого количества данных с сервера на клиента будет укладывать и сервер и клиента!

Наоборот надо читать данные в обработке события ПриВыводеСтроки, поскольку таких подчиток будет сделано только для 30 заказов (сколько влезет на экран).Мдаа вот мы и видем как раз результат такого ЛЕГКОГО запроса в цикле. Открываем и читаем методичку: запросы в цикле разрешены - только если они легкие и ТОЛЬКО в ИСКЛЮЧИТЕЛЬНЫХ случаях.


Автор - как пример, у меня есть тоже расчет по некому документу - он очень тяжелый. Я НЕ ВЫВОЖУ его в табличной части - а просто внизу показываю результат только для одного текущего документа. Опыт показывает что обычно данные не нужны пользователю по всем сразу выводимым документам.

Как исключение, если этот вариант не проходит - создайте запрос например за текущую неделю и ее кэшируйте. Врятли менеджеры смотрят заказы больше чем на неделю....
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36311512
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Добрый вечер!
Прошу подсказать по следующиму вопросу.
Настроен ли в 1С при стандартной конфигурации вывод отчетов по ключевым коэффициентам, которые используются при финансовом анализе? А также если ли отчеты в форме, необходимом для вертикального и горизонтального анализа баланса и финансовых результатов?
Если нет, насколько я понимаю это не сложно сделать, так?
Любые комментарии приветствуются! Спасибо.
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36311516
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Извините, случайно добавил сюда сообщение, хотел создать тему :)...
Вообщем тему создал, в этот топик не отвечать :).
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36311583
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автору - вдогонку... глупый вопрос. А в регистре ЗаказыПокупателей у реквизита "ЗаказПокупателя" стоит "индексировать"?
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36312037
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
было нечто в УПП (там в списке номенклатурного справочника делался вывод остатков и характеристик по выбранному списку складов и выбранному перечню видов характеристик) и действительно пришлось что-то типа кэша организовывать

вобщем при открытии формировалась таблица кэшированных данных на первые несколько сотен позиций (настраиваемо каждому пользователю... нормально работало с 100-500) и в дальнейшем при перемещении если небыло записей в этом кэше то делался запрос на такую же порцию данных (+- половина кэша от текущей позиции)... это и для списков документов работало

если справочник то можно использовать в иерархическом (если удобно) режиме и можно кэш делать по группе... а с документами жаль такое же не получится... разве что если там отбор есть
...
Рейтинг: 0 / 0
Вычисляемые поля
    #36312044
_VVP_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программист 1сАвтору - вдогонку... глупый вопрос. А в регистре ЗаказыПокупателей у реквизита "ЗаказПокупателя" стоит "индексировать"?Кстати да - пять баллов! Конфа видимо типовая, там индексация отключена.
Но на отключенной индексации, на большом объеме данных, отлично работает запрос по нескольким отображаемым заказам в обработчике события "ПриПолученииДанных".
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Вычисляемые поля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]