Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 12:15

объединение двух запросов..

Автор Андрей Щ, 05 июн 2013, 15:14

0 Пользователей и 1 гость просматривают эту тему.

Андрей Щ

как правильно объединить два запроса?

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

Запрос.УстановитьПараметр("ДатаОтчета", ДатаОтчета);
Запрос.УстановитьПараметр("ТабНом", tabNum);
Запрос.УстановитьПараметр("НулеваяДата", '00010101');
Статус =tabNum+"Не работает";
Результат = Запрос.Выполнить();                         
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий()Цикл
Если (ВыборкаДетальныеЗаписи.Сотрудник.ДатаУвольнения >= ДатаОтчета) ИЛИ (ВыборкаДетальныеЗаписи.Сотрудник.ДатаУвольнения = '00010101') Тогда
Если ВыборкаДетальныеЗаписи.Поле1 = null Тогда
Статус =tabNum+"Работает";
Иначе

temp = ВыборкаДетальныеЗаписи.Поле1;
Статус =tabNum+Строка(temp);
КонецЕсли;

КонецЕсли;
КонецЦикла;
Возврат  Статус



2)

ДатаОтчета = ТекущаяДата();
dataType = ФабрикаXDTO.Тип("http://www.sample-package.org", "Getalldata");
rowType = ФабрикаXDTO.Тип("http://www.sample-package.org", "Getallrow");
data = ФабрикаXDTO.Создать(dataType);

//списокСотрудников="<a>";
Запрос = Новый Запрос;
Запрос.Текст =     
  "ВЫБРАТЬ
|
| РаботникиОрганизацийСрезПоследних.Должность.Наименование КАК Долж,
| РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации.Наименование КАК Подразд,
| РаботникиОрганизацийСрезПоследних.Сотрудник.Наименование КАК ФИО
|     ИЗ
| РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних";


Результат = Запрос.Выполнить().Выбрать();
//Выборка = Результат.Выбрать()

// Пока Результат.Следующий() Цикл
//списокСотрудников=списокСотрудников+"|"+сокрЛП(Выборка.Должн)+"|"+сокрЛП(Выборка.Подразд)+"|"+сокрЛП(Выборка.ФИО);
// КонецЦикла;

Пока Результат.Следующий() Цикл
item = фабрикаXDTO.Создать(rowType);
item.fio = Строка(Результат.ФИО);
item.dolgnost = Строка(Результат.Долж);
item.podrazdelenie = Строка(Результат.Подразд);
//item.sostoyanie = Строка(Результат.Подразд);
data.items.Добавить(item);

КонецЦикла;



//списокСотрудников=списокСотрудников+"</a>";
возврат data


MuI_I_Ika

А каким образом вы хотите их обединить? ЧТо должно получиться в результате?

Теги: запросы  

Похожие темы (5)

Рейтинг@Mail.ru

Поиск