Имя: Пароль:
1C
1С v8
Соединения в запросе
0 ColonelAp4u
 
21.11.17
16:19
Добрый день, подскажите пожалуйста как правильно сделать запрос, сижу туплю, есть документ "сборка" в нем 3 ТЧ
ТЧ1 - 1 строка  = Сборщик (Некий контр)
ТЧ2 - строки с заказами покупателей и с суммами
ТЧ3 - строки по услугам из заказов ТЧ2.
Если делаю запрос  ТЧ1 левое ТЧ2 ПО ссылке документа сборки выводит итог, каким соединением добавить ТЧ3? а то все перепробовал и он в итоге выводит слишком большие суммы.
1 1c-bs
 
21.11.17
16:26
Группировки в запросе имеются?
2 ColonelAp4u
 
21.11.17
16:28
(1) нет, надо?
3 Сти
 
21.11.17
16:30
А что нужно-то получить в результате запроса? Итог по суммам ТЧ2 и ТЧ3? Тогда объединять их надо, а не соединять.
4 lodger
 
21.11.17
16:31
(1) толку если у него СуммаВсего из ТЧ2 размножается на количество строк ТЧ3?
(0) ТЧ3 содержит суммы? или только 2?
5 ColonelAp4u
 
21.11.17
16:31
Если я делаю запрос ТЧ1 левое ТЧ2 грубо сумма товаров за месяц по документам сборки 4кк, если делаю ТЧ1 левое ТЧ3 за этот же период то сумма по услугам монтажа 400к, и в первом и во втором случае суммы верные, но как только пытаюсь сделать ТЧ1 левое ТЧ2 и ТЧ1 Левое ТЧ3 выходит полный капец.
6 ColonelAp4u
 
21.11.17
16:31
(4) содержит
7 ColonelAp4u
 
21.11.17
16:32
(3) щас попробую объеденить
8 lodger
 
21.11.17
16:35
простите за тупой вопрос, но зачем вам тч1 если там 1 строка?
9 Сти
 
21.11.17
16:36
(5) капец потому-что при таком соединении каждая строка ТЧ2 соединяется с каждой строкой ТЧ3. Если бы в ТЧ не 1 строка была, то еще и на нее бы перемножилось. Кстати, непонятно зачем ТЧ там, если всегда одна строка.
10 ColonelAp4u
 
21.11.17
16:38
(9) хз, док самописный, не моя разработка.
11 ColonelAp4u
 
21.11.17
16:38
Вот получился код запроса
ВЫБРАТЬ
    _СборкаСборщики.Ссылка КАК Док,
    _СборкаСборщики.Сборщик КАК Сборщик,
    1 КАК Сумма,
    2 КАК Сумма1
ИЗ
    Документ._Сборка.Сборщики КАК _СборкаСборщики
ГДЕ
    _СборкаСборщики.Ссылка.Проведен = ИСТИНА
    И _СборкаСборщики.Ссылка.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСобытий.Завершено)
    И _СборкаСборщики.Ссылка.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
    И _СборкаСборщики.Сборщик = &Сборщик
    И _СборкаСборщики.Ссылка.Организация = &Организация

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    _СборкаТовары.Ссылка,
    2,
    _СборкаТовары.Сумма,
    1
ИЗ
    Документ._Сборка.Товары КАК _СборкаТовары

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    _СборкаУслуги.Ссылка,
    2,
    1,
    _СборкаУслуги.Сумма
ИЗ
    Документ._Сборка.Услуги КАК _СборкаУслуги
ИТОГИ
    СУММА(Сумма),
    СУММА(Сумма1)
ПО
    Сборщик
12 ColonelAp4u
 
21.11.17
16:41
Что то подсказывает что не правильно я объединил.
13 ColonelAp4u
 
21.11.17
17:06
Щас сделал объединение без сумм, ТЧ 1 ссылка сборщик ТЧ2 Ссылка нулл ТЧ3 ссылка нулл. Весь геморой упирается в то что этот сборщик находится в отдельной ТЧ, которая ни как кроме как ссылкой на док не связана с остальными ТЧ.
14 dezss
 
21.11.17
17:16
(11) Сжечь еретика!!!!)))
И в первом и во втором объединении, делай левое к сборщику и сразу суммы выводи.
3-е объединение убей.
15 dezss
 
21.11.17
17:26
(14) + и в поля, где нечего суммировать пиши 0, а не 1 или 2....а то эти 1 или 2 просуммируют с твоими значениями.
16 perester
 
21.11.17
17:28
(0) можете написать примерный результат запроса? Не особо понятно зачем вообще тч сборщики в запросе
17 dezss
 
21.11.17
17:30
(16) по нему итоги строятся же...
18 ColonelAp4u
 
21.11.17
18:02
(14) Спасибо за совет, я честно говоря до этой идеи сам допетрил) но все же спс.
19 perester
 
21.11.17
18:12
тч сборщики на то и тч, что в нем может быть несколько сборщиков, тут по вопросу подходит перекрестное соединение, но в таком случае суммы неверно будут, скорее надо объединить тч2 и тч3, получить сборщиков и количество сборщиков, а потом соединить эти две таблицы в третью, которая покажет сборщика и суммы, поделенные на количество сборщиков, но и тут с определенной точки зрения неправильно потому что один сборщик может быть круче другого (18) помоему этот запрос не покажет что сборку делали несколько сборщиков
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший