![]() |
![]() |
![]() |
|
Подскажите с отбором по справочнику | ☑ | ||
---|---|---|---|---|
0
zagorodnev
27.03.07
✎
13:15
|
В общем хочу сделать выборку по группе справочника
Подборка;//Подборка поле формы для выбора Выборка = Справочники.Номенклатура.Выбрать(Подборка); Пока Выборка.Следующий() Цикл .... КонецЦикла; Не работает??? |
|||
1
Широкий
27.03.07
✎
13:18
|
Подборка - это ссылка или объект?
|
|||
2
zagorodnev
27.03.07
✎
13:18
|
Ссылка
|
|||
3
gwalker
27.03.07
✎
13:19
|
а если попробовать Для Каждого Из?
|
|||
4
zagorodnev
27.03.07
✎
13:21
|
(3) Не не пойдет:
Отбор= Новый Структура("Номенклатура"); Отбор.Номенклатура=Подборка;//Подборка поле формы для выбора Выборка = Справочники.Номенклатура.Выбрать(,,Отбор); Тоже не пашет |
|||
5
zagorodnev
27.03.07
✎
13:22
|
Пишет
Недопустимое значение параметра (параметр номер "3") |
|||
6
КуплюКровать
27.03.07
✎
13:23
|
Делай запросом
ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура ГДЕ Справочник.Номенклатура.Родитель = &Родитель |
|||
7
zagorodnev
27.03.07
✎
13:23
|
(6) Не пойдет внутри иерархия большая
|
|||
8
Широкий
27.03.07
✎
13:25
|
(2) Код вроде должен отрабатывать..
предположения: "выборка" - это элемент (не группа) "выборка" - тип значения не является "СправочникСсылка.Номенклатура" (6) В ИЕРАРХИИ тогда уж |
|||
9
КуплюКровать
27.03.07
✎
13:27
|
(8) ты прав.
(0) вот так например работает Группа = Справочники.Номенклатура.НайтиПоНаименованию("Услуги"); выборка = справочники.Номенклатура.Выбрать(Группа); Пока выборка.Следующий() Цикл сообщить(выборка); КОнецЦикла; |
|||
10
gwalker
27.03.07
✎
13:30
|
(4) Отбор.Вставить("Номенклатура",Подборка)
|
|||
11
zagorodnev
27.03.07
✎
13:39
|
Все как-то не то идея такая я в форме выбираю группу Номенклатуры и бегу в цикле только по ней
|
|||
12
zagorodnev
27.03.07
✎
13:40
|
(10) Так тоже не будет работать
|
|||
13
gwalker
27.03.07
✎
13:42
|
(11) ё, я ж так делал!!!
Ща код найду |
|||
14
zagorodnev
27.03.07
✎
13:44
|
Найди найди он ругается Недопустимое значение параметра (параметр номер "3")
Отбор.Вставить("Номенклатура",Подборка) Это равносильно Отбор.Номенклатура=Подборка; |
|||
15
Широкий
27.03.07
✎
13:47
|
(14) в (6) уже все написано ... только условие поставь в иерархии
|
|||
16
gwalker
27.03.07
✎
13:48
|
НоменклатураДляОтчетов - это ТП с типом значения СписокЗначений и с типом зн. списка Справочникссылка.Номенклатура
Функция ЗапросПоПартиямТМЦ(НачалоПериода, КонецПериода) Запрос = Новый Запрос; Текст = " |ВЫБРАТЬ | ПартииОстаткиИОбороты.Регистратор КАК Регистратор, | СУММА(ПартииОстаткиИОбороты.СуммаУпрНачальныйОстаток) КАК СебестоимостьУпрНачальныйОстаток, | СУММА(ПартииОстаткиИОбороты.СуммаУпрПриход) КАК СебестоимостьУпрПриход, | СУММА(ПартииОстаткиИОбороты.СуммаУпрРасход) КАК СебестоимостьУпрРасход, | СУММА(ПартииОстаткиИОбороты.СуммаУпрКонечныйОстаток) КАК СебестоимостьУпрКонечныйОстаток |ИЗ | РегистрНакопления.Партии.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , ) КАК ПартииОстаткиИОбороты |ГДЕ | (ПартииОстаткиИОбороты.СтатусПартии = &СтатусПартии) "; //добавляем отбор по номенклатуре в текст запроса Если НЕ (НоменклатураДляОтчетов.Количество()=0) Тогда Текст = Текст + "И ("; СтаршийИндекс=ЭлементыФормы.НоменклатураДляОтчетов.Значение.Количество()-1; Для Счетчик=0 По СтаршийИндекс Цикл Текст = Текст+"ПартииОстаткиИОбороты.Номенклатура В ИЕРАРХИИ (&Номенклатура"+счетчик+")"; Если Счетчик < СтаршийИндекс Тогда Текст = Текст + " ИЛИ "; Иначе Текст = Текст + ")"; КонецЕсли; Номенклатура = "Номенклатура"+Счетчик; Запрос.УстановитьПараметр(Номенклатура, ЭлементыФормы.НоменклатураДляОтчетов.Значение[Счетчик].Значение); КонецЦикла; КонецЕсли; Текст = Текст + " |СГРУППИРОВАТЬ ПО | ПартииОстаткиИОбороты.Регистратор |УПОРЯДОЧИТЬ ПО | Регистратор.Дата |"; Запрос.Текст = Текст; Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("КонецПериода", КонецПериода); Запрос.УстановитьПараметр("СтатусПартии", Перечисления.СтатусыПартий.Собственная); Выборка = Запрос.Выполнить().Выбрать(); Возврат Выборка; КонецФункции У меня это работает |
|||
17
gwalker
27.03.07
✎
13:49
|
(15) именно
|
|||
18
Широкий
27.03.07
✎
13:51
|
(16) :)) Условие по номенклатуре просто офигенное ... то что ты написал в 14 строках можно ужать до одной
|
|||
19
gwalker
27.03.07
✎
14:08
|
(18) рад принять любую помостчь :)
|
|||
20
Широкий
27.03.07
✎
14:24
|
(19) + Условие не в параметрах виртуальной таблицы
Наверно примерно Текст = " |ВЫБРАТЬ | ПартииОстаткиИОбороты.Регистратор КАК Регистратор, | СУММА(ПартииОстаткиИОбороты.СуммаУпрНачальныйОстаток) КАК СебестоимостьУпрНачальныйОстаток, | СУММА(ПартииОстаткиИОбороты.СуммаУпрПриход) КАК СебестоимостьУпрПриход, | СУММА(ПартииОстаткиИОбороты.СуммаУпрРасход) КАК СебестоимостьУпрРасход, | СУММА(ПартииОстаткиИОбороты.СуммаУпрКонечныйОстаток) КАК СебестоимостьУпрКонечныйОстаток |ИЗ | РегистрНакопления.Партии.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор,,&ТекстУсловия = ИСТИНА) КАК ПартииОстаткиИОбороты |СГРУППИРОВАТЬ ПО | ПартииОстаткиИОбороты.Регистратор |УПОРЯДОЧИТЬ ПО | Регистратор.Дата |"; ТекстУсловия="СтатусПартии = &СтатусПартии"; Если НоменклатураДляОтчетов.Количество()>0 Тогда ТекстУсловия=ТекстУсловия+" И Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)"; КонецЕсли; Запрос.Текст=СтрЗаменить(Запрос.Текст,"&ТекстУсловия",ТекстУсловия); Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода); Запрос.УстановитьПараметр("КонецПериода", КонецПериода); Запрос.УстановитьПараметр("СтатусПартии", Перечисления.СтатусыПартий.Собственная); Запрос.УстановитьПараметр("СписокНоменклатуры",НоменклатураДляОтчетов.ВыгрузитьКолонку("Значение")); |
|||
21
Широкий
27.03.07
✎
14:25
|
+20
РегистрНакопления.Партии.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор,,&ТекстУсловия) КАК ПартииОстаткиИОбороты |
|||
22
vladnet
27.03.07
✎
14:29
|
Что то все как то сложно, а так не пробывал:
Выборка = Справочники.Номенклатура.Выбрать(Подборка); |
|||
23
vladnet
27.03.07
✎
14:30
|
+(22) да что то совсем не читаю
|
|||
24
vladnet
27.03.07
✎
14:35
|
В общем то (22) работает, проверил, а чтобы выбирать элементы еще и групп ниже нужно просто воспользоватся другой командой:
лВыборка=Справочники.Номенклатура.ВыбратьИерархически(Родитель); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |