Имя: Пароль:
1C
1C 7.7
v7: Соединение таблиц в стандартном запросе 1С v7/7 ?
0 dimm7310
 
16.04.12
13:20
В отчете есть запрос
   ТекстЗапроса = "//{{ЗАПРОС(ОтборЦен)
   |Период с ДатаОтчета по ДатаОтчета;
   |Номенклатура    = Справочник.Цены.Владелец;
   |Тип            = Справочник.Цены.ТипЦен;
   |Цена            = Справочник.Цены.Цена;
   |Единица        = Справочник.Цены.Единица;
   |Валюта            = Справочник.Цены.Валюта;
   |Функция ЦенаСумма    = Сумма(Цена);
   |Группировка Номенклатура Упорядочить по Номенклатура.Наименование;
   |Группировка Тип;
   |"//}}ЗАПРОС

Есть справочник Прайс_Лист - у которого есть реквизит - Товар (справочник.Номенклатура)

Нужно переделать группировку отчета - по справочнику Прайс_Лист .

Т.е нужно делать соединение по Справочник.Прайс_лист.Товар = Справочник.Цены.Владелец

Напомните как это правильно сделать в запросе.

пробовал так:
   ТекстЗапроса = "//{{ЗАПРОС(ОтборЦен)
   |Период с ДатаОтчета по ДатаОтчета;    
   |Номенклатура    = Справочник.Прайс_лист.Товар,Справочник.Цены.Владелец;
   |НомПрайс = Справочник.Прайс_лист;
   |Тип            = Справочник.Цены.ТипЦен;
   |Цена            = Справочник.Цены.Цена;
   |Единица        = Справочник.Цены.Единица;
   |Валюта            = Справочник.Цены.Валюта;
   |Функция ЦенаСумма    = Сумма(Цена);
   |Группировка НомПрайс Упорядочить по НомПрайс.Наименование;
   |Группировка Тип;
   |"//}}ЗАПРОС

но выходит ерунда



Переписывать на 1С++ прямой запрос не хочется.
1 andrewks
 
16.04.12
13:22
8-шник?
2 andrewks
 
16.04.12
13:24
чё-то я не понял хитроопость финта "Нужно переделать группировку отчета - по справочнику Прайс_Лист"
и
Номенклатура    = Справочник.Прайс_лист.Товар,Справочник.Цены.Владелец;
3 dimm7310
 
16.04.12
13:24
(1) не в этом дело, в последние годы если и делал, то только на прямых запросах.
если переписывать на прямой запрос, то придется переделывать обработку группировки цен
4 andrewks
 
16.04.12
13:26
(3) соединение в 7-ке кривое. или смирись, или переделывай.

только я так и не понял, что ты хочешь изменить, может, и взлетит штатно, если объяснишь
5 dimm7310
 
16.04.12
13:26
нужно перебирая элементы справочника.Прайс_лист  получать значения цен в группировке второго уровня
6 dimm7310
 
16.04.12
15:55
up
7 Boroda
 
16.04.12
16:03
Сделай еще один запрос чисто по Справочник.Прайс_лист.Товар. Потом по этому запросу получи товар и его включи в предыдущий: рез = запрос.Получить(товар).
Если рез = 0 - значит  ецен нет, пропускаем вывод цен. Ну, как-то так...
8 andrewks
 
16.04.12
16:10
(5) ну, например, так:

    ТекстЗапроса = "//{{ЗАПРОС(ОтборЦен)

   |Период с ДатаОтчета по ДатаОтчета;    
   |Номенклатура    = Справочник.Прайс_лист.Товар,Справочник.Цены.Владелец;
   |Тип            = Справочник.Цены.ТипЦен;
   |Цена            = Справочник.Цены.Цена;
   |Единица        = Справочник.Цены.Единица;
   |Валюта            = Справочник.Цены.Валюта;
   |Функция ЦенаСумма    = Сумма(Цена);
   |Условие (ПустоеЗначение(Тип)=0);
   |Группировка Номенклатура Упорядочить по Номенклатура.Наименование;
   |Группировка Тип;
   |";//}}ЗАПРОС
9 dimm7310
 
17.04.12
10:22
пожалуй проще переписать на прямой запрос
10 Sserj
 
17.04.12
10:31
Наверно проще Цены запросом запихать в ТЗ и обходить уже ее как вторую группировку а первой запрос по прайс листу.
11 andrewks
 
17.04.12
11:08
(9) а чем не устроило (8)?
12 0xFFFFFF
 
17.04.12
11:10
самое прикольное "оценивать" задачи на 7.7, когда в ней уже не ковырял длительное время.
Думаешь, что сделаешь за полчаса - выходит пять :)
13 vladko
 
17.04.12
11:11
в (8) вполне рабочий код. Он отличается группировкой от (0), где конечно она была не правильна
Независимо от того, куда вы едете — это в гору и против ветра!