Оптимизация вывода строки

1. Intercititude 28.09.20 15:22 Сейчас в теме
Добрый день всем!
8.2 ОФ

Есть табличная часть. В ней реквизит "Способ".

Задача следующая:
1) При открытии если заполнены значения Номенклатура и Серия, то обращаюсь к регистру где проставляются "Способ". Дело в том, что "Способ" может меняться постоянно в течении дня. Соответственно каждый раз надо считывать и подставлять текущие значение из регистра.

Пытался делать "при выводе строки" и "при получении данных"
Но! Когда данных в документе много, то начинает дико тормозить из-за постоянного прохождения цикла по тч и формирования запроса с последующим проставлением в строках.

Собственно, как можно оптимизировать ?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
4. FatPanzer 28.09.20 15:37 Сейчас в теме +0.7 $m
(3) Прекрасно. Обновили серию в строке - сразу же обновили способ в строке (есть такой обработчик события "ПриИзменении", ага). Провели подбор для ТЧ - обновили один раз ТЧ после подбора (как и при открытии).
Изменения необходимо производить тогда, когда изменились условия для их определения, а не когда пользователь пошевелил мышкой.
Fox-trot; TerveRus; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
11. SlavaKron 28.09.20 17:15 Сейчас в теме
Я бы все таки остановился на "при получении данных" – для ТЧ это не накладно.
(1)
начинает дико тормозить из-за постоянного прохождения цикла по тч

Сам по себе цикл тормоза вызывать не может – скорее всего что-то не так делаете. Покажите код, который у вас есть.
12. Intercititude 28.09.20 18:01 Сейчас в теме
(11) Да там дело в запросе думаю и сделано было при выводе строки. А это я так понял происходит часто и даже попал на ошибку с SQL.
Возможно при полученни данных меньше раз отрабатывает.

А механизм простой:

Если значзаполнено номенклатура и серия, то
запрос, туда передаю номенклатуру серию и получаю "Способ".
Далее проверка если Стр.Способ <> Выборка.Способ то подставляем и этотобъект.Записать.
Собственно всё.
13. FatPanzer 28.09.20 18:04 Сейчас в теме
14. Intercititude 28.09.20 18:25 Сейчас в теме
(13) Да, спалился ) В нем дело
15. FatPanzer 28.09.20 18:32 Сейчас в теме
(14) Да дело уже не в "тормозит", дело в "зачем?"...
2. FatPanzer 28.09.20 15:31 Сейчас в теме
Обновить один раз при открытии и успокоиться.
3. Intercititude 28.09.20 15:34 Сейчас в теме
(2) Дело в том, что пользователю необходимо видеть "Способ" например после того как он добавил позиции из типового "Подбора". Или изменил серию номенклатуры и должен подставиться соответствующий "Способ".
4. FatPanzer 28.09.20 15:37 Сейчас в теме +0.7 $m
(3) Прекрасно. Обновили серию в строке - сразу же обновили способ в строке (есть такой обработчик события "ПриИзменении", ага). Провели подбор для ТЧ - обновили один раз ТЧ после подбора (как и при открытии).
Изменения необходимо производить тогда, когда изменились условия для их определения, а не когда пользователь пошевелил мышкой.
Fox-trot; TerveRus; +2 Ответить
5. Intercititude 28.09.20 15:50 Сейчас в теме
(4)А как же при открытии ?
И как обработать после подбора ?
6. DmitriyPopow 33 28.09.20 15:56 Сейчас в теме
(5)
обработать после подбора ?

есть событие "Обработка выбора" или "ОбработкаОповещения"
там добавляется строки из подбора. вот там и заполните свою колонку
9. FatPanzer 28.09.20 17:06 Сейчас в теме
(5) При открытии у вас есть обработчик ПриСозданииНаСервере().
17. Intercititude 29.09.20 08:57 Сейчас в теме
(9) А если предыдущий документ откроют и там необходимо увидеть способ ?
18. FatPanzer 29.09.20 08:59 Сейчас в теме
(17) То есть вы на голубом глазу готовы перезаписывать старые документы при их открытии? Только для того чтобы "узнать" предполагаемый способ?
19. Intercititude 29.09.20 09:02 Сейчас в теме
(18) Считаете это лишним ?
20. FatPanzer 29.09.20 10:24 Сейчас в теме
(19) Считаю это профессиональным преступлением и абсолютной профессиональной некомпетентностью. Автор не понимает смысла понятия "Документ 1С"...
21. Intercititude 29.09.20 12:23 Сейчас в теме
(20) А какой смысл тогда добавить "ПриСозданииНаСервере" показ "Спосообов", если тч будет пустая ?
22. FatPanzer 29.09.20 12:27 Сейчас в теме
(21) После того как вы сказали о том, что автоматически записываете документ при выводе строки - уже никакого.
В нормальной ситуации обновление данных при открытии документа имеет смысл например при заполнении ТЧ на основании другого документа, или при его загрузке из внешнего источника и т.д.
23. Intercititude 29.09.20 12:27 Сейчас в теме
(22) Это ошибка,а не панацея. Сделано было так, чтобы у прошлых документов проставился статус и не более. Просто забыл убрать.
24. Intercititude 29.09.20 12:33 Сейчас в теме
(22) Возможно в "ПриОткрытии" добавить следующий код:

Если это Не Новый Тогда
ПоказатьСпособы();
Конецесли

?
26. FatPanzer 29.09.20 13:10 Сейчас в теме
(24) Возможно все. И даже это.
7. SGordon1 28.09.20 16:38 Сейчас в теме
т.е. Способ хранится во внешнем регистре и меняется независимо от документа? И хочется чтобы все это было видно оперативно в т.ч. документа?
10. FatPanzer 28.09.20 17:12 Сейчас в теме
(7) Дичь, как она есть, чо.
8. TerveRus 28.09.20 16:50 Сейчас в теме
Мне кажется, тут изначально задача не оптимально решена.
Что за способ то? Какой его смысл?) На что он влияет? А если постоянно меняется, то как быть с прошлыми документами? Может этот способ надо было сохранять прям в документе, а не каждый раз при открытии, когда документ уже проведен?

По теме уже сказали, что читать заполнять все способы в момент открытия формы, ну и при только изменении строки Номенклатуры, серии). Уж точно не при выводе.
Fox-trot; +1 Ответить
16. FatPanzer 28.09.20 19:37 Сейчас в теме
(8) Более того, если способ не совпадает с сохраненным ранее, то документ ещё и записывается. Сразу.
Прикинь? Клёвая закидушка при открытии, да?
25. FatPanzer 29.09.20 13:02 Сейчас в теме
(23) Круто. То есть если документ не открывать, то он так и будет болтаться без статуса как гуано в проруби...

Спорит ещё...
27. Intercititude 29.09.20 14:18 Сейчас в теме
(25) Так и выходит исходя из ваших советов
28. FatPanzer 29.09.20 14:34 Сейчас в теме
(27) Исходя из моих советов выходит то, что не стоит заниматься херней, например актуализацией статусов при открытии документа. А стоит подобрать другой инструмент для поддержания актуальности информации, чтобы "не болталось гуано в проруби".
Я вам указываю на дыру - что если не открывать документ, то актуальность не изменится.
Нормальный спец из этого сделает вывод, что если у вас там где-то что-то в регистре изменится, то вам придется ВРУЧНУЮ открывать ВСЕ документы, для их актуализации (даже трехлетней давности). Вместо того, чтобы реализовать другой инструмент актуализации, не требующий вот этой вот херни с открыванием.
Это я ще не говорил про закрытые периоды и влияние данных документа на его движения...

Аргументы против есть?
Оставьте свое сообщение

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