Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
24 Фев 2018, 05:13
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите с деревом значений  (Прочитано 8441 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ИгорьШпак

  • **
  • Сообщений: 98
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2012-04-04
  • Сайт: 
  • Профессия: Программист 1С
Люди добрые! Помогите с таким вопросом: Есть дерево значений, в этом дереве есть каталоги, подкаталоги и файлы. Мне нужно узнать  уровень текущей строки. То есть я в самом этом поле кликаю мышкой на любую строчку и нажав на кнопку(скажем так) должен узнать текущий уровень. Суть в том что дерево я составил из файлов и оно мне вывело. Теперь нужно для дальнейшей работы узнать уровень. помогите пожалуйста. Если что непонятно - задавайте.


Оффлайн ИгорьШпак

  • **
  • Сообщений: 98
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2012-04-04
  • Сайт: 
  • Профессия: Программист 1С
Все это реализуется в обрабоотке

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6610
  • РЕПУТАЦИЯ: 780
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Можно уровень расставлять в отдельной колонке при формировании дерева и потом его просто получать.

Оффлайн ИгорьШпак

  • **
  • Сообщений: 98
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2012-04-04
  • Сайт: 
  • Профессия: Программист 1С
Я так понял вы предлагаете создать программно колонку и там занасить значение уровня????

У меня вопрос такой - когда я открываю обработку - у меня при открытии сразу выводит на форму данное дерево ( все по уровням) и в данной процедуре я могу получить все что хочу. Далее мне необходимо нажать на кнопку и в зависимости где стоит курсор ( на какой строчке в данной таблице) получить всю информацию

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Функция ВернутьУровеньВложенностиСтрокиДереваЗначений(Знач СтрокаДерева)

Сч=1;
Пока СтрокаДерева.Родитель <> Неопределено Цикл
Сч=Сч+1;
СтрокаДерева = СтрокаДерева.Родитель;
КонецЦикла;

Возврат Сч; //Число уровень вложенности

КонецФункции
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн ИгорьШпак

  • **
  • Сообщений: 98
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2012-04-04
  • Сайт: 
  • Профессия: Программист 1С
Вот мой код:


ТаблицаФайлов.Строки.Очистить();
ИсколмаяПапка = СокрЛП(ПутьКФайлам)+"\"+СокрЛП(Строка(Объект.Ссылка.Код));     
НайденныйКаталог = НайтиФайлы(СокрЛП(ПутьКФайлам)+"\", СокрЛП(Строка(Объект.Ссылка.Код))); 
Если НайденныйКаталог.Количество() > 0 Тогда   
   НайденныеФайлы = НайтиФайлы(СокрЛП(ИсколмаяПапка)+"\", "*.*");   
   Если НайденныеФайлы.Количество() > 0 Тогда     
      Для Каждого ЭлФайла ИЗ НайденныеФайлы Цикл            
         Если ЭлФайла.ЭтоКаталог() Тогда         
            Если НЕ ЭтоСправочник Тогда
               Если НЕ Формат(ВладелецФормы.ДокументОбъект.Дата, "ДФ=yyyy-MM-dd") = ЭлФайла.Имя Тогда
                  Продолжить;
               КонецЕсли;
            КонецЕсли;
            НайденныеПодФайлы = НайтиФайлы(СокрЛП(ЭлФайла.ПолноеИмя)+"\", "*.*");   
            Если НайденныеПодФайлы.Количество() > 0 Тогда 
               НоваяСтрока = ТаблицаФайлов.Строки.Добавить();
               НоваяСтрока.НазваниеФайла = ЭлФайла.Имя;
               Родитель = НоваяСтрока;                               
               Для Каждого ЭлПодФайла ИЗ НайденныеПодФайлы Цикл     
                  Если ЭлПодФайла.ЭтоКаталог() Тогда                                     
                     НайденныеПодФайлы2 = НайтиФайлы(СокрЛП(ЭлПодФайла.ПолноеИмя)+"\", "*.*");   
                     Если НайденныеПодФайлы2.Количество() > 0 Тогда         
                        НоваяСтрока2 = НоваяСтрока.Строки.Вставить(0);
                        НоваяСтрока2.НазваниеФайла = ЭлПодФайла.Имя;
                        Для Каждого ЭлПодФайла2 ИЗ НайденныеПодФайлы2 Цикл
                           НоваяСтрока3 = НоваяСтрока2.Строки.Добавить();
                           НоваяСтрока3.НазваниеФайла = ЭлПодФайла2.Имя;
                           НоваяСтрока3.ПолноеИмя = ЭлПодФайла2.ПолноеИмя;
                        КонецЦикла;
                     КонецЕсли;
                  Иначе
                     НоваяСтрока2 = НоваяСтрока.Строки.Добавить();
                     НоваяСтрока2.НазваниеФайла = ЭлПодФайла.Имя;
                     НоваяСтрока2.ПолноеИмя = ЭлПодФайла.ПолноеИмя;                       
                  КонецЕсли;
               КонецЦикла;
            КонецЕсли;
         Иначе
            НоваяСтрока = ТаблицаФайлов.Строки.Добавить();
            НоваяСтрока.НазваниеФайла = ЭлФайла.Имя;
            НоваяСтрока.ПолноеИмя = ЭлФайла.ПолноеИмя;
         КонецЕсли;
      КонецЦикла;                        
   КонецЕсли;
КонецЕсли;



Таблицафайлов - деревозначений.

Код рабочий, могут быть памарки при копировании. Но суть отражена. Этот код одной из процедур, которая запускается при открытии формы. Сами файлы находятся где-то в папках ( путь = константе). Далее мне необходимо добавить файл. НО ВАЖНО ЗНАТЬ ГДЕ СТОИТ КУРСОР В ТАБЛИЦЕ ФАЙЛОВ. Это необходимо для того что если пользователь захочет создать каталог внутри уже сущ каталога и только туда закинуть свои файлы, то мне необходимо знать уровень текущего каталога, чтобы запретить создание каталога, если уровень больше скажем 3.
Если есть вопросы- задавайте. Спасибо.

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Епрст......................

Все что ли самому написать надо???

Для Обчного приложения
Процедура Кнопканажатие()
ТекущаяСтрока = ЭлементыФормы.Таблицафайлов.ТекущиеДанные();
Если ТекущаяСтрока = Неопределено Тогда Возврат;
КонецЕсли;
Уровень = ВернутьУровеньВложенностиСтрокиДереваЗначений(ТекущаяСтрока);
Сообщить(Уровень);
КонецПроцедуры

Функция ВернутьУровеньВложенностиСтрокиДереваЗначений(Знач СтрокаДерева)
   
    Сч=1;
    Пока СтрокаДерева.Родитель <> Неопределено Цикл
        Сч=Сч+1;
        СтрокаДерева = СтрокаДерева.Родитель;
    КонецЦикла;
   
    Возврат Сч; //Число уровень вложенности
   
КонецФункции   

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн ИгорьШпак

  • **
  • Сообщений: 98
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2012-04-04
  • Сайт: 
  • Профессия: Программист 1С
Огромное спасибо!!!! Я еще набираюсь опыта, но обещаю как только буду компетентен в вопросах - помогать остальным! Спасибо. Единственное ТекущаяСтрока = ЭлементыФормы.Таблицафайлов.ТекущиеДанные(); выдавало ошибку. Но я нашел где нетак. Я заменил ТекущиеДанные() на текущуюстроку

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2860
  • РЕПУТАЦИЯ: 547
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Молодец!!!
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн ИгорьШпак

  • **
  • Сообщений: 98
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2012-04-04
  • Сайт: 
  • Профессия: Программист 1С
А еще можно написать так Уровень = ТекущаяСтрока.Уровень();


Теги:
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4468
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 5735
Последний ответ 07 Сен 2010, 12:01
от mohock
Помогите с отчётами в УТ 10.3. (Ведомость по товарам и ведомость по заказам)

Автор chum710Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 6068
Последний ответ 28 Мар 2012, 13:02
от chum710
Помогите с отчетом "Валовая прибыль"

Автор Dm109Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 4741
Последний ответ 10 Сен 2015, 13:57
от Dm109
помогите с отчетом "характеристики контрагентов"

Автор Vasya PovarРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 2082
Последний ответ 07 Дек 2016, 15:53
от Kironten

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
189 Сообщений
AIFrame AIFrame
81 Сообщений
alexandr_ll
41 Сообщений
BuhRust
29 Сообщений
wise wise
27 Сообщений
oleg-x
26 Сообщений
MuI_I_Ika MuI_I_Ika
25 Сообщений
pavl_vs
22 Сообщений
Кейли Кейли
21 Сообщений
andron81_81
20 Сообщений

* Кто онлайн

  • Точка Гостей: 155
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal