Имя: Пароль:
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), где конечно она была не правильна
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn