#0
by KattyMix
Есть список номенклатур,каждая номенклатура лежит в папке. Например Питание-Тема-Каша.Необходимо вытащить верхнего родителя номенклатуры. Пробовала таким образом: Но мне этот метод не подходит-так как в списке номенклатур разное количество родителей у каждого элемента.
#0
by KattyMix
Есть список номенклатур,каждая номенклатура лежит в папке. Например Питание-Тема-Каша.Необходимо вытащить верхнего родителя номенклатуры. Пробовала таким образом: Но мне этот метод не подходит-так как в списке номенклатур разное количество родителей у каждого элемента.
#4
by Reset
Вариант: Сообщить(Справочники.ИМЯСПРАВОЧНИКА.НайтиПоКоду(Лев(Ссылка.ПолныйКод,Ссылка.Метаданные.ДлинаКода)));
#6
by luns
возможно. это я за минуту накидал. никогда такой задачи не возникало. покажи кстати вариант. интересно.
#11
by KattyMix
Потому что по умолчанию пол мужской...=) Я нашла решение- СправочникРод = Строка.Номенклатура;
#13
by Fragster
чем принципиально толичается СКД от запроса? в ТЗ ты результат все равно можешь выгрузить
#20
by luns
да ничем. вон в уже есть ответ. просто Asmody сказал что запросом можно. вот мне и интересно стало чисто технически именно запросом.
#24
by luns
не надо подсказок. запости текст плиз тем паче что если он проще чем в то будет небольшим
#25
by Ахиллес
полный код: 1/2/3 Длина кода 5. Найди родителя верхнего уровня. Не мы такие, жизнь такая. Не всегда предопределённые значения удобно использовать. Просто надо помнить, что тут лежат грабли. Но то, что это авнокод это несомненно.
#26
by Mitriy
просто не пробовал на числовых кодах... может, там строку строит с нулями, откуда мне знать? А проверять в лом ))
#27
by Fragster
типа выбрать с итогами по иерархии а в обходе результата обработать только первую строку? а если родителя надо получить для кучи номенкулатуры?
#29
by Ахиллес
Строка с ведущими нулями это когда тип - "строка", когда "число", тогда без ведущих нулей.
#30
by Fragster
=> , конечно тормозит, но типа работает быстрее, чем рекурсия по каждому элементу, или запрос с группировкой по иерархии.
#35
by Reset
С числовым кодом действительно не будет работать, так же, как и с кодом с нулевой длиной. А я писал что метод универсальный на все случаи? Для приведенного в условия - метод полностью рабочий. Точнее, вариант метода. Сам использую в таких случаях вариант из .
#37
by Ахиллес
Нафига тут | Номенклатура.ПометкаУдаления = ЛОЖЬ А если мне надо помеченный на удаление элемент обработать?
#50
by Septera
Способ в Выигрывает в быстродействии у всех, готов сертификат на стол положить если это не так =)
#52
by KattyMix
А чем вам мой вариант не понравился?Он же короче ваших запросов...Просто прибавляю столько родителей,сколько мне надо...
#57
by zbv
для нескольких номенклатур. по скорости ХЗ. ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура Номенклатура.ПометкаУдаления = ЛОЖЬ И Номенклатура.Ссылка В(&Ссылка) ИТОГИ ПО Ссылка ТОЛЬКО ИЕРАРХИЯ
#61
by nop
есть ещё вариант определить максимальную глубину вложености в справочнике единожды. После чего составлять динамически (программно) текст запроса типа но не на 5 уровней, а на определенную ранее глубину вложености.
#62
by Septera
тебе же сказали что можно составить запрос под твою задачу, не вижу проблемы в этом, пример который я привел в универсален и работает очень быстро
#63
by Fragster
ну, результирующий запрос будет быстрым, но вот получение максимального уровня может затянуться :)
#68
by Fragster
если есть 2 группы верхнего уровня: а а/а и искомая номенклаутра находится в "а/а", то анализ полного кода все равно вернет "а"
#69
by nop
но оно того стоит, 1 раз сделать определение в ПриНачалеРаботыСистемы. Если конфу нельзя менять, и отчет внешний, тогда упс
#71
by FN
Если в 8-ке есть функция ПолныйКод и коды уникальны по всем справочнику, то юзай Если Лев(строкаТЧ.ПолныйКод,11)="0000045647/" тогда .... КонецЕсли
#78
by Fragster
там у объекта по моему есть Уровень. а так - если в процессе сеанса работы изменится максимальная глубина - будет косяк. ну и каждый раз при запуске не надо будет пересчитывать...
#79
by Fragster
тогда запрос в цикле из будет быстрее твоего метода, но ты не парься, скорее всего это не будет основным источником тормозов :)
#83
by Septera
Выборка программными средствами никога не выиграет у запроса, особенно на sql базах, потому что при переводе на Transact-SQL субд использует различные планировщики запросов, которые построят оптимальный вид запроса.
#85
by FN
"/" поставить в код платформа не даст (во всяком случае 7.7) да ладно - абсолютно рабочий подход. Главное прямо в коде не писать "0000045647/", а брать например из константы
#88
by lxs
Строить такие этажи в запросе, тем более, когда количество уровней иерархии неограниченное - бред
#90
by nop
у меня есть предложение покруче тогда. Завести реквизит в этом же справочнике Уровень и писать в него Уровень, по реквизиту индекс. Экономия и ускорение поиска на лицо
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Получить id и получить объект по id
- Как программно получить получить пароль пользователя в текущем сеансе работ
- Как получить разность дат (Нужно получить количество дней)
- Как получить штрихкод (число) по имени позиции номенклатуры?
- Как по Характеристики номенклатуры получить каждую характеристику отдельно
- запросом получить похожие наименования номенклатуры
- Как получить ГУИД элемента по OLE, записать и получить по нему ссылку?
- Конвертация данных получить серию номенклатуры
- УТ 11.1 - получить цену номенклатуры
В этой группе 1С
- УПП разделить земельный участок.
- На форме Табличное поле типа ТаблицаЗначений. Как покрасить строку ?
- Отукда берет данные консоль серверов 1CV8 Servers?
- Как в интерфейс пользователя добавить поле выбора для поиска?
- Как проверить есть ли табличная часть?
- Свой отбор в предопределенные действия формы списка
- v8: Ошибка метода ПолучитьФорму(<Полный путь к объекту Форма>) ?
- Как выделить жирным и подчеркнуть текст в шаблоне Word через ActiveDocument
- Конвертация данных отбор по организации
- Обработка регистрация счетов фактур на аванс: (УТ 8)
- Автоматически пересчет цен в условии договора контрагента?
- Непериодический независимый РС без измерений.Как реализовать
- Два разных запроса в одном отчете СКД?
- Ошибка Справочник не имеет владельца
- Как увеличить картинку в 1с 8.1?
- СКД. Условное оформление по вычисляемым полям
- Пронумеровать строки дерева значений на форме.
- УТ11. Быстрый выбор или Создание нового элемента.
- (ЗУП) отчет "Средняя численность" - отбор по свойствам
- Какой файл предоставляет V1CEnterprise.Application?