8.х Сравнение деревьев

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

  1. TopicStarter Overlay
    Oleg_NSK
    Offline

    Oleg_NSK Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    164
    Симпатии:
    0
    Баллы:
    26
    Есть обработка которая выполняет запрос к БД и выводит результат на форму в дерево значений (дерево помещается в переменную ИсходноеДерево). В этой форме пользователь что-то изменяет и жмет на кнопку обработать. Обработку можно разрешить только в том случае если данные не изменились. Для этого выполняется первоначальный запрос и результат помещается в ПроверочноеДерево. Вопрос. Существуют ли способы быстрого сравнения переменных ИсходноеДерево и ПроверочноеДерево кроме перебора строк?
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Насколько я знаю нет. Только рекурсивный перебор строк.
  3. TopicStarter Overlay
    Oleg_NSK
    Offline

    Oleg_NSK Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    164
    Симпатии:
    0
    Баллы:
    26
    :angry:
  4. cdb
    Offline

    cdb

    Регистрация:
    10 дек 2010
    Сообщения:
    40
    Симпатии:
    1
    Баллы:
    1
    Как вариант.
    1. Получаем ИсходноеДерево
    2. Делаем его копию - КопияДерева
    3. Даем пользователю его корректировать
    При корректировки строки дерева - взводите флаг.
    Причем флаг взводиться после сравнения скорректированной строки со строкой из исходного дерева.
    Так же можно помещать скоррекированные строки в таблицу значений. В таком случа если пользователь вернул корректировку, то строка из таблицы удаляется.
    Признаком корректировки будет наличие строк в таблице.
  5. TopicStarter Overlay
    Oleg_NSK
    Offline

    Oleg_NSK Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    164
    Симпатии:
    0
    Баллы:
    26
    Необходимо знать изменились ли данные в базе за время работы пользователя с обработкой, а не данные которые поменял пользователь. Но все равно спасибо :)

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