Имя: Пароль:
1C
1С v8
Как сделать запрос из двух регистров.
,
0 Vladimir2503
 
26.03.13
22:43
Здравствуйте!!!
Помогите сделать запрос из 2х регистров.
Нужно как то обьединить их,не могу сообразить как!!!



Процедура КнопкаВыполнитьНажатие(Кнопка)
   
Запрос = Новый Запрос;
ТекстЗапроса =
   "ВЫБРАТЬ
   
   |    Контрагенты.Ссылка КАК Дачник,
   |   Контрагенты.Наименование КАК ФИО,
   |    УчасткиСведения.Участок.Улица КАК Улица,
   |    УчасткиСведения.Участок.НомерУчастка КАК Номер,
   |    УчасткиСведения.Участок.Площадь КАК Площадь,
   |    УчасткиСведения.Участок.Общество КАК Общество
   |ИЗ
   |    Справочник.Контрагенты КАК Контрагенты
   |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.УчасткиСведения КАК УчасткиСведения
   |    ПО Контрагенты.Ссылка = УчасткиСведения.Контрагент
   |ГДЕ
   |    Контрагенты.Родитель = &Родитель";
   Если НЕ ВыборУлиц.Пустая() Тогда
       ТекстЗапроса = ТекстЗапроса + "
   |    И УчасткиСведения.Участок.Улица = &Улица";
   КонецЕсли;
   ТекстЗапроса = ТекстЗапроса + "
   |
   |УПОРЯДОЧИТЬ ПО
   |    ФИО";
     
   
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Родитель",Справочники.Контрагенты.НайтиПоКоду("000000052"));
Если НЕ ВыборУлиц.Пустая() Тогда
   Запрос.УстановитьПараметр("Улица",ВыборУлиц);
КонецЕсли;
ТабличнаяЧасть1.Загрузить(Запрос.Выполнить().Выгрузить());



КонецПроцедуры

и второй регистр бухгалтерии

ВЫБРАТЬ
   ХозрасчетныйОстаткиИОбороты.Счет,
   ХозрасчетныйОстаткиИОбороты.Субконто1 как Контрагенты,
   ХозрасчетныйОстаткиИОбороты.Организация,
   ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт,
   ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт,
   ХозрасчетныйОстаткиИОбороты.СуммаОборотДт,
   ХозрасчетныйОстаткиИОбороты.СуммаОборотКт,
   ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт,
   ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты КАК ХозрасчетныйОстаткиИОбороты
1 H A D G E H O G s
 
26.03.13
22:44
Если НЕ ВыборУлиц.Пустая() Тогда
       ТекстЗапроса = ТекстЗапроса + "
   |    И УчасткиСведения.Участок.Улица = &Улица";
   КонецЕсли;


Плохо.

Сделать единным запросом, пустоту улиц передать папаметром.
2 H A D G E H O G s
 
26.03.13
22:45
Нужно как то обьединить их,не могу сообразить как!!!


Ну ты же в 1 запросе как то объединил
3 Vladimir2503
 
26.03.13
22:51
H A D G E H O G s
Я дорабатываю уже существующую обработку,которую написали до меня.
4 zladenuw
 
26.03.13
22:56
что надо в итоге ?
По первому запросу замени условие в коде на условие в запросе
ВЫБОР
   КОГДА &Улица = ЗНАЧЕНИЕ(справочник.Улица .ПустаяСсылка)
       ТОГДА ИСТИНА
   ИНАЧЕ Влож.Улица = &Улица
КОНЕЦ
5 H A D G E H O G s
 
26.03.13
22:57
(3) Все так говорят.
6 zladenuw
 
26.03.13
22:59
ну если тупо смотреть в твои запросы. то соединение между ними будет по контрагенту. а дальше все зависит, что тебе надо. угадывать можно долго
7 kiruha
 
26.03.13
22:59
(4)
Что это ?
8 H A D G E H O G s
 
26.03.13
23:01
(7) Это кусок ЧАСТИЧНО правильно написанного запроса.
9 H A D G E H O G s
 
26.03.13
23:03
(7) Просто zladenuw не достаточно опытен и не знает правило программиста
"на всякий случай"

Если Значение=Истина Тогда
Ситуация=1;
ИначеЕсли Значение=Ложь Тогда
Ситуация=2;
Иначе
Ситуация=3;
КонецЕсли;


Так и тут - ВыборУлиц - необязательно ссылка на справочник Улицы.
10 Vladimir2503
 
26.03.13
23:09
В итоге мне надо чтоб выбирал остатки и обороты по контрагентам по 62 счету

http://www.fotolink.su/v.php?id=4055d8b7faea352c35a5702a72aa40d3
11 zladenuw
 
26.03.13
23:16
(9) всегда есть 3 варианта ? :)
12 zladenuw
 
26.03.13
23:17
(10) если судить по форме. то достаточно в запросе указать так как я написал, тип ведь ссылка. если было бы составной тип, то да согласен на (9)
13 zladenuw
 
26.03.13
23:19
(10) давай делай запрос и показывай.
14 Vladimir2503
 
26.03.13
23:26
zladenuw
Вы наверное не поняли меня.
Мне нужно как то первый и второй запросы обьединить и выбрать по 62 счету по контрагентам
15 zladenuw
 
26.03.13
23:30
(14) я то тебя понял. ты не понял.
ну так. делаешь первый запрос вложенным или пакетным. второй запрос по бух регистру где отбор по счету и связь по субконто контрагента. ну и группировка.
и ты получаешь 1 таблицу для вывода
16 zladenuw
 
26.03.13
23:35
типа так.
думай.

ВЫБРАТЬ
   Контрагенты.Ссылка,
   КонтактнаяИнформация.Представление
ПОМЕСТИТЬ ТЗ
ИЗ
   Справочник.Контрагенты КАК Контрагенты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
       ПО Контрагенты.Ссылка = КонтактнаяИнформация.Объект
ГДЕ
   Контрагенты.Ссылка = &Ссылка
   И КонтактнаяИнформация.Тип = &Тип
   И КонтактнаяИнформация.Вид = &Вид
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ТЗ.Ссылка,
   СУММА(ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
   СУММА(ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток,
   СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборот) КАК СуммаОборот
ИЗ
   ТЗ КАК ТЗ
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&p1, &p2, , , Счет = &счет, , ) КАК ХозрасчетныйОстаткиИОбороты
       ПО ТЗ.Ссылка = ХозрасчетныйОстаткиИОбороты.Субконто1

СГРУППИРОВАТЬ ПО
   ТЗ.Ссылка
17 Vladimir2503
 
26.03.13
23:39
zladenuw
спасибо завтра попробую сделать.
Ошибка? Это не ошибка, это системная функция.