8.х Оптимизация исправлений (форма-запрос-форма)

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Johndoe144, 15 янв 2018.

  1. TopicStarter Overlay
    Johndoe144
    Offline

    Johndoe144

    Регистрация:
    4 фев 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Добрый день,

    Платформа 8.3.10, самописная конфигурация.
    Есть общая форма, на которой расположен динамический список. Строки динамического списка - это строки табличных частей разных документов (одного вида документа).

    Есть задача внести изменения в выделенные в динамическом списке строки. Изменяются значения в одном или нескольких полях строки. Новые значения выбираются еще на самой общей форме.

    Сделано так:
    1. Цикл по выделенным строкам.
    2. В Цикле вся выделенная строка передается в процедуру на сервере
    3. В процедуре: через запрос находим нужную строку, изменяем ее и записываем.

    Все работает, но медленно, т.к. для каждой переданной выделенной строки заново срабатывает запрос.

    Вопрос: подскажите, пожалуйста, есть ли вариант, как ускорить обработку внесения изменений в выделенные строки? Может быть, как-то сначала "пробежаться" по ним и выгрузить куда-нибудь. Потом еще что-то... Не могу сообразить :)

    Заранее благодарю за конструктивные ответы.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.213
    Симпатии:
    961
    Баллы:
    204
    Выделенные строки - это массив.
    Используйте его в качестве параметра запроса и обрабатывайте сразу все выделенные строки таким образом, если конечно это позволит остальная структура БД.
  3. TopicStarter Overlay
    Johndoe144
    Offline

    Johndoe144

    Регистрация:
    4 фев 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Спасибо за ответ. Т.е. я сначала циклом все выделенные строки загоняю в массив, затем передаю его в серверную процедуру.

    Непонятным осталось, каким образом использовать массив как параметр в запросе на выборку строк, а затем их последовательное исправление в результате запроса или в процедуре также необходимо создавать некий цикл с обходом массива? Не могли бы Вы более конкретно (или на примере) продемонстрировать этот момент?
  4. TopicStarter Overlay
    Johndoe144
    Offline

    Johndoe144

    Регистрация:
    4 фев 2016
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Вопрос решен.
    Благодарю еще раз.

Поделиться этой страницей