Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   помогите с алгоритмом в запросе. (http://forums.kuban.ru/f1040/pomogite_s_algoritmom_v_zaprose-2640392.html)

Antidot 23.05.2012 15:17

помогите с алгоритмом в запросе.
 
здравствуйте.
в программе:
контрагенту №1 выдали кредит 19.01.2012 на год.
контрагенту №2 выдали кредит 05.04.2012 на год.
есть регистр сведений (непериодический) подчинен регистратору. Регистратор: документ.ВыдачаКредита.
Измерение "Контрагент",
Ресурс "Выплачен".

Нужно запросом получить список контрагентов, которым через неделю нужно кредит гасить.
т.е. при запуске программы 15.01.2013 года, нужно чтобы высвечивалось сообщение (Контрагенту №1 через 5 дней платить кредит).
Если запустить программу 16.01.2013 года, то сообщение: Контрагенту №1 через 4 дня платить кредит.
Тоже самое и с другим контрагентом, при запуске программы, начиная с 1 апреля 2013 года, чтобы выходило сообщение "Контрагенту №2 через 5 дней платить кредит".
и желательно чтобы это сообщение выходило каждый год.
может кто подскажет с запросом?

Antidot 23.05.2012 15:24

+(0). Образно говоря, представим что есть алгоритм, который каждый год напоминает что у сотрудника сегодня день рождение:
ТД_День = День(ТекущаяДата());
ТД_Месяц = Месяц(ТекущаяДата());

//Создадим пустой массив
Массив = Новый Массив;
Выборка = Справочники.ФизическиеЛица.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Продолжить;
КонецЕсли;

ДР_День = День(Выборка.ДатаРождения);
ДР_Месяц = Месяц(Выборка.ДатаРождения);

Если ДР_Месяц = ТД_Месяц И ДР_День = ТД_День Тогда
//Добавим новый элемент в массив
Массив.Добавить(Выборка.Наименование);
КонецЕсли;
КонецЦикла;

Возврат Массив;
Нужно это же самое получить запросом.
подскажите пожалуйста.

Uho 23.05.2012 15:30

1-Antidot > в ЗУПе в напоминалках посмотри

z1x1x 24.05.2012 11:51

Для дней рождений запрос будет такой:
ВЫБРАТЬ
ВложенныйЗапрос.ФизЛицо,
ВложенныйЗапрос.ДеньРождения,
ВложенныйЗапрос.Разность
ИЗ
(ВЫБРАТЬ
ФизическиеЛица.Ссылка КАК ФизЛицо,
ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, ГОД, ГОД(&ВыбДата) - ГОД(ФизическиеЛица.ДатаРождения)) КАК ДеньРождения,
ФизическиеЛица.ДатаРождения КАК ДатаРождения,
РАЗНОСТЬДАТ(&ВыбДата, ДОБАВИТЬКДАТЕ(ФизическиеЛица.ДатаРождения, ГОД, ГОД(&ВыбДата) - ГОД(ФизическиеЛица.ДатаРождения)), ДЕНЬ) КАК Разность
ИЗ
Справочник.ФизическиеЛица КАК ФизическиеЛица) КАК ВложенныйЗапрос
ГДЕ
ВложенныйЗапрос.Разность МЕЖДУ 0 И 5


Текущее время: 16:29. Часовой пояс GMT +3.