Текстовый. И в свойствах реквизита установлены Сортировка и Отбор по реквизиту.
Текстовый. И в свойствах реквизита установлены Сортировка и Отбор по реквизиту.
"Да. Сначала я пробовала СпрМК.ВыбратьЭлементыПоРеквизиту("Ведомость", "вп", 1,0); Элементы из группы выбирает, но только если они не в подгруппах этой группы. В подгруппах - никак. А если СпрМК.ВыбратьЭлементы(); а потом через Если СпрМК.Ведомость = "вп" Тогда выдает пустые строки."
Может надо:<br>Если СокрЛП(СпрМК.Ведомость) = "вп" Тогда
у реквизита "ведомость" длина 2?<br>если нет, то для сравнения как минимум надо использовать СокрЛП(СпрМК.Ведомость).<br>а метод Использовать Родителя() срабатывает вроде только на первый уровень вложения, вам бы лучше тогда пользовать ПринадлежитГруппе
"У реквизита "Ведомость" длина 10. Я попробовала использовать СокрЛП(СпрМК.Ведомость), не получается. Если использовать ВыбратьЭлементы() и далее сравнение, то выводит пустые строки. Да, метод ИспользоватьРодителя() срабатывает только на первый уровень, но вся беда в том, что без этого метода вообще ничего не выходит, даже если использовать метод ПринадлежитГруппе(). Я их и "оптом" применяла, все равно никак. СпрМК.ВыбратьЭлементыПоРеквизиту("Ведомость", "вп", 1,0); выводит нужные данные, но только с первого уровня. Может, до всех уровней "докопаться" невозможно?"
"<pre>Процедура Сформировать()<br> Если Выбор1.Выбран() = 0 Тогда<br> Предупреждение("Выберите узел!");<br> Возврат;<br> КонецЕсли;<br><br> Таб = СоздатьОбъект("Таблица");<br> Таб.ИсходнаяТаблица("Ведомость");<br> Таб.ПовторятьПриПечатиСтроки(3,4);<br> Таб.ВывестиСекцию("Шапка");<br> ТекстЗапроса="МашиноКомплект=Справочник.МашиноКомплекты.ТекущийЭлемент;<br> |Ведомость=Справочник.МашиноКомплекты.Ведомость;<br> |Условие((МашиноКомплект.ПринадлежитГруппе(Выбор1)=1) И (СокрЛП(МашиноКомплект.Ведомость)=""""вп""""));<br> |Группировка МашиноКомплект упорядочить по МашиноКомплект.Наименование;";<br><br> Запрос=СоздатьОбъект("Запрос");<br> Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда<br> Сообщить("Ошибка выполнения запроса");<br> Возврат;<br> Иначе<br> НомерСтроки = 0;<br> Пока Запрос.Группировка(1)=1 Цикл<br> НомерСтроки = НомерСтроки + 1;<br> МашиноКомплект=Запрос.МашиноКомплект;<br> Обозначение = МашиноКомплект.Номенклатура;<br> Номенклатура = МашиноКомплект.Номенклатура.Обозначение;<br> Входимость = МашиноКомплект.Родитель.ПолноеНаименование();<br> НаИзделие = МашиноКомплект.Норма;<br> Всего = МашиноКомплект.ВсегоНаМашину;<br><br> Если МашиноКомплект.ЭтоГруппа() = 1 Тогда<br> Таб.ВывестиСекцию("Группа");<br> Иначе<br> Таб.ВывестиСекцию("Строка");<br> КонецЕсли;<br> КонецЦикла;<br> КонецЕсли;<br><br> Таб.ВывестиСекцию("Подвал");<br> Таб.ТолькоПросмотр(1);<br> Таб.Опции(0,0,0,0);<br> Таб.ПараметрыСтраницы(2,100,1,10,10,10,10,10,10,1,0);<br> Таб.Показать("Ведомость покупных","""");<br> Выбор1 = 0;<br>КонецПроцедуры </pre>"
все-таки запрос. а так по всей иерархии будет выводить?
Да, по любым уровням вложенности, и кроме того будет так:<br>Если где то глубоко в структуре попадется элемент, для которого указано Ведомость="вп" (не приветствую строковые отборы, но что есть, то есть), то в результат запроса попадет вся структура родителей этого элемента. Если это не надо, надо поменять текст запроса добавив "без групп".<br> <br>Единственный минус в алгоритме, видимо то, что если, скажем, Выбор1 - не является группой первого уровня, то в результат запроса попадет и сам Выбор1 (хотя он по любому попадет) и его родители. Но это уже можно на этапе перебора результата запроса отсеивать.
Thorvardr, огромнейшее Вам спасибо за запрос!
Всем-всем-всем спасибо за советы!
1C:Лекторий: 14 мая 2024 года — Бесплатная онлайн-лекция об учете в 1С:БГУ 8 (ред. 2) невостребованной кредиторами задолженности. Серия 1С:Консалтинг для госсектора 1C:Лекторий: 16 мая 2024 года — Бесплатная онлайн-лекция о новом в «1С:Бухгалтерии 8» (релизы 3.0.148 – 3.0.151): новая методика учета расчетов на ЕНС с 2024 года; календарь отчетности; цифровой рубль |
1C:Лекторий: 23 мая 2024 года — Бесплатная онлайн-лекция об учете финансовой аренды у арендодателя в программах 1С:ERP и 1С:КА 1C:Лекторий: 6 июня 2024 года — Бесплатная онлайн-лекция об отражении расчетов на ЕНС в «1С:Бухгалтерии 8» |