#0
by Solomon2003
Как в справочнике определить первый уровень (самого верхнего родителя) для элемента любой вложенности... например элемент 5 уровня...
#2
by Smallrat
Я помню - была такая тема. Все начали меряться кто сделает круче. Потом пришел не помню кто и выложил код в одну строчку, такой степени завёрнутости, что спор сразу умер.
#10
by Solomon2003
в документе есть 30 товаров в табл части... мне нужно их распечатать с учетом иерархии...
#18
by Devel-1C
Это да. И моим способом (через .ПолноеНаименование, формирование ТЗ, сортировка ТЗ) получится немного громоздко, но работать будет.
#20
by azernot
Возьми обработку ПечатьПрайса в комплексной или ТиС.. Вот тебе пример вывода по иерархии.
#21
by FanatToNight
ЗиКа есть? возьми оттуда глРазложить(Стр,Разделитель) возвращает СписокЗначений, то, что тебе нужно
#22
by insider
если просто вывести из дока товары в иерархическом списке, то проще вот что: - выгрузить табличную часть в ТЗ - добавить колонку с полным кодом (или наименованием, но код имхо точнее будет, если есть одинаковые названия групп) - заполнить эту колонку перебором ТЗ - отсортировать по данной колонке все, элементы уже по иерархии отсортированы. если надо выводить имена групп, тогда нам в любом случае понадобится полное наименование, ну а слэшики в нем заменить и выкинуть в СЗ - пустяк и играйся потом с иерархией любой степени вложенности P.S. а пример рисовать лень, и так все расписал
#23
by insider
можно и без ЗиКа: так получаем СЗ из строки наименований, разделенных "/" а переделать под другой разделитель, думаю, не проблема :))
#25
by Devel-1C
Нам нужен только вывод наименований родителей, поэтому ПолноеНаименование Ну а если с кодом, то тогда для получения элемента придется еще и искать по коду.
#27
by Devel-1C
Кстати можно обойтись без выгрузки ТЧ в ТЗ, а сразу заполнять ТЗ перебором ТЧ: Цикл по строкам документа ...
#31
by insider
и ваще: запретить в конфе ввод прямых слэшиков в наименовании - не проблема и не помешает никому. и правильный ответ имхо ВСЕГДА уменьшить количество циклов или их вовсе избежать. особенно если не платят построчно и/или за медленно работающий код.
#33
by insider
чтобы обрезать можно выкинуть последний элемент списка, чтобы убрать ВСЕ лишние проблелы: к моему СтрЗменить добавить (поверх, в той же строке) СтрЗаменить(ВыражениеКотороеБыло," ","") и незачем плодить строки :)
#35
by insider
почему лишние? имхо выгрузка будет быстрее заполнения всех колонок, а не только служебной. а операций будет одинаково по сути
#36
by Devel-1C
В последнем случае точнее будет СокрП(...), тк в начале наименования могут быть пробелы. А вообще как делать это дело вкуса.
#37
by Devel-1C
Если есть желание попробуй создать документ на 500 позиций и проверь время работы в отладчике.
#38
by insider
эт верно, дело вкуса. как на мой вкус: минимум циклов и рекурсивных вызовов (т.е. не юзать без надобности), минимум условий, никаких безусловных переходов, разумеется, тотальный отлов исключений, все, что возможно написать в одну строку - втиснуть в одну и не делать больше. кстати лучше КЗК защитит конфу :))
#40
by insider
когда-то проверял, насколько помню выгрузка лучше. но я мог забыть, а мог перепутать :) на практике юзаю выгрузку, не мешало пока...
#41
by insider
тут еще от памяти зависит: если ее дофига и быстрая, то работа с большими ТЗ в оперативке отлично происходит, но если ее маловато... вот тогда проблема
#45
by insider
у вас рабочий день? а у нас выходные, у некоторых вся неделя... (ну я о фикси конечно)
#46
by Devel-1C
у нас к сожалению да (да не забанят меня модераторы). пойду я немного работу поработаю. Делов еще до...
#47
by Shaman100M
Сортировка по полному наименованию может не совсем корректно сортироваться в случае "группы сверху", - группы и элементы одного уровня могут пойти вперемешку, по алфавиту, - элементы вложенных уровней, соответственно, тоже. Решается вот так:
#50
by Solomon2003
а если три тз а потом сравнивать родителей... или в одной тз три колонки если спр 3 уровня.. например
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как в 1С 7.7 определить количество рабочих дней между заданными датами?
- Как определить что за НАСП ключ?
- Как програмно определить Роль и Интерфейс пользователя?
- Возможно ли определить количество пользователей работающих с ИБ в настоя...
- Как определить Родителя незаписанного элемента?
- Определить код родителя?
- v7: Как определить родителя при переносе элемента справочника в другую группу?
- Как определить родителя при вводе нового элемента справочника?
- Как определить программно определить в какой точке завершился бизнес процесс?
- Как определить уровень иерархии создаваемого элемента справочника в управляемых
В этой группе 1С
- Псевдоним (aliase)
- Критическая ошибка v8srvr:<сервер>/<база>/config/versions
- Ошибка при открытии любого объекта в конфигураторе
- Почему большинство выбирают при автоматизации 1С, а не FoxPro или Access?
- О листах учета рабочего времени
- v7: Поменять в печатной форме Ген дир на Исполнительный директор
- Взаиморасчеты с контрагентами по документам расчетов. Проблема
- Закрытие месяца в УПП
- Не редактируется программно созданная колонка
- Web сервис 8.1 и подключение его в Delphi
- Поле объекта не обнаружено (<Название документа>)
- Есть ли разница при подключении по ОЛЕ sql-ную базу или файловую (7.7)?
- Как мне задать высоту и ширину ценнииков в УТ в сантиметрах?
- Отчет "Дебиторская задолженность контрагентов в разрезе интервалов сроков з
- Почему данные в регистр сведений не записываются по порядку?
- Поле ввода (многострочный режим)
- Как прервать выполнение обработки в 1С 8.1
- Неверный заголовок файла выгрузки в регламентированных отчетах. хелп.
- аналог нажатие кнопки Ок в настройках СКД ? ? ?
- Поиск битых ссылок