Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Предприятие 7.7]

Выбрать элементы по реквизиту из подгрупп

T@nia
читатель
офлайн
Дата регистрации: 20.03.2012
Сообщений: 27
Пост №11
 
12.11.2012 13:10

Текстовый. И в свойствах реквизита установлены Сортировка и Отбор по реквизиту.

T@nia
читатель
офлайн
Дата регистрации: 20.03.2012
Сообщений: 27
Пост №12
 
12.11.2012 13:15

"Да. Сначала я пробовала СпрМК.ВыбратьЭлементыПоРеквизиту("Ведомость", "вп", 1,0); Элементы из группы выбирает, но только если они не в подгруппах этой группы. В подгруппах - никак. А если СпрМК.ВыбратьЭлементы(); а потом через Если СпрМК.Ведомость = "вп" Тогда выдает пустые строки."

Вьюн
читатель
офлайн
Дата регистрации: 14.01.2007
Сообщений: 657
Пост №13
 
12.11.2012 13:27

Может надо:<br>Если СокрЛП(СпрМК.Ведомость) = "вп" Тогда

Sh_S
читатель
офлайн
Дата регистрации: 02.03.2007
Сообщений: 7730
Пост №14
 
12.11.2012 13:29

у реквизита "ведомость" длина 2?<br>если нет, то для сравнения как минимум надо использовать СокрЛП(СпрМК.Ведомость).<br>а метод Использовать Родителя() срабатывает вроде только на первый уровень вложения, вам бы лучше тогда пользовать ПринадлежитГруппе

T@nia
читатель
офлайн
Дата регистрации: 20.03.2012
Сообщений: 27
Пост №15
 
12.11.2012 16:23

"У реквизита "Ведомость" длина 10. Я попробовала использовать СокрЛП(СпрМК.Ведомость), не получается. Если использовать ВыбратьЭлементы() и далее сравнение, то выводит пустые строки. Да, метод ИспользоватьРодителя() срабатывает только на первый уровень, но вся беда в том, что без этого метода вообще ничего не выходит, даже если использовать метод ПринадлежитГруппе(). Я их и "оптом" применяла, все равно никак. СпрМК.ВыбратьЭлементыПоРеквизиту("Ведомость", "вп", 1,0); выводит нужные данные, но только с первого уровня. Может, до всех уровней "докопаться" невозможно?"

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №16
 
13.11.2012 10:50

"<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>"

Sh_S
читатель
офлайн
Дата регистрации: 02.03.2007
Сообщений: 7730
Пост №17
 
13.11.2012 11:05

все-таки запрос. а так по всей иерархии будет выводить?

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №18
 
13.11.2012 11:11

Да, по любым уровням вложенности, и кроме того будет так:<br>Если где то глубоко в структуре попадется элемент, для которого указано Ведомость="вп" (не приветствую строковые отборы, но что есть, то есть), то в результат запроса попадет вся структура родителей этого элемента. Если это не надо, надо поменять текст запроса добавив "без групп".<br> <br>Единственный минус в алгоритме, видимо то, что если, скажем, Выбор1 - не является группой первого уровня, то в результат запроса попадет и сам Выбор1 (хотя он по любому попадет) и его родители. Но это уже можно на этапе перебора результата запроса отсеивать.

T@nia
читатель
офлайн
Дата регистрации: 20.03.2012
Сообщений: 27
Пост №19
 
13.11.2012 13:10

Thorvardr, огромнейшее Вам спасибо за запрос!

T@nia
читатель
офлайн
Дата регистрации: 20.03.2012
Сообщений: 27
Пост №20
 
13.11.2012 13:11

Всем-всем-всем спасибо за советы!

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация