![]() |
![]() |
![]() |
|
В ТЧ необходимо добавить колонку со статусом оплаты заказа | ☑ | ||
---|---|---|---|---|
0
live in sky dreams
03.06.16
✎
15:34
|
Приветствую, коллеги.
Возникла необходимость решить задачу. Дано: Форма. Не управляемая. На форме ТЧ типа "ДокументСписок". Заказы. В эту ТЧ необходимо добавить колонку со статусом оплаты заказа. Статус возможно узнать, построив запрос по регистрам. То есть статус может меняться и в этой ТЧ должен обновляться по факту изменения. Я сперва рыпнулся сделать запрос и узнавать о статусе оплаты "приПолученииДанных", вовремя опомнился. Подумал держать в "кеше" таблицу со статусами оплаты заказов, построенную согласно примененных фильтров. И "приПолученииДанных" дергать данные уже оттуда, все же нагрузка меньше. Тоже не вариант. Не понятно по какому событию ее обновлять, ведь кроме событий установки фильтра есть изменения данных по оплатам. Был бы дин. список = можно было бы прям в запрос всобачивать статусы оплаты, как сделано в УНФ, но увы форма не управляемая. Переделывать ее на управляемую - не вариант. Очень очень дохрена переписывать. И тут я подумал. Дин. список тащит данные из БД так же по событию "приПолученииДанных"? Или как? Если да, то используя это событие в обычной форме я не особо проигрываю в производительности по сравнению с использованием дин. списка. Или там другой способ? Как мне оптимально решить задачу? У кого какое мнение? |
|||
1
Garykom
гуру
03.06.16
✎
15:39
|
ПриВыводеСтроки
|
|||
2
Йохохо
03.06.16
✎
15:41
|
по событию ПодключитьОбработчикОжидания
|
|||
3
Garykom
гуру
03.06.16
✎
15:42
|
(2) Ну да можно и так, выглядеть это будет очень интересно когда статусы сначала при скроллинге пустые, а потом постепенно заполнятся ))
|
|||
4
Йохохо
03.06.16
✎
15:45
|
(3) я понял что ему надо держать форму, как инф табло и поддерживать актуальной
|
|||
5
youalex
03.06.16
✎
15:50
|
(0)
1) Кэшировать значения статусов в ТЗ или Соответствии 2) Вместо списка документов - сделать ТЧ, заполнять по параметрам (периоду и пр) |
|||
6
aleks_default
03.06.16
✎
16:03
|
Делай в ПриПолученииДанных. По количеству запросов к базе это будет оптимальное.
|
|||
7
live in sky dreams
03.06.16
✎
16:13
|
(1) - то же самое по нагрузке, что при получении данных, вопрос актуализации уже отображенных данных не снимает.
(2),(3) первоначально заполнить при открытии, затем подключить обработку ожидания, тогда не будет такого волшебного эффекта :) Вариант.... (4) так и есть. (5) - пункт 2 не решает вопроса поддержания актуализации данных и при этом увеличивает объем кода. (6) и при одновременной работе нескольких юзеров при скролинге таблицы адовые тупняки... я предполагаю. Пока клиент попросит сервер отдать данные, пока сервак раздуплится, выполнит запрос и отдаст, потом клиент обработает результат и отобразит... Нужно отображать сразу из готовых данных которые уже имеются на клиенте |
|||
8
Timon1405
03.06.16
✎
16:20
|
(7) какой еще сервер? в обычной форме весь код выполняется на клиенте
|
|||
9
aleks_default
03.06.16
✎
16:21
|
Активные тупняки у тебя будут все равно, хоть через обработку ожидания делать, хоть при скролинге.
Только при скроллинге у тебя будут всегда актуальные данные, а при ожиданиии - нет |
|||
10
Йохохо
03.06.16
✎
16:30
|
(7) какая разница скрол на пол страницы или таймаут обновления, обновить статусы надо у всего, что видно, данные не актуальны. Просто логика. А чтобы много не скролили лучше продумать сортировку, отбор
|
|||
11
live in sky dreams
03.06.16
✎
16:31
|
(8)согласен, код выполняется на клиенте, но данные не в клиенте. Данные в БД, что на сервере покоится.. По сети им транзитом бежать. Или я чот не понимаю...
(9) Обработка ожидания не мешает работе пользователя и не создает эффекта "зависает все". Выполнять ее фоном раз в 15 минут и при изменении настроек фильтра, и соответствия готовы. А уже ПриПолученииДанных лезть в соответствия и подставлять слова в табличку на форме... нет? |
|||
12
live in sky dreams
03.06.16
✎
16:31
|
(10) это не лишено смысла...
|
|||
13
Dmitrii
гуру
03.06.16
✎
16:35
|
(0) Используй ПриПолученииДанных, как описано на ИТС и не колупай мозг.
http://its.1c.ru/db/metod8dev/content/2805/hdoc Для ускорения рекомендуется дополнить форму обязательными отборами, чтобы не выводить данные, которые пользователю заведомо не нужны, и минимизировать список. Например, чтобы всегда был установлен отбор по периоду и этот период был не более месяца (недели/квартала/года - смотря по вашему бизнесу). Или отбор по контрагенту(ам), пользователю(ям) (реквизит Ответсвенный в заказе) и т.п. Если отборы не установлены, то статусы оплаты не показывать. Кроме того колонку со статусом оплаты сделать опциональной. То есть по умолчанию её быть не должно (и код по её заполнению не выполняется), но при желании её можно вывести. Это необходимо, чтобы этой фигнёй пользовались только те, кому это действительно надо. |
|||
14
bootini
03.06.16
✎
16:36
|
(0) А регистров много откуда статусы получать?
Если один то его на форму можно в РегистрСведенийСписок с отбором. |
|||
15
live in sky dreams
03.06.16
✎
17:11
|
(13) большое спасибо за совет.
(14) УТ 10. Нужны данные об оплате заказа и об отгрузке заказа. Хватает вобщем.. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |