Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / Создание вложенного запроса, Перечисление в запросе. / 3 сообщений из 3, страница 1 из 1
07.04.2013, 22:19
    #38216370
CTYDEHT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание вложенного запроса, Перечисление в запросе.
Здравствуйте, имеется вот такой небольшой цикл с 2 запросамм.
1. В цикле есть запрос который получает ДоговорыКонтрагентов, далее делает сравнение дат из ДоговораКонтрагента с значением из Регистра сведений. Подскажите можно ли как-то объединить эти 2 запроса в 1? Мне кажется можно, но вот только как это сделать не знаю.

Хочется избавиться от условия переместив его в запрос.
Код: vbnet
1.
Если ((Число(РПУ.ПервоеУведомление)=Число(Разность)) или (Число(РПУ.ВтороеУведомление)=Число(Разность)) или (Число(РПУ.ТретьеУведомление)=Число(Разность))) Тогда



2. В справочнике "ДоговораКонтрагентов " есть Статус тип Перечисление. Не могу понять почему не может произвести правильно сравнение. Элемент с этим значением все-равно как-то попадает в выборку, как-будто значение неправильно проверяется.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
	РПУ = РегистрыСведений.ПолучателиУведомления.Выбрать();
	Пока РПУ.Следующий() Цикл		
		
		НУ = Справочники.НеотправленныеУведомления;
		НУНаименование = Строка(РПУ.Пользователь) + "_" + Строка(РПУ.Организация)+ "_" + Строка(НачалоДня(ТекущаяДата()));
		НалНУНаименивания = НУ.НайтиПоНаименованию(НУНаименование);			
		Если НЕ НалНУНаименивания.Пустая() Тогда
			Продолжить;
		КонецЕсли;
			
		Если РПУ.ТипУведомления = Перечисления.ТипУведомления.Договоры Тогда
			
Запрос = Новый Запрос;
ТекстЗапроса ="
|ВЫБРАТЬ
|ДК.Наименование, ДК.Дата, ДК.Номер, ДК.СрокДействия, ДК.Статус КАК Статус,
|ДК.Владелец.Наименование КАК Контрагент, 
|ДК.с1_Ответственные.Наименование КАК Ответственный,
|ДК.с1_Подразделение.Наименование КАК Подразделение
|ИЗ 
|Справочник.ДоговорыКонтрагентов КАК ДК
|ГДЕ 
|ДК.Организация = &Организация И Статус <> Значение(Перечисление.с1_СтатусПроверки.ВыполненЗавершен) И ДК.с1_Бессрочный = Ложь
|";

Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("Организация", РПУ.Организация);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ РАЗНОСТЬДАТ(&Дата1, &Дата2, День) КАК Разность";
		Запрос.УстановитьПараметр("Дата1", ТекущаяДата());
		Запрос.УстановитьПараметр("Дата2", Выборка.СрокДействия);
		Результат = Запрос.Выполнить();
		Данные = Результат.Выбрать(); Данные.Следующий();
		Разность  = Данные.Разность;		
		Если (Число(Разность)<=0) Тогда // Просроченный договор
			Продолжить;
		КонецЕсли;
		
Если ((Число(РПУ.ПервоеУведомление)=Число(Разность)) или (Число(РПУ.ВтороеУведомление)=Число(Разность)) или (Число(РПУ.ТретьеУведомление)=Число(Разность))) Тогда
			СтрТабл = ТЗ.Добавить();
			СтрТабл.НаименованиеДоговора = Выборка.Наименование;
			СтрТабл.ДатаДоговора = Выборка.Дата;
			СтрТабл.НомерДоговора = Выборка.Номер;
			СтрТабл.Контрагент = Выборка.Контрагент;
			СтрТабл.Подразделение = Выборка.Подразделение;
			СтрТабл.Ответственный = Выборка.Ответственный;
			СтрТабл.КоличествоДнейДоОкончания = Разность;
		КонецЕсли;
КонецЦикла;
КонецЦикла;
...
Рейтинг: 0 / 0
07.04.2013, 22:28
    #38216372
CTYDEHT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание вложенного запроса, Перечисление в запросе.
С перечислением вопрос решил, а вот с запросом не могу((.
...
Рейтинг: 0 / 0
08.04.2013, 10:31
    #38216664
Программист 1с
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание вложенного запроса, Перечисление в запросе.
Выразить (Что-тоВЗАпросе Как Число(10,0))
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / Создание вложенного запроса, Перечисление в запросе. / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]