Имя: Пароль:
1C
1С v8
В запросе присоединить РС к РН СКД
,
0 Fuas4
 
15.11.13
12:35
Доброго времени суток, уважаемые. Есть запрос, который получает данные из РН (остатки). К нему хочу присоединить срез последних цен номенклатуры по нескольким типам цен. Соединяю мой РН с ценами по номенклатуре и получаю на каждый тип цен свою запись, соответственно, если остаток был 2, а типов цен 3, то отчет мне показывает остаток 6. Как сделать, чтобы было по прежнему 2?
1 Поросенок Петр
 
15.11.13
12:37
Для начала понять как это будет выглядеть, то что пытаешься сделать.
2 vicof
 
15.11.13
12:37
как соединяешь?
3 Fuas4
 
15.11.13
12:39
(2)к остаткам левым соединением срез последних цен
(1) Я понимаю, как это должно выглядеть
4 Fuas4
 
15.11.13
12:39
(2) номенклатура = номенклатура
5 mikecool
 
15.11.13
12:41
бери максимум(остаток)
6 vicof
 
15.11.13
12:42
(0) Собственно,а зачем по нескольким типам цен?
7 anaed
 
15.11.13
12:44
(4) одно соединение с РС?
8 Artful Den
 
15.11.13
12:45
(0) ну сделай отдельное левое соединение по каждому типу цен
9 Fuas4
 
15.11.13
12:50
(8) Их может быть неограниченное количество
(7) да
(6) так надо :)
(5) Да, так работает, если не делать группировку по иерархии номенклатуры. А если с иерархией?
10 Fuas4
 
15.11.13
12:55
А еще у меня к остаткам присоединены продажи.Обороты. И вот по ним "максимум" не катит даже без иерархии.
11 Dzenn
 
гуру
15.11.13
12:58
Я бы сделал так:



Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
|    Розница.Номенклатура,
|    Розница.Цена
|ПОМЕСТИТЬ Розница
|ИЗ
|    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК Розница
|ГДЕ
|    Розница.ВидЦены = &Розница
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    Опт.Номенклатура,
|    Опт.Цена
|ПОМЕСТИТЬ Опт
|ИЗ
|    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК Опт
|ГДЕ
|    Опт.ВидЦены = &Опт
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    Дистрибьютор.Номенклатура,
|    Дистрибьютор.Цена
|ПОМЕСТИТЬ Дистрибьютор
|ИЗ
|    РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК Дистрибьютор
|ГДЕ
|    Дистрибьютор.ВидЦены = &Дистрибьютор
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
|    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
|    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Остаток,
|    Розница.Цена КАК Розница,
|    Опт.Цена КАК Опт,
|    Дистрибьютор.Цена КАК Дистрибьютор
|ИЗ
|    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
|        ЛЕВОЕ СОЕДИНЕНИЕ Розница КАК Розница
|        ПО ТоварыНаСкладахОстатки.Номенклатура = Розница.Номенклатура
|        ЛЕВОЕ СОЕДИНЕНИЕ Опт КАК Опт
|        ПО ТоварыНаСкладахОстатки.Номенклатура = Опт.Номенклатура
|        ЛЕВОЕ СОЕДИНЕНИЕ Дистрибьютор КАК Дистрибьютор
|        ПО ТоварыНаСкладахОстатки.Номенклатура = Дистрибьютор.Номенклатура"


12 SUA
 
15.11.13
12:58
в скд можно 2й источник данных выделить, вместо соединения запросов
или срез цен характеристиками вынести
13 Fuas4
 
15.11.13
13:02
(11) не, под каждый новый тип цен запрос дописывать  не вариант
(12) Сейчас если с ресурсами попробую поиграться. Если не взлетит - буду характеристики смотреть
14 vicof
 
15.11.13
13:03
(13) Программно создавай наборы, в зависимости от количества типов цен
15 Fuas4
 
15.11.13
13:06
(14) Да я хотел без программирования запилить
16 vicof
 
15.11.13
13:07
(15) Да там все легко и просто. Не больше 200 строчек кода.
17 anaed
 
15.11.13
13:09
(15) соединяй РС с РН, а не наоборот
18 Fuas4
 
15.11.13
13:11
(17) ТОгда я выведу всю номенклатуру у которой есть цена. Мне же надо все остатки и/или продажи и цены, которые есть по этим позициям
19 anaed
 
15.11.13
13:13
(18) не обязательно с РС получать все цены
20 Fuas4
 
15.11.13
13:16
(19) Ну и как мне соединить РС с РН, если я выбираю несколько типов цен? все равно же я получу из РС столько записей, сколько типов цен? или нет?
21 Fuas4
 
15.11.13
13:27
В общем-то, меня уже все устраивает, кроме оборотов продаж (если одно подразделение продало 2 товара, а другое 1, то в итоги мне попадает Максимум(СтоимостьОборот), т.е. 2. Бокал вина тому господину, который знает, как в ресурсе написать Сумма(Максимум(СтоимостьОборот)) для общих итогов. Пока пишет:  использование вложенных агрегатных функций не допускается
22 viktor_vv
 
15.11.13
13:33
Сверху еще один Выбрать накрутить, и там уже Сумма(ПолеИЗПозапросаСМаксимум)
23 viktor_vv
 
15.11.13
13:34
(22)+ А, тьфу ты, про Итоги не увидел.