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

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) Исходя из моих советов выходит то, что не стоит заниматься херней, например актуализацией статусов при открытии документа. А стоит подобрать другой инструмент для поддержания актуальности информации, чтобы "не болталось гуано в проруби".
Я вам указываю на дыру - что если не открывать документ, то актуальность не изменится.
Нормальный спец из этого сделает вывод, что если у вас там где-то что-то в регистре изменится, то вам придется ВРУЧНУЮ открывать ВСЕ документы, для их актуализации (даже трехлетней давности). Вместо того, чтобы реализовать другой инструмент актуализации, не требующий вот этой вот херни с открыванием.
Это я ще не говорил про закрытые периоды и влияние данных документа на его движения...

Аргументы против есть?
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)