|
v7: как запросом выбрать папки с определенным наименованием (находящиеся в иерархии указаной п | ☑ | ||
---|---|---|---|---|
0
midguard7
05.09.17
✎
09:31
|
Всем доброго!
С 7.7 почти не знаком. Если кто знает - подскажите, пожалуйста. Сама задача такая: есть справочник "Программы". в нем есть несколько групп первого уровня. в группе с именем "Дистрибутив" надо найти все папки с именем (передаем имя как параметр) и в каждой их этих папок создать элемент с определенным наименованием (которое, тоже передается как параметр). |
|||
1
catena
05.09.17
✎
09:36
|
"Подскажите" - читать, как "напишите"? Проблемы на каком этапе? Перебор справочника? Поиск по наименованию? Создание элемента?
|
|||
2
Ёпрст
05.09.17
✎
09:43
|
(1) проблема на этом этапе: "С 7.7 почти не знаком". Т.е ничего не знает.
|
|||
3
Ёпрст
05.09.17
✎
09:43
|
||||
4
midguard7
05.09.17
✎
09:51
|
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "ТекущийЭлемент = Справочник.Программы.ТекущийЭлемент; |Наименование = Справочник.Программы.Наименование; |Группировка ТекущийЭлемент; //|Условие (Наименование = ""Онлайн версия""); |"; |
|||
5
midguard7
05.09.17
✎
09:51
|
При попытке такого запроса, если передать наименование элементов (не групп), то в выборку попадают нужные. Если передать наименование групп, то выборка пустая.
|
|||
6
Ёпрст
05.09.17
✎
09:54
|
(4)
запрос в 7.7 работает только с элементами справочника, группы потом обрабатывает. Можно, конечно, в запрос добавить поле .Родитель, только вот если в такой группе не будет элементов - тут тоже облом с запросом - такие группы не найдёт. Самое простое, это выборка и ВключатьПодчиненные(0) - будет бегать только по папкам, без вложенности. И быстро. |
|||
7
midguard7
05.09.17
✎
09:56
|
(6) спасибо! Можете эти пару строк написать? а то, у меня на это часа 3, чувствуется, уйдет. А надо, как всегда вчера)
|
|||
8
Ёпрст
05.09.17
✎
09:56
|
Ну и, если надо скорости, то писать тупо select id [Элем $Справочник.НужныйВид] from $Справочник.НужныйВид where isfolder = 2 and deskr like '%Вася%'
|
|||
9
Ёпрст
05.09.17
✎
09:57
|
(7) база какая SQL/DBF?
|
|||
10
midguard7
05.09.17
✎
09:58
|
sql
|
|||
11
catena
05.09.17
✎
09:59
|
(2) Для данной задачи это решается чтением одной ветки документации: "Справочники".
А по факту надо было так честно и писать. Как в (7). |
|||
12
Ёпрст
05.09.17
✎
10:17
|
(10)
Процедура Сформировать() Парам = "Онлайн версия"; Попытка Запрос = СоздатьОбъект("ODBCRecordSet"); Исключение Если ЗагрузитьВнешнююКомпоненту("1cpp.dll")=0 Тогда Предупреждение("поместите 1cpp.dll в каталог с базой или в \BIN"); Возврат; КонецЕсли; Запрос = СоздатьОбъект("ODBCRecordSet"); КонецПопытки; ТекстЗапроса = " |select id [элем $Справочник.Программы] |from $Справочник.Программы |where descr like '%:Парам%' and isfolder=2 |"; Запрос.УстановитьТекстовыйПараметр("Парам",Парам); ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса); Спр = СоздатьОбъект("Справочник.Программы"); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()=1 Цикл Спр.ИспользоватьРодителя(ТЗ.Элем); Спр.Новый(); Спр.Наименование = "Вася"; Спр.Записать(); КонецЦикла; КонецПроцедуры |
|||
13
midguard7
05.09.17
✎
11:14
|
(12) спасибо большое! Помогли
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |