Добрый день всем!
8.2 ОФ
Есть табличная часть. В ней реквизит "Способ".
Задача следующая:
1) При открытии если заполнены значения Номенклатура и Серия, то обращаюсь к регистру где проставляются "Способ". Дело в том, что "Способ" может меняться постоянно в течении дня. Соответственно каждый раз надо считывать и подставлять текущие значение из регистра.
Пытался делать "при выводе строки" и "при получении данных"
Но! Когда данных в документе много, то начинает дико тормозить из-за постоянного прохождения цикла по тч и формирования запроса с последующим проставлением в строках.
Собственно, как можно оптимизировать ?
8.2 ОФ
Есть табличная часть. В ней реквизит "Способ".
Задача следующая:
1) При открытии если заполнены значения Номенклатура и Серия, то обращаюсь к регистру где проставляются "Способ". Дело в том, что "Способ" может меняться постоянно в течении дня. Соответственно каждый раз надо считывать и подставлять текущие значение из регистра.
Пытался делать "при выводе строки" и "при получении данных"
Но! Когда данных в документе много, то начинает дико тормозить из-за постоянного прохождения цикла по тч и формирования запроса с последующим проставлением в строках.
Собственно, как можно оптимизировать ?
По теме из базы знаний
- Способы оптимизации переносов данных
- Оптимизация пакетной печати из 1С в MS Word
- Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3
- Algo1C: Решение алгоритмических задач на базе 1С:Предприятие [Часть #10]
- Синтаксический анализ на коленке (часть 2): возможности оптимизации конечных автоматов на языке 1С
Найденные решения
(3) Прекрасно. Обновили серию в строке - сразу же обновили способ в строке (есть такой обработчик события "ПриИзменении", ага). Провели подбор для ТЧ - обновили один раз ТЧ после подбора (как и при открытии).
Изменения необходимо производить тогда, когда изменились условия для их определения, а не когда пользователь пошевелил мышкой.
Изменения необходимо производить тогда, когда изменились условия для их определения, а не когда пользователь пошевелил мышкой.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Я бы все таки остановился на "при получении данных" – для ТЧ это не накладно.
(1)
Сам по себе цикл тормоза вызывать не может – скорее всего что-то не так делаете. Покажите код, который у вас есть.
(1)
начинает дико тормозить из-за постоянного прохождения цикла по тч
Сам по себе цикл тормоза вызывать не может – скорее всего что-то не так делаете. Покажите код, который у вас есть.
(11) Да там дело в запросе думаю и сделано было при выводе строки. А это я так понял происходит часто и даже попал на ошибку с SQL.
Возможно при полученни данных меньше раз отрабатывает.
А механизм простой:
Если значзаполнено номенклатура и серия, то
запрос, туда передаю номенклатуру серию и получаю "Способ".
Далее проверка если Стр.Способ <> Выборка.Способ то подставляем и этотобъект.Записать.
Собственно всё.
Возможно при полученни данных меньше раз отрабатывает.
А механизм простой:
Если значзаполнено номенклатура и серия, то
запрос, туда передаю номенклатуру серию и получаю "Способ".
Далее проверка если Стр.Способ <> Выборка.Способ то подставляем и этотобъект.Записать.
Собственно всё.
(3) Прекрасно. Обновили серию в строке - сразу же обновили способ в строке (есть такой обработчик события "ПриИзменении", ага). Провели подбор для ТЧ - обновили один раз ТЧ после подбора (как и при открытии).
Изменения необходимо производить тогда, когда изменились условия для их определения, а не когда пользователь пошевелил мышкой.
Изменения необходимо производить тогда, когда изменились условия для их определения, а не когда пользователь пошевелил мышкой.
(21) После того как вы сказали о том, что автоматически записываете документ при выводе строки - уже никакого.
В нормальной ситуации обновление данных при открытии документа имеет смысл например при заполнении ТЧ на основании другого документа, или при его загрузке из внешнего источника и т.д.
В нормальной ситуации обновление данных при открытии документа имеет смысл например при заполнении ТЧ на основании другого документа, или при его загрузке из внешнего источника и т.д.
Мне кажется, тут изначально задача не оптимально решена.
Что за способ то? Какой его смысл?) На что он влияет? А если постоянно меняется, то как быть с прошлыми документами? Может этот способ надо было сохранять прям в документе, а не каждый раз при открытии, когда документ уже проведен?
По теме уже сказали, что читать заполнять все способы в момент открытия формы, ну и при только изменении строки Номенклатуры, серии). Уж точно не при выводе.
Что за способ то? Какой его смысл?) На что он влияет? А если постоянно меняется, то как быть с прошлыми документами? Может этот способ надо было сохранять прям в документе, а не каждый раз при открытии, когда документ уже проведен?
По теме уже сказали, что читать заполнять все способы в момент открытия формы, ну и при только изменении строки Номенклатуры, серии). Уж точно не при выводе.
(27) Исходя из моих советов выходит то, что не стоит заниматься херней, например актуализацией статусов при открытии документа. А стоит подобрать другой инструмент для поддержания актуальности информации, чтобы "не болталось гуано в проруби".
Я вам указываю на дыру - что если не открывать документ, то актуальность не изменится.
Нормальный спец из этого сделает вывод, что если у вас там где-то что-то в регистре изменится, то вам придется ВРУЧНУЮ открывать ВСЕ документы, для их актуализации (даже трехлетней давности). Вместо того, чтобы реализовать другой инструмент актуализации, не требующий вот этой вот херни с открыванием.
Это я ще не говорил про закрытые периоды и влияние данных документа на его движения...
Аргументы против есть?
Я вам указываю на дыру - что если не открывать документ, то актуальность не изменится.
Нормальный спец из этого сделает вывод, что если у вас там где-то что-то в регистре изменится, то вам придется ВРУЧНУЮ открывать ВСЕ документы, для их актуализации (даже трехлетней давности). Вместо того, чтобы реализовать другой инструмент актуализации, не требующий вот этой вот херни с открыванием.
Это я ще не говорил про закрытые периоды и влияние данных документа на его движения...
Аргументы против есть?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот