8.х Создание подкаталогов на диске программно

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

  1. TopicStarter Overlay
    Solovyeff
    Offline

    Solovyeff

    Регистрация:
    12 фев 2014
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Всем доброго времени суток!
    Задача в следующем, нужно выгрузить номенклатуру на диск, с таким условием, группа номенклатуры это папка, а что в ней это текстовые файлы, проблема в том что в группе есть подгруппы.. Например такие Готовая продукция-Первое и до 5 уровней вложенности. Как можно создать папку в папке в таком случае, весь интернет перерыл, ничего нет.(
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    На форуме поднимался уже такой вопрос, воспользуйтесь поиском.
    Solovyeff нравится это.
  3. TopicStarter Overlay
    Solovyeff
    Offline

    Solovyeff

    Регистрация:
    12 фев 2014
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Я уже искал, ничего похожего нет (так думаю запрос поиска был неверен). Подскажите пожалуйста.
  4. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    точно так же как и создавали саму папку до этого, только для это нужно зайти в саму папку

    PS
    люди, это же элементарные вещи при работе с ОС, DOS на вас нету
    --- Объединение сообщений, 15 май 2014 ---
    так, показывайте как вы саму папку создаёте, код
  5. TopicStarter Overlay
    Solovyeff
    Offline

    Solovyeff

    Регистрация:
    12 фев 2014
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Вы немного меня не поняли. Как создать подкаталог я знаю, тут дело в другом. Например такой код (в Выборке выбирается только Номенклатура.Ссылка как Номенклатура)
    ----------
    Пока Выборка.Следующий() Цикл
    Если Номенклатура.ЭтоГруппа Тогда
    СоздатьКаталог("D:\Выгрузка\"+Номенклатура.Наименование);
    //Я не могу понять как мне понять что одна группа вложена в другую и в нее записать подпапку.
    КонецЕсли;
    КонецЦикла;
    ----------
  6. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Так вам нужно обходить результат вашего запроса ПО ГРУППИРОВКАМ !!!!!!!!!!!!!!!!!!!!!
    При каждой итерации в группе создавать подкаталог.
    --- Объединение сообщений, 15 май 2014 ---
    То, что вы написали условие - ЭтоГруппа - это полный бред, оно для этого не предназначено!
    Solovyeff нравится это.
  7. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    а ещё есть такая фишка как Уровень

    Код:
    СправочникСсылка.<Имя справочника> (CatalogRef.<Имя справочника>)
    Уровень (Level)
    Синтаксис:
    
    Уровень()
    Возвращаемое значение:
    
    Тип: Число. 
    Уровень элемента справочника.
    Описание:
    
    Получает уровень элемента справочника.
    Доступность:
    
    Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
    Примечание:
    
    Имеет смысл только для многоуровневых справочников. Следует учитывать, что уровень элемента может меняться, например, при переносе в другую группу (смене родителя). Для элемента, не имеющего родителя, уровень будет равняться 0.
    Если ссылка пустая, вызов метода вызывает исключение.
    Пример:
    
    Сообщить("Данный элемент принадлежит уровню " +
     СсылкаНаЭлемент.Уровень());
    
    или для выборки УровеньВВыборке
    Код:
    СправочникВыборка.<Имя справочника> (CatalogSelection.<Имя справочника>)
    УровеньВВыборке (LevelInSelection)
    Синтаксис:
    
    УровеньВВыборке()
    Возвращаемое значение:
    
    Тип: Число. 
    Уровень в выборке.
    Описание:
    
    Получает уровень элемента справочника в выборке, полученной с помощью метода ВыбратьИерархически. Уровень выдается начиная с 0. То есть при обходе верхнего уровня выборки уровень будет равняться 0. Выдаваемые значения зависят от того, с каким отбором по родителю выполнялась выборка. Если отбор по родителю не производился, то уровень в выборке будет совпадать с уровнем элемента в справочнике.
    Доступность:
    
    Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
    Примечание:
    
    Для неиерархической выборки смысла не имеет.
    Пример:
    
    Номенклатура = Справочники.Номенклатура;
    Выборка = Номенклатура.ВыбратьИерархически(ВыбГруппа,,);
    Пока Выборка.Следующий() Цикл Сообщить("В выборке " + Выборка.Ссылка + "Уровень "+ 
     Выборка.УровеньВВыборке());
     Сообщить("В справочнике " + Выборка.Ссылка + "Уровень "+
     Выборка.Ссылка.Уровень());
    КонецЦикла;
    
  8. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Ну уровень это понятно :), возвращает число (номер вложенности) :), создавать подгруппы следует в обходе. Можно тупо сделать обход группировок и все :)
  9. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    уровень позволяет за один проход одной группировки сделать, но тут надо записывать предыдущие уровни
    ибо команда md позволяет создавать вложенные каталоги сразу,
    выполнив "md level0\level1\level2\level3\level4" получим в текущем (от точки выполнения команды) каталоге:
    папку level0 в которой есть папка level1, в которой есть папка level2, в которой есть папка level3, в которой в свою очередь есть папка level4

    или через полный код можно, заменяя код на наименование через поиск по коду
  10. Alex_fess
    Offline

    Alex_fess Опытный в 1С

    Регистрация:
    23 мар 2011
    Сообщения:
    256
    Симпатии:
    7
    Баллы:
    29
    Так же можно выкрутиться рекурсией (если тяжело с языком)
  11. TopicStarter Overlay
    Solovyeff
    Offline

    Solovyeff

    Регистрация:
    12 фев 2014
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Вопрос решен. Всем спасибо за помощь.:)
  12. LordMaverick
    Online

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.438
    Симпатии:
    373
    Баллы:
    104
    хоть бы поделился как решилось :)
    для поколений :)
  13. TopicStarter Overlay
    Solovyeff
    Offline

    Solovyeff

    Регистрация:
    12 фев 2014
    Сообщения:
    28
    Симпатии:
    0
    Баллы:
    1
    Я бы и рад бы, только задание передали другому разработчику)

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