Задача:

необходимо отображать данные на управляемой форме документа в двух видах – дерева значений и таблицы значений, причем на разных страницах. Данные для дерева получаются с помощью запроса к таблице значений из объекта. Пользователь работает с деревом значений, изменяя значения в структуре дерева по своему усмотрению: добавляет комментарии, меняет статусы по строкам и т.д., при этом синхронно должны производиться аналогичные изменения в таблице формы на соседней странице, т.к. именно она является основным источником данных для формирования дерева.

Данную задачу можно решить с использованием синхронизации данных между деревом значений и таблицы значений по уникальному идентификатору (далее – УИ) каждой конкретной строки. Чтобы это корректно работало, требуется единый источник для УИ, т.е. для дерева и таблицы будут использованы одинаковые УИ. Остаётся открытым вопрос – нужно ли хранить их в базе данных? Здесь уже на ваше личное усмотрение: если данные УИ могут быть использованы при дальнейшей работе, то имеет смысл сохранить их для будущих задач, в противном случае – можно генерировать новые УИ каждый раз при работе пользователя с формой.

Для реализации подобной задачи необходимо сделать следующее:

  • Добавляем реквизит УникальныйИдентификатор с типом “Уникальный идентификатор” в структуру метаданных таблицы;
  • Программно добавляем колонку для УИ в дерево значений (данную колонку можно сделать сразу невидимой);
  • Выполняем запрос и загружаем строки в дерево, присваивая каждой строке УИ;
  • Вешаем на нужны поля дерева обработчики, отслеживающие поведение обеих табличных полей формы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *