[РЕШЕНО] Дерево значений в обычных формах

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

  1. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Здравствуйте.

    Нет ли у кого пример создания дерева в обычных формах.

    Нужно создать дерево:
    Флаг, Район,Флаг,Магазин,Сумма.

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

    Флаг это галочка что бы отметить элемент дерева.

    Не могу найти нормальный пример как это сделать в обычных формах.

    Создать такую структуру и заполнить данными.
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Второй флаг - не обязателен как бы.
    Колонки дерева будут:
    Использовать(Флаг), Район/Магазин(Отображать иерархию), Сумма.
    Код:
    Для Каждого ТекРайон Из СписокРайонов Цикл
    
    НовыйРайон = ДЗ.Строки.Добавить();
    НовыйРайон.РайонМагазин = ТекРайон.Район;
    НовыйРайон.Сумма = ТекРайон.Сумма;
    
    Если ТекРайон.СписокМагазинов.Количество() > 0 Тогда
    Для Каждого ТекМагазин ИЗ СписокМагазиновПоРайону Цикл
    НовыйМагазин = НовыйРайон.Строки.Добавить();
    НовыйМагазин.РайонМагазин = ТекМагазин.Магазин;
    НовыйМагазин.Сумма = ТекМагазин.Сумма;
    КонецЦикла;
    КонецЕсли;
    
    КонецЦикла;
    TODD22 нравится это.
  3. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Когда то писал для отображения подсистем на форме. С неограниченным уровнем иерархии.
    На форме располагаешь табличное поле с типом дерево значений.
    Код:
    // Процедура инициализирует вкладку "Подсистемы".
    // ................................................................................
    Процедура ИнициализацияПодсистем(ДеревоМетаданных) Экспорт
       
        // Подсистемы
        ДеревоМетаданных.Колонки.Очистить();
        ДеревоМетаданных.Колонки.Добавить("Подсистемы");
        ТекстПодсистемы = "Подсистемы";
        Для каждого Подсистема Из Метаданные.Подсистемы Цикл
            НоваяВетка = ДеревоМетаданных.Строки.Добавить();
            НоваяВетка[0] = Подсистема;
            СозданиеИерархииПодсистем(НоваяВетка, Подсистема, Метаданные, , ТекстПодсистемы)
        КонецЦикла;
       
    КонецПроцедуры
    
    // Создает иерархию подсистем. Эта процедура используется для рекурсии.
    // ................................................................................
    Процедура СозданиеИерархииПодсистем(СтрокаДерева, ПодПодсистема, Подсистема, Уровень = 0, ТекстПодсистемы)
       
        Если ЗначениеЗаполнено(ПодПодсистема[ТекстПодсистемы]) Тогда
            Для i=0 По Уровень Цикл
                Для каждого ПодПодПодсистема Из ПодПодсистема[ТекстПодсистемы] Цикл
                    НоваяСтрокаДерева = СтрокаДерева.Строки.Добавить();
                    НоваяСтрокаДерева[0] = ПодПодПодсистема;
                    ТекстПодсистемы ="Подсистемы";
                    СозданиеИерархииПодсистем(НоваяСтрокаДерева, ПодПодПодсистема, ПодПодсистема, , ТекстПодсистемы);
                КонецЦикла;
                Уровень = Уровень + 1;
            КонецЦикла;
        КонецЕсли;
       
    КонецПроцедуры
    
    TODD22 нравится это.
  4. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Второй флаг то же нужен.
    Условие такое. Ставим флаг на район и все подчинённые элементы то же отмечаются флагом.
    Либо ставим флаг на магазин. То есть нужна возможность отметить как целиком по району, так и по нескольким магазинам в районе.
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Для этого хватит одного флага :)
  6. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Один флаг на магазины?
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    одна колонка с флагом.
  8. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    что то я не понял. А как я тогда смогу отметить или все магазины в одном районе или часть магазинов в одном районе?
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    ты уже делать начни и поймешь сам :)
  10. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Начну :) Юзеры не дают... то одно, то другое....
    Сейчас с текучкой раскидаюсь....
    Вчера начал делать. Код в принципе так и писал. А вот с самим деревом на форме не получилось :( Выводился только первый элемент и флажок не работал.....
  11. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Блин... ничего не получается... где я туплю?
    --- Объединение сообщений, 14 сен 2015 ---
    Как добавить флажок что бы отмечать те объекты которые нужно перенести в другое дерево?
    --- Объединение сообщений, 14 сен 2015 ---
    И как то можно сделать кнопку "плюс" для сворачивания и разворачивания?
    --- Объединение сообщений, 14 сен 2015 ---
    С кнопкой "плюс" получилось.
    Осталось флажок победить :)

    Вложения:

    Последнее редактирование: 14 сен 2015
  12. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Как победить флажок?

    Вложения:

  13. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    ---

    Вложения:

    TODD22 нравится это.
  14. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Да то что нужно. Спасибо.... :)
  15. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Вот смотрю как у тебя сделано. Вроде так же делаю. А у меня всё равно да/нет в выборе.

    что я не так делаю?

    Вложения:

  16. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Говорю ж: поле ввода убери у колонки в свойствах
  17. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    У какой колонки? У флажка? Так я вроде убрал его.
  18. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Данные тоже очисти, должно остаться только ДанныеФлажка
  19. TopicStarter Overlay
    TODD22
    Offline

    TODD22 Профессионал в 1С Команда форума

    Регистрация:
    23 фев 2009
    Сообщения:
    4.755
    Симпатии:
    146
    Баллы:
    104
    Очищены.
  20. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Формат редактирования/отображения значения не заданы?

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