Вход | Регистрация

1С:Предприятие ::

Метки: 

Вопрос по соединению таблиц в СКД

↓ [Волшебник, 16.08.18 - 10:43]
Я
   maxim-sychov
 
15.08.18 - 17:58
Всем привет!
Стараюсь до последнего додумать сам, прежде чем писать.... но как вы поняли - не хватило ума)

Есть 2е Временные таблицы:
1.Оплаты
2.Заказы покупателей

Нужно связать их по заказу так что бы понимать какие заказы были оплачены за выбранный период.
Вроде ничего сложного... условие по периоду устанавливаю на таблицу оплат, т.к. к примеру в августе могли оплатить заказ за июнь.
Таблицу заказов делаю для того что бы можно было вывести содержимое самого заказа.

Так вот собственно вопрос:
При соединении (левом) к ТБОплат Цепляю ТБ Заказов
И на выходе у меня получаются только те оплаты, в которых заказ находится между указанным периодом! Хотя парматры периода в виртуальной таблице ставлю только на оплаты....

По моим ожиданиям должно было выбрать все оплаты за указанный период и подцепить все заказы(с содержимым) из ТБ заказов независимо от того в какой период этот заказ был.... а нет(((
 
 
   Cool_Profi
 
1 - 15.08.18 - 18:00
Запрос мы должны телепатнуть?
   maxim-sychov
 
2 - 15.08.18 - 18:01
ВЫБРАТЬ
    ВзаиморасчетыСКонтрагентамиОбороты.Сделка КАК Заказ,
    СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрПриход) КАК СуммаУпрПриход,
    СУММА(ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрРасход) КАК СуммаУпрРасход,
    ВзаиморасчетыСКонтрагентамиОбороты.Регистратор
ПОМЕСТИТЬ Взаиморасчеты
ИЗ
    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ВзаиморасчетыСКонтрагентамиОбороты
ГДЕ
    ВзаиморасчетыСКонтрагентамиОбороты.Сделка ССЫЛКА Документ.ЗаказПокупателя
    И ВзаиморасчетыСКонтрагентамиОбороты.СуммаУпрРасход > 0

СГРУППИРОВАТЬ ПО
    ВзаиморасчетыСКонтрагентамиОбороты.Сделка,
    ВзаиморасчетыСКонтрагентамиОбороты.Регистратор
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    ЗаказыПокупателейОбороты.ЗаказПокупателя,
    ЗаказыПокупателейОбороты.Номенклатура,
    ЗаказыПокупателейОбороты.Цена КАК Цена,
    ЗаказыПокупателейОбороты.ЕдиницаИзмерения,
    СУММА(ЗаказыПокупателейОбороты.КоличествоОборот) КАК КоличествоОборот,
    СУММА(ЗаказыПокупателейОбороты.КоличествоПриход) КАК КоличествоПриход,
    СУММА(ЗаказыПокупателейОбороты.КоличествоРасход) КАК КоличествоРасход,
    СУММА(ЗаказыПокупателейОбороты.СуммаВзаиморасчетовОборот) КАК СуммаВзаиморасчетовОборот,
    СУММА(ЗаказыПокупателейОбороты.СуммаВзаиморасчетовПриход) КАК СуммаВзаиморасчетовПриход,
    СУММА(ЗаказыПокупателейОбороты.СуммаВзаиморасчетовРасход) КАК СуммаВзаиморасчетовРасход,
    СУММА(ЗаказыПокупателейОбороты.СуммаУпрОборот) КАК СуммаУпрОборот,
    СУММА(ЗаказыПокупателейОбороты.СуммаУпрПриход) КАК СуммаУпрПриход,
    СУММА(ЗаказыПокупателейОбороты.СуммаУпрРасход) КАК СуммаУпрРасход,
    ЗаказыПокупателейОбороты.ЗаказПокупателя.Подразделение КАК Подразделение,
    ЗаказыПокупателейОбороты.ЗаказПокупателя.Ответственный КАК Ответственный
ПОМЕСТИТЬ Заказы
ИЗ
    РегистрНакопления.ЗаказыПокупателей.Обороты(, , Период, ) КАК ЗаказыПокупателейОбороты

СГРУППИРОВАТЬ ПО
    ЗаказыПокупателейОбороты.ЗаказПокупателя,
    ЗаказыПокупателейОбороты.Номенклатура,
    ЗаказыПокупателейОбороты.ЕдиницаИзмерения,
    ЗаказыПокупателейОбороты.ЗаказПокупателя.Подразделение,
    ЗаказыПокупателейОбороты.ЗаказПокупателя.Ответственный,
    ЗаказыПокупателейОбороты.Цена
;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
    МАКСИМУМ(Взаиморасчеты.СуммаУпрПриход) КАК СуммаУпрПриход,
    МАКСИМУМ(Взаиморасчеты.СуммаУпрРасход) КАК ПоступилоДенег,
    Заказы.Номенклатура,
    Заказы.Цена,
    Заказы.ЕдиницаИзмерения,
    Заказы.КоличествоПриход КАК Количество,
    Заказы.СуммаУпрПриход КАК Сумма,
    Заказы.ЗаказПокупателя.Контрагент КАК Контрагент,
    Заказы.Подразделение,
    Заказы.Ответственный,
    Заказы.ЗаказПокупателя,
    Взаиморасчеты.Регистратор
ИЗ
    Взаиморасчеты КАК Взаиморасчеты
        ЛЕВОЕ СОЕДИНЕНИЕ Заказы КАК Заказы
        ПО Взаиморасчеты.Заказ.Ссылка = Заказы.ЗаказПокупателя.Ссылка

СГРУППИРОВАТЬ ПО
    Заказы.Номенклатура,
    Заказы.Цена,
    Заказы.ЕдиницаИзмерения,
    Заказы.КоличествоПриход,
    Заказы.СуммаУпрПриход,
    Заказы.ЗаказПокупателя.Контрагент,
    Заказы.Подразделение,
    Заказы.Ответственный,
    Заказы.ЗаказПокупателя,
    Взаиморасчеты.Регистратор,
    Взаиморасчеты.Заказ
   maxim-sychov
 
3 - 15.08.18 - 18:02
запрос содержит много лишних данных, т.к. уже сто раз крутил/перделывал и надоело отсеивать одно и тоже...
   MCh
 
4 - 15.08.18 - 18:04
Там где нужно за весь период ставь параметры от 01.01.0001 до 01.01.3999 но это неправильно.
   Cool_Profi
 
5 - 15.08.18 - 18:04
Выбирай из заказов не по вирттаблице, а по физической...
Скд, ска, умная...
   МихаилМ
 
6 - 15.08.18 - 18:05
(0)причем тут скд ?
   youalex
 
7 - 15.08.18 - 18:05
задай разные параметры (имена чтобы различались) для вирт. таблиц (если это они)
   maxim-sychov
 
8 - 15.08.18 - 18:06
(4) даже если и так, я запрос в консоли запускаю - смотрю две временные ТБ на содержимое - все содержимое есть!
А вот когда при связи пытаюсь вывести - то отсеивается.
   maxim-sychov
 
9 - 15.08.18 - 18:07
(6) отчет пишется с помощью СКД...
Это сильно изменило постановку вопроса?
   youalex
 
10 - 15.08.18 - 18:08
вангую, что у тебя параметры НачалоПериода и КонецПериода, созданные автоматом (при включенном автозаполнении полей) - действуют на обе таблицы оборотов. Тебе нужно их разделить..
 
 Рекламное место пустует
   maxim-sychov
 
11 - 15.08.18 - 18:10
(10) тоже думал об этом, но почему тогда этот же запрос запускаю в консоли и вижу все заказы, которые и должны быть?

Обе Временные таблицы содержат те данные, на которые я рассчитываю. А вот после связи....
   maxim-sychov
 
12 - 15.08.18 - 20:12
Подскажите направление....куда копать?
   Chameleon1980
 
13 - 15.08.18 - 21:15
отборы используются потом перед формированием?
может соединение превратилось во внутреннее?
   hhhh
 
14 - 16.08.18 - 08:18
(12) направление в (10), скд ставит свои даты в начало и конец периода. Если уж не верите, как фома неверующий, то остается только головой о стенку тогда биться. Вдруг это поможет.

походу надо в фигуроные скобки

ИЗ
    РегистрНакопления.ЗаказыПокупателей.Обороты({ДатаНачЗаказы},{ДатаКонЗаказы} , Период, ) КАК ЗаказыПокупателейОбороты
   Deon
 
15 - 16.08.18 - 08:53
(14) Перед битвой со стеной лучше посмотреть в консоли системы компоновки данных, какой запрос сгенерировался СКД
   maxim-sychov
 
16 - 16.08.18 - 10:42
(14) Работает! Спасибо огромнейшое!

Странно конечно но я пробовал указать не другие параметры в этом месте а ДобавитьКДате(&НачалоПериода,год,-1) и ДобавитьКДате(&НачалоПериода,год,1) и это не прокатило.
   maxim-sychov
 
17 - 16.08.18 - 10:42
Всем еще раз спасибо. Тему можно закрыть.


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует