powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Создание вложенного запроса, Перечисление в запросе.
3 сообщений из 3, страница 1 из 1
Создание вложенного запроса, Перечисление в запросе.
    #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
Создание вложенного запроса, Перечисление в запросе.
    #38216372
CTYDEHT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С перечислением вопрос решил, а вот с запросом не могу((.
...
Рейтинг: 0 / 0
Создание вложенного запроса, Перечисление в запросе.
    #38216664
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выразить (Что-тоВЗАпросе Как Число(10,0))
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Создание вложенного запроса, Перечисление в запросе.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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