|
|
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Доброе время суток! В УПП 8.1 есть документ ЗаказПокупателя. В форме списка локументов добавил три колонки, где отображаю отгрузку по заказу, сумму налоговых, оплату. На событие СписокПриПолученииДанных повесил вычисление этих полей (запросами по регистрам). При выводе списка и перелистывании все это счастье тормозит. Как ускорить процесс ? Заранее благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2009, 17:38 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
iskander77, Обычно используют событие "ПриВыводестроки". Может быстрее будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2009, 17:45 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Новичок111111iskander77, Обычно используют событие "ПриВыводестроки". Может быстрее будет Пробовал. Эффект тот же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2009, 17:49 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
iskander77 В УПП 8.1 есть документ ЗаказПокупателя. В форме списка локументов добавил три колонки, где отображаю отгрузку по заказу, сумму налоговых, оплату. На событие СписокПриПолученииДанных повесил вычисление этих полей (запросами по регистрам). При выводе списка и перелистывании все это счастье тормозит. Как ускорить процесс ? Вариант 1 (по уму) : Получать данные и выводить их в событие ПриВыводеСтроки. " iskander77: Пробовал. Эффект тот же. " - именно в это событие надо включать подчитку нужных данных. Очевидно, что ваш запрос данных надо оптимизировать. Опубликуйте запрос, посмотрим. Вариант 2 (для сложных списков) : Вместо использования ДокументСписок в данных табличного поля формы списка документов использовать таблицу значений, которую заполнять запросом нужной сложности. Здесь также необходимо обрабатывать различные события и текущие строки. Вариант 3 (по идеологии 1С) : Сделать регистр сведений или дополнительные реквизиты документа ЗаказПокупателя, в которые сохранять актуальное состояние интересующих интегральных показателей ("где отображаю отгрузку по заказу, сумму налоговых, оплату") при измениях. Расчет и сохранение таких показателей можно сделать через подписку на события. Читать из этого регистра или дополнительных реквизитов документа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2009, 12:38 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
_VVP_iskander77 В УПП 8.1 есть документ ЗаказПокупателя. В форме списка локументов добавил три колонки, где отображаю отгрузку по заказу, сумму налоговых, оплату. На событие СписокПриПолученииДанных повесил вычисление этих полей (запросами по регистрам). При выводе списка и перелистывании все это счастье тормозит. Как ускорить процесс ? Вариант 1 (по уму) : Получать данные и выводить их в событие ПриВыводеСтроки. " iskander77: Пробовал. Эффект тот же. " - именно в это событие надо включать подчитку нужных данных. Очевидно, что ваш запрос данных надо оптимизировать. Опубликуйте запрос, посмотрим. Вариант 1. Делал так Функция ПолучитьСуммуРН(заказСсылка) суммаРН = 0; Запрос = Новый Запрос; Запрос.УстановитьПараметр("ЗаказПокупателя",заказСсылка); Запрос.Текст = "ВЫБРАТЬ | СУММА(ЗаказыПокупателейОбороты.СуммаВзаиморасчетовРасход) КАК СуммаРН |ИЗ | РегистрНакопления.ЗаказыПокупателей.Обороты(, , , ЗаказПокупателя.Ссылка = &ЗаказПокупателя) КАК ЗаказыПокупателейОбороты"; результат = Запрос.Выполнить().Выбрать(); Пока результат.Следующий() Цикл суммаРН = результат.СуммаРН; КонецЦикла; Возврат суммаРН; КонецФункции Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) Если ЭлементыФормы.Список.Колонки.РН.Видимость Тогда суммаДокументов = ПолучитьСуммуРН(ДанныеСтроки.ссылка); ОформлениеСтроки.Ячейки.РН.УстановитьТекст(суммаДокументов); КонецЕсли; КонецПроцедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2009, 15:47 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
to _VVP_, Я написал запрос Что я не так делаю ? Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 11:47 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Мдааа а за запрос в цикле выгоняют с экзамена на спеца.... ps Вам сказали - КЭШИРУЙТЕ!. Сделайте изначально запрос по всему и загоните его в таблицу. Эти данные и вытаскивайте из этой таблицы. psps а для обновления этой таблицы можно на форму повесить кнопку - обновить данные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 12:46 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Программист 1с Я не спец, а только учусь. Спасибо за ответ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 14:19 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Программист 1сМдааа а за запрос в цикле выгоняют с экзамена на спеца.... ps Вам сказали - КЭШИРУЙТЕ!. Сделайте изначально запрос по всему и загоните его в таблицу. Эти данные и вытаскивайте из этой таблицы. psps а для обновления этой таблицы можно на форму повесить кнопку - обновить данные. Ну не надо передергивать про запрос в цикле. Ничего страшного в том, чтобы выполнять запрос с разными параметрами в цикле нет, наоборот, если цикл обозримый, а запрос быстрый, то скорее можно рекомендовать подчитку данных таким образом. А вот про кеширование вы погорячились. Какое может быть кеширование дополнительных данных к форме списка заказов? Вы что предлагаете выгружать данные по всем заказам в таблицу значений? А что будет с формой списка, когда заказов станет отстатыщ? Да каждое обновление такого количества данных с сервера на клиента будет укладывать и сервер и клиента! Наоборот надо читать данные в обработке события ПриВыводеСтроки, поскольку таких подчиток будет сделано только для 30 заказов (сколько влезет на экран). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 16:56 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
iskander77Я написал запрос Что я не так делаю?Код вероятно некорректен: * первое, вы забыли, что валюта заказа может отличаться от валюты взаиморасчетов и от валюты отгрузки (хотя конечно исполнение заказа считается по валюте взаиморасчетов); * второе, вы забыли про механизм корректировки заказов и механизм закрытия заказов, которые работают через вид движения "Приход" регистра "ЗаказыПокупателей". Вероятно стоит подумать об отказе от использования регистра "ЗаказыПокупателей" и считать объемы отгрузок по регистру "Продажи" или "ВзаиморасчетыСКонтрагентами". Связано это с тем, что регистр "ЗаказыПокупателей" содержит представление всех строк заказа, тогда как вам нужна просто общая сумма отгруженного по заказу, которую можно получить в другом регистре. Поигрался с возможным решением такой задачи. На самом деле задача имеет очень красивое решение. Запрос надо делать сразу на тот список заказов (ОформленияСтрок[i].ДанныеСтроки.Ссылка), который передается в событие "ПриПолученииДанных". Этот список содержит ровно столько документов, сколько будет отображаться сейчас в списке. Ускорение по сравнению с вычиткой данных по одному заказу весьма серьезно - подчитка данных вообще не заметна. В общем, я был не прав, когда советовал читать данные по одному заказу за раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 18:43 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
_VVP_Программист 1сМдааа а за запрос в цикле выгоняют с экзамена на спеца.... ps Вам сказали - КЭШИРУЙТЕ!. Сделайте изначально запрос по всему и загоните его в таблицу. Эти данные и вытаскивайте из этой таблицы. psps а для обновления этой таблицы можно на форму повесить кнопку - обновить данные. Ну не надо передергивать про запрос в цикле. Ничего страшного в том, чтобы выполнять запрос с разными параметрами в цикле нет, наоборот, если цикл обозримый, а запрос быстрый, то скорее можно рекомендовать подчитку данных таким образом. А вот про кеширование вы погорячились. Какое может быть кеширование дополнительных данных к форме списка заказов? Вы что предлагаете выгружать данные по всем заказам в таблицу значений? А что будет с формой списка, когда заказов станет отстатыщ? Да каждое обновление такого количества данных с сервера на клиента будет укладывать и сервер и клиента! Наоборот надо читать данные в обработке события ПриВыводеСтроки, поскольку таких подчиток будет сделано только для 30 заказов (сколько влезет на экран).Мдаа вот мы и видем как раз результат такого ЛЕГКОГО запроса в цикле. Открываем и читаем методичку: запросы в цикле разрешены - только если они легкие и ТОЛЬКО в ИСКЛЮЧИТЕЛЬНЫХ случаях. Автор - как пример, у меня есть тоже расчет по некому документу - он очень тяжелый. Я НЕ ВЫВОЖУ его в табличной части - а просто внизу показываю результат только для одного текущего документа. Опыт показывает что обычно данные не нужны пользователю по всем сразу выводимым документам. Как исключение, если этот вариант не проходит - создайте запрос например за текущую неделю и ее кэшируйте. Врятли менеджеры смотрят заказы больше чем на неделю.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 21:11 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Добрый вечер! Прошу подсказать по следующиму вопросу. Настроен ли в 1С при стандартной конфигурации вывод отчетов по ключевым коэффициентам, которые используются при финансовом анализе? А также если ли отчеты в форме, необходимом для вертикального и горизонтального анализа баланса и финансовых результатов? Если нет, насколько я понимаю это не сложно сделать, так? Любые комментарии приветствуются! Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 22:20 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Извините, случайно добавил сюда сообщение, хотел создать тему :)... Вообщем тему создал, в этот топик не отвечать :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2009, 22:22 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Автору - вдогонку... глупый вопрос. А в регистре ЗаказыПокупателей у реквизита "ЗаказПокупателя" стоит "индексировать"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 01:12 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
было нечто в УПП (там в списке номенклатурного справочника делался вывод остатков и характеристик по выбранному списку складов и выбранному перечню видов характеристик) и действительно пришлось что-то типа кэша организовывать вобщем при открытии формировалась таблица кэшированных данных на первые несколько сотен позиций (настраиваемо каждому пользователю... нормально работало с 100-500) и в дальнейшем при перемещении если небыло записей в этом кэше то делался запрос на такую же порцию данных (+- половина кэша от текущей позиции)... это и для списков документов работало если справочник то можно использовать в иерархическом (если удобно) режиме и можно кэш делать по группе... а с документами жаль такое же не получится... разве что если там отбор есть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 11:31 |
|
||
|
Вычисляемые поля
|
|||
|---|---|---|---|
|
#18+
Программист 1сАвтору - вдогонку... глупый вопрос. А в регистре ЗаказыПокупателей у реквизита "ЗаказПокупателя" стоит "индексировать"?Кстати да - пять баллов! Конфа видимо типовая, там индексация отключена. Но на отключенной индексации, на большом объеме данных, отлично работает запрос по нескольким отображаемым заказам в обработчике события "ПриПолученииДанных". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2009, 11:35 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36309962&tid=1523067]: |
0ms |
get settings: |
5ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
178ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 473ms |

| 0 / 0 |
