Имя: Пароль:
1C
1С v8
Соединение 2 таблиц в запросе
,
0 Nenaviwu1c20
 
17.09.12
13:31
есть код
   Запрос = Новый Запрос;
   Запрос.Текст =
       "ВЫБРАТЬ
       |    ХозрасчетныйОстаткиИОбороты.Субконто1,
       |    ХозрасчетныйОборотыДтКт.СуммаОборот,
       |    ХозрасчетныйОстаткиИОбороты.СуммаОборотДт,
       |    Контрагенты.Ссылка
       |ИЗ
       |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , , , ) КАК ХозрасчетныйОстаткиИОбороты
       |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
       |        ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = Контрагенты.Ссылка
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНач, &ДатаКон, , , , , , ) КАК ХозрасчетныйОборотыДтКт
       |        ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ХозрасчетныйОборотыДтКт.СубконтоДт1
       |ГДЕ
       |    ХозрасчетныйОстаткиИОбороты.Счет В(&Счет)
       |    И ХозрасчетныйОборотыДтКт.СчетКт В(&СчетКт)
       |    И ХозрасчетныйОборотыДтКт.СчетДт В(&Счет)";

   Запрос.УстановитьПараметр("ДатаКон", КонецМесяца(МесяцОборот));
   Запрос.УстановитьПараметр("ДатаНач", НачалоМесяца(МесяцОборот));
   //Запрос.УстановитьПараметр("Организация", Организация);
   МассивСчетов = Новый Массив;
   МассивСчетов.Добавить(ПланыСчетов.Хозрасчетный.РасчетыСПокупателямиИЗаказчиками);
   СписокСчетов = ЗаполнитьСписокВыбораСчетовДенежныхСредств(МассивСчетов);
   Запрос.УстановитьПараметр("Счет", СписокСчетов);
   СчетКт = Новый Массив;
   СчетКт.Добавить(ПланыСчетов.Хозрасчетный.Выбытие_ОС);
   СписокСчетовКт = ЗаполнитьСписокВыбораСчетовДенежныхСредств(СчетКт);
   Запрос.УстановитьПараметр("СчетКт", СписокСчетовКт);    
   
   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();
Проблема в том что он собирает только те значения которые есть в обоих таблицах(в данном случае контрагент).Не хотел писать два запроса ибо будет сильно программу грузить запрос в цикле.Нужно сделать так чтобы соединялись две таблицы при этом брались значения по первой и если есть по второй.Есть ли другое решение кроме как ОБЪЕДЕНИТЬ ВСЕ?
1 plastinin
 
17.09.12
13:32
Тут вообще клиника...i am sorry...
2 Nenaviwu1c20
 
17.09.12
13:33
Заполнить список счетов -функция заполняющая по счету список по иерархии
3 Nenaviwu1c20
 
17.09.12
13:34
извените клиент попросил увидеть реализации)))
4 Kreont
 
17.09.12
13:34
(0) Зачем так столько Левых соединений :)
5 Kashemir
 
17.09.12
13:34
Жесть жестяная
6 Nenaviwu1c20
 
17.09.12
13:34
ну не силен в запросах .Советуете по внутреннему дать?
7 Ненавижу 1С
 
гуру
17.09.12
13:35
(3) франч что ли?
8 Ненавижу 1С
 
гуру
17.09.12
13:35
(6) причем без вазелина
9 Nenaviwu1c20
 
17.09.12
13:35
что советуете перейти на левое?
10 Kreont
 
17.09.12
13:36
(0) Давай хоть изначальную постановку что должно быть на выходе?
11 Ненавижу 1С
 
гуру
17.09.12
13:36
(9) сменить профессию
12 PuhUfa
 
17.09.12
13:36
(9) лучше просто перейти... в грузчики там... -)
13 Nenaviwu1c20
 
17.09.12
13:36
на выходе реализации по 62 счету при этом из них должно вычитаться выбитие ОС если оно есть
14 Nenaviwu1c20
 
17.09.12
13:37
то бишь 47-62 проводки должны вычитаться
15 Nenaviwu1c20
 
17.09.12
13:38
все я сам понял как решить))
16 GLazNik
 
17.09.12
13:38
(0) RTFM
17 GLazNik
 
17.09.12
13:39
(15) с учетом того, что в (0) то до корректного решения еще очень далеко
18 plastinin
 
17.09.12
13:39
(15) Круасанчик...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан