|
v7: Запрос по регистру Продажи ТиС | ☑ | ||
---|---|---|---|---|
0
vie_za
04.09.12
✎
16:25
|
Необходимо выбрать запросом все Элементы Номенклатуры,подчиненые папке ВыбТовар
(включая содержимое всех низлежащих уровней) ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаНачала по ДатаКонца; |Фирма = Регистр.Продажи.Фирма; |Покупатель = Регистр.Продажи.Покупатель; |Номенклатура = Регистр.Продажи.Номенклатура; |Поставщик = Регистр.Продажи.Поставщик; |ТекущийДокумент = Регистр.Продажи.ТекущийДокумент; |Себест = Регистр.Продажи.Себестоимость; |Количество = Регистр.Продажи.Количество; |ПродСт = Регистр.Продажи.ПродСтоимость; |Функция СуммаСебест = Сумма(Себест); |Функция СуммаКоличество = Сумма(Количество); |Функция СуммаПродСт = Сумма(ПродСт); |Группировка Поставщик упорядочить по Поставщик.Наименование без групп; |Группировка Номенклатура ; |Группировка ТекущийДокумент; |Условие(Номенклатура.Родитель = Товар);" Попробовал ТекстЗапроса = ТекстЗапроса + " |Условие (Номенклатура в ВыбТовар); |Условие(Номенклатура.ЭтоГруппа()=0);"; не работает так как надо |
|||
1
Rie
04.09.12
✎
16:27
|
(0) А "Условие(Номенклатура.Родитель=Товар);" не забыл убрать?
|
|||
2
vie_za
04.09.12
✎
16:31
|
(1) ну да,забыл...это было старая попытка объехать проблему
ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаНачала по ДатаКонца; |Фирма = Регистр.Продажи.Фирма; |Покупатель = Регистр.Продажи.Покупатель; |Номенклатура = Регистр.Продажи.Номенклатура; |Поставщик = Регистр.Продажи.Поставщик; |ТекущийДокумент = Регистр.Продажи.ТекущийДокумент; |Себест = Регистр.Продажи.Себестоимость; |Количество = Регистр.Продажи.Количество; |ПродСт = Регистр.Продажи.ПродСтоимость; |Функция СуммаСебест = Сумма(Себест); |Функция СуммаКоличество = Сумма(Количество); |Функция СуммаПродСт = Сумма(ПродСт); |Группировка Поставщик упорядочить по Поставщик.Наименование без групп; |Группировка Номенклатура ; |Группировка ТекущийДокумент; |;" |
|||
3
Ёпрст
04.09.12
✎
16:34
|
(2)
|Условие (Номенклатура в ВыбТовар); |Группировка Номенклатура Все; |
|||
4
Ёпрст
04.09.12
✎
16:35
|
и это, убери упорядочивание из текста запроса
|
|||
5
vie_za
04.09.12
✎
17:33
|
Поправил,но...уже почти час крутиться выполнение (((
|
|||
6
WoodMan
04.09.12
✎
17:35
|
(5) запрос час выполняется??
может где в обходе результатов запроса зациклил? |
|||
7
m-serg74
04.09.12
✎
17:43
|
да с Итогами возможно и выполнение, неизвестно ведь что за период и объем доков в день
|
|||
8
vie_za
05.09.12
✎
09:54
|
(6) нет, много больше часа крутился именно Запрос..
(3) сделал так ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаНачала по ДатаКонца; |Фирма = Регистр.Продажи.Фирма; |Покупатель = Регистр.Продажи.Покупатель; |Номенклатура = Регистр.Продажи.Номенклатура; |Поставщик = Регистр.Продажи.Поставщик; |ТекущийДокумент = Регистр.Продажи.ТекущийДокумент; |Себест = Регистр.Продажи.Себестоимость; |Количество = Регистр.Продажи.Количество; |ПродСт = Регистр.Продажи.ПродСтоимость; |Функция СуммаСебест = Сумма(Себест); |Функция СуммаКоличество = Сумма(Количество); |Функция СуммаПродСт = Сумма(ПродСт); //|Группировка Поставщик упорядочить по Поставщик.Наименование без групп; //|Группировка Номенклатура ; |Группировка ТекущийДокумент;" ; ТекстЗапроса = ТекстЗапроса + " |Условие (Номенклатура в ВыбТовар); |Группировка Номенклатура Все;"; результат-полная ерунда,вместо всех Элементов вложенных групп ,выбирает сами Группы и выводит их туеву хучу раз подряд |
|||
9
1Сергей
05.09.12
✎
10:02
|
|Группировка Номенклатура Все Без Групп;";
|
|||
10
big
05.09.12
✎
10:10
|
1. Озвучь свою задачу более-менее внятно. Т.е. - что нужно получить на выходе.
2. Какой период данных выбираешь? 3. Какое примерно количество движени (документов) за период? |
|||
11
vie_za
05.09.12
✎
10:16
|
(9) насколько я понимаю- так нельзя...
Либо Группировка Номенклатура Без Групп; либо Группировка Номенклатура Все (10) 1.на выходе хочу получить документы поступления и реализации,в строках которых есть заданные Элементы номенклатуры 2.период-месяц 3.ну,допустим 400-600,вряд ли больше |
|||
12
vie_za
05.09.12
✎
10:19
|
м.б. задачу можно решить с другого конца?
сначала выбрать нужные элементы номенклатуры в ТЗ, а потом существующий запрос натравить на эту ТЗ? |
|||
13
Ёпрст
05.09.12
✎
10:23
|
(8) п...ц
Че тут можно сказать.. только ЭТО. |
|||
14
Ёпрст
05.09.12
✎
10:24
|
Думать не пробовал, что пишешь ?
и сравни (0) с (8) |
|||
15
aka AMIGO
05.09.12
✎
10:25
|
(12)у тебя есть папки с малым количеством номенклатуры? 2-3..10.. посмотри вначале на них, для скорости
|
|||
16
Ёпрст
05.09.12
✎
10:26
|
>>>на выходе хочу получить документы поступления и реализации,в строках которых есть заданные Элементы номенклатуры
Это не вяжется с Этим: >>>Необходимо выбрать запросом все Элементы Номенклатуры Определись, че те надо - либо ВСЕ элементы из справочника + продажи, или только ту номенклатуру, по которой были продажи. |
|||
17
Ёпрст
05.09.12
✎
10:27
|
И еще, какое отношение " документы поступления" имеют к Продажному регистру ?!
|
|||
18
big
05.09.12
✎
10:27
|
1. Смотреть надо не регистр продажи, а регистр Партий или Остатков.
2. и 3. - это мелочь, а не обороты Условие (Номенклатура в НужнаяГруппа) или Условие (Номенклатура в НужныйСписок) Условие (ВидОперции в СписокНужныхВидовОперций) или Условие (ТекущийДокумент.вид() в СписокНужныхВидовДоков) Группировка Номенклатура Группировка ТекущийДокумент тз = СоздатьОбъект("ТаблицаЗначений"); Запрос.Выгрузить(тз); тз.Свернуть("ТекущийДокумент","СуммаКоличество"); тз.Сортировать("Док",1); на выходе таблица с документами |
|||
19
big
05.09.12
✎
10:28
|
(18) + да, и ещё убрать ненужные поля и функции из запроса
|
|||
20
lamme
05.09.12
✎
10:33
|
а эта ...
|Условие(Номенклатура в Выбгруппа); и |Группировка Номенклатура Все Без Групп; |
|||
21
vie_za
05.09.12
✎
10:51
|
Что то я уже и сам запутался и всех запутал...
Начну еще раз,с самого начала. был Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаНачала по ДатаКонца; |Фирма = Регистр.Продажи.Фирма; |Покупатель = Регистр.Продажи.Покупатель; |Номенклатура = Регистр.Продажи.Номенклатура; |Поставщик = Регистр.Продажи.Поставщик; |ТекущийДокумент = Регистр.Продажи.ТекущийДокумент; |Себест = Регистр.Продажи.Себестоимость; |Количество = Регистр.Продажи.Количество; |ПродСт = Регистр.Продажи.ПродСтоимость; |Функция СуммаСебест = Сумма(Себест); |Функция СуммаКоличество = Сумма(Количество); |Функция СуммаПродСт = Сумма(ПродСт); |Группировка Поставщик упорядочить по Поставщик.Наименование без групп; |Группировка Номенклатура ; |Группировка ТекущийДокумент;" ; Если Товар.Выбран()=1 тогда Если Товар.ЭтоГруппа()=1 тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Номенклатура.Родитель = Товар);"; иначе ТекстЗапроса = ТекстЗапроса + " |Условие(Номенклатура = Товар);"; КонецЕсли; КонецЕсли; который выбирал документы,в строках которых присутствовал выбранный пользователем Товар(Элемент или Группа). И прекрасно работал.Но у него были ограничения...Если выбиралась папка в -в выборку попадали только элементы ЭТОЙ папки.Элементы вложенной папки в выборку не попадали.... И собственно,задача сводится к тому,чтобы в выборку документов попадали те,в строках которых присутствовала номенклатура в выбранной папке и всех вложенных. Приношу всем извинения за недостаточную и искаженную постановку в самом начале ветки. Вот както так.. |
|||
22
big
05.09.12
✎
10:55
|
|Условие(Номенклатура.Родитель В Товар)
|
|||
23
big
05.09.12
✎
10:58
|
(22) тьху, мля, запутал уже.
Если Товар.ЭтоГруппа()=1 тогда ТекстЗапроса = ТекстЗапроса + " |Условие(Номенклатура в Товар);"; |
|||
24
Ёпрст
05.09.12
✎
11:15
|
(21)
// Если Товар.Выбран()=1 тогда // Если Товар.ЭтоГруппа()=1 тогда // ТекстЗапроса = ТекстЗапроса + // " // |Условие(Номенклатура.Родитель = Товар);"; // иначе // ТекстЗапроса = ТекстЗапроса + // " // |Условие(Номенклатура = Товар);"; // КонецЕсли; // КонецЕсли; ТекстЗапроса = ТекстЗапроса +"Условие(Номенклатура в Товар);"; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |