Имя: Пароль:
1C
1С v8
Как в запросе левого соединение выбрать только одно значение?
0 Shur1cIT
 
24.07.13
16:30
УПП иметься отчет затраты на выпуск (переделанный) строиться по регистру "ЗатратыНаВыпускПродукции" руководство захотело помимо затрат увидеть количество выпущенной продукции в этом отчете, я соответственно делаю левое соединение к регистру ВыпускПродукции соединяя Продукцией и серией, в результате выпуск кривой (сильно завышен) так как количество выпуска получается для каждой строки а потом схлопываеться вопрос как построить запрос чтобы количество из оборотного регистра не задваивалось, например как ограничить получения данных из регистра только в разрезе группировки организация подразделение продукция
1 palpetrovich
 
24.07.13
16:36
по-ходу напрашивается наоборот - запрос к регистру ВыпускПродукции с левым соединением к ЗатратыНаВыпускПродукции
2 IBTM
 
24.07.13
16:37
ща экстрасенсов позову...
3 Shur1cIT
 
24.07.13
16:38
да я понимаю так проще получаем продукцию а потом левым соединением затраты, но отчет накручен надо как-то так вытащить количество выпущенного
4 Shur1cIT
 
24.07.13
16:41
(2) полкчаем затраты левым соединением лезем регистр "ВыпускПродукции" и хватаем от туда сколько было выпущено, так вот этих выпущено он слишком много хватает например напротив каздой затраты присутствует выпуск который в группировке сверху схлопываеться
5 Defender aka LINN
 
24.07.13
16:44
Соединение наборов данных
6 Shur1cIT
 
24.07.13
16:45
(5) это как?
7 Defender aka LINN
 
24.07.13
16:46
(6) Точь-в-точь как у Хрусталевой написано
8 Shur1cIT
 
24.07.13
16:47
(7) а что у неё написано?
9 Desna
 
24.07.13
16:49
насколько я понял - это стандартный запрос курсов валют на дату
10 Shur1cIT
 
24.07.13
16:52
(9) нет курс на дату даже левое соединение не нужно тупо запрос к одному регистру с параметром дата и валюта
11 Shur1cIT
 
24.07.13
16:55
пробывал делать вместо СУММА МАКСИМУМ тоже лажа
12 olegves
 
24.07.13
17:10
(0) никак.
сначала сверни присоединяемую таблицу до одной строки и потом присоединяй
13 EvgeniuXP
 
24.07.13
17:12
фильтр? после левого пропиши ГДЕ и конкретное значение для левой таблицы - значение должно быть уникально во всей таблице.
14 Shur1cIT
 
24.07.13
17:26
(13) не получиться уникальное найти так как его нет вот картинка тоесть надо стобы 4.430 не суммировалась  http://s5.hostingkartinok.com/uploads/images/2013/07/29cc3a823731584754ce52ccb6921a74.jpg
15 viktor_vv
 
24.07.13
17:32
Как-то так

ТекстЗапроса = "
|Выбрать
|    Подзапрос.Продукция КАК Продукция,
|    Подзапрос.Затрата КАК Затрата,
|    Сумма(Подзапрос.КоличествоВыпуск) КАК КоличествоВыпуск,
|    Сумма(Подзапрос.КоличествоЗатрат) КАК КоличествоЗатрат,
|ИЗ
|(Выбрать
|    ТВыпускПродукция.Продукция КАК Продукция,
|    NUUL КАК Затрата,
|    ТВыпускПродукция.КоличествоВыпуск КАК КоличествоВыпуск,
|    0 КАК КоличествоЗатрат
|ИЗ
|    ТВыпускПродукция КАК ТВыпускПродукция
|
|Объединить ВСЕ
|
|Выбрать
|    ТЗатраты.Продукция ,
|    ТЗатраты.Затрата ,
|    0 КАК КоличествоВыпуск,
|    ТЗатраты.КоличествоЗатрат КАК КоличествоЗатрат
|ИЗ
|    ТЗатраты КАК ТЗатраты
|) КАК Подзапрос
|Сгруппировать ПО Подзапрос.Продукция , Подзапрос.Затрата
|";

Правда при выоде иерархически в выборке по материалам будет лишняя строка со значением Затрата = NULL.
16 Shur1cIT
 
24.07.13
17:32
можно ли какнибуть условие наложить первые 1 в разрезе номенклатуры тоесть если второй запрос с этойже наменклатурой будет из Левой части данные не получать
17 Shur1cIT
 
24.07.13
17:33
(15) ок спасибо изучаю
18 viktor_vv
 
24.07.13
17:47
Можно еще пронумеровать строки затрат в разрезе продукции.

Книга знаний: v8: Нумерация строк в запросе

Потом левым соединением и в Выбрать для количества продукции

Выбор КогдаТЗатрат.НомерСтроки = 1 Тогда Количество Иначе 0 Конец
Основная теорема систематики: Новые системы плодят новые проблемы.