8.х Примеры конфигурирования 1С 8.0/8.1

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

Статус темы:
Закрыта.
  1. TopicStarter Overlay
    BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
  2. TopicStarter Overlay
    BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Использование дерева значений

    Требуемые знания: основы конфигурирования

    Для примера потребуется создать пустую внешнюю обработку с формой и добавленым реквизитом Дерево типа ДеревоЗначений

    Предположим, что требуется вывести список сотрудников и их подчиненных в виде дерева, где каждая ветка дерева является фамилией руководителя. Для этого разместим на форме элемент управления Табличное поле и присвоим имя элемента Дерево. Данные табличного поля укажем Дерево (т.е. реквизит формы) Для использования дерева значений требуется указать колонку, которая является веткой - создадим новую колонку и укажем следующие свойства:
    1. Имя колонки - Фамилия
    2. Данные - Фамилия
    3. Элемент управления - пустое значение (требуется выбрать пустую строку в списке значений)
    4. Данные флажка - Флажок (это имя колонки, в которой храниться значения флажка)
    5. Отображать иерархию - поставить галочку
    6. Режим редактирования - Непосредственно (для возмлжности изменять статус флажка)

    Теперь переименуем кнопку Выполнить в Создать дерево и напишем обработку её нажатия (комментарии поясняют смысл действий):

    Код:
    Процедура ОсновныеДействияФормыСоздатьДерево(Кнопка)
    // Объявим переменные, которые используются локально
    Перем НоваяВетка, СтрокаВетки;     
    
    // Первоначальная инициализация - хороший тон
    Дерево.Колонки.Очистить();
    
    // Создадим колонки дерева значений
    Дерево.Колонки.Добавить("Фамилия");
    Дерево.Колонки.Добавить("Имя");
    Дерево.Колонки.Добавить("Отчество");
    Дерево.Колонки.Добавить("Флажок", Новый ОписаниеТипов("Булево"));
    
    // Создадим новую ветку дерева значений и укажем значения колонок
    НоваяВетка = Дерево.Строки.Добавить(); 
    НоваяВетка[0] = "Иванов"; НоваяВетка[1] = "Петр"; НоваяВетка[2] = "Петрович";
    
    // Добавим подчиненого сотрудника, для этого создадим новую строку в ветке...
    СтрокаВетки = НоваяВетка.Строки.Добавить();
    СтрокаВетки[0] = "Иванов"; СтрокаВетки[1] = "Михаил"; СтрокаВетки[2] = "Васильевич";
    
    // Добавим еще одного подчиненого сотрудника...
    СтрокаВетки = НоваяВетка.Строки.Добавить();
    СтрокаВетки[0] = "Сидоров"; СтрокаВетки[1] = "Олег"; СтрокаВетки[2] = "Кашович";
    
    // Создадим еще одного сотрудника, у которого нет подчинненых и у него будет изначально стоять галочка выбора
    НоваяВетка = Дерево.Строки.Добавить();
    НоваяВетка[0] = "Петров"; НоваяВетка[1] = "Петр"; НоваяВетка[2] = "Петрович"; НоваяВетка[3] = Истина;
    КонецПроцедуры
    
    
    Теперь создадим обработку события табличного поля ПриАктивизацииСтроки:
    Код:
    Процедура ДеревоПриАктивизацииСтроки(Элемент)
    Перем ТекСтрока; //локальная переменная
    
    // Получим текущую строку дерева
    ТекСтрока = Элемент.ТекущаяСтрока;
    
    // И выведем ФИО и, если стоит галочка, текст ВЫБРАН
    Сообщить(ТекСтрока[0] + " " + ТекСтрока[1] + " " + 
    ТекСтрока[2] + " " + ?(ТекСтрока[3], "Выбран", ""));
    КонецПроцедуры
    
    

    Вложения:

Статус темы:
Закрыта.

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