|
как в запросе поставить в условие проверку на текущую дату, без установки параметра? | ☑ | ||
---|---|---|---|---|
0
23th
23.08.22
✎
09:30
|
Например у меня условие
КадроваяИсторияСотрудниковСрезПоследних.ДействуетДо <= &Дата Но тогда надо писать Запрос.УстановитьПараметр("Дата", ТекущаяДата()); А нужно, чтобы не было установки параметра, и параметр прямо в запросе прописыался: КадроваяИсторияСотрудниковСрезПоследних.ДействуетДо <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) Как это было бы проверка на пустую дату Может быть можно как то написать эту самую без установки параметра? |
|||
1
23th
23.08.22
✎
09:30
|
Как бы получается условие на дату формирования самого запроса
|
|||
2
Kassern
23.08.22
✎
09:33
|
(0) Зачем все это? Чем вас параметр не устроил? В СКД можно значении параметра прописать ТекущаяДата()
|
|||
3
MaQo
23.08.22
✎
09:33
|
| КадроваяИсторияСотрудниковСрезПоследних.ДействуетДо <=" + Дата + "
| Дальнейший запрос |
|||
4
MaQo
23.08.22
✎
09:34
|
(3) хотя это нарушение стандартов
|
|||
5
Kassern
23.08.22
✎
09:34
|
(3) В этом случае "Дата", так же параметр
|
|||
6
Kassern
23.08.22
✎
09:35
|
В общем, штатной нет функции в запросе 1с, чтобы явно указать текущую дату.
|
|||
7
СеменовСемен
23.08.22
✎
09:35
|
почему такая нелюбовь к параметрам?
|
|||
8
Timon1405
23.08.22
✎
09:36
|
(2) +1. что это за запрос без параметров(сейчас будет сказка что он в алгоритме/конвертации/макете) и где гарантия что в будущем при изменении логики его использования они не понадобятся?
|
|||
9
Kassern
23.08.22
✎
09:36
|
либо заменяете текст как в (3), либо указываете УстановитьПараметр, либо юзаете СКД и там выражение.
|
|||
10
23th
23.08.22
✎
09:45
|
(7) Да потому что этот запрос как текст из внешней программы где даже близко нет возможности установить параметр.
По сути это ДЛЛ какая-то. Может как то надо разобртаься и найти это место... Может это обработка... Я сам не видел в глаза эту программу. Мне сказали делай запрос без параметров и все. |
|||
11
lodger
23.08.22
✎
09:47
|
(10) а нельзя просто пнуть экспортную процедуру из общего модуля? а в ней хоть чо пиши на 1се.
|
|||
12
Ryzeman
23.08.22
✎
09:49
|
(10) У тебя запрос где выполняется? Если это не 1сный запрос, то тебе надо знать куда и где он будет выполняться. В Transact-SQL есть GetDate() например:
SELECT CAST( GETDATE() AS Date ) Если же у тебя запрос на 1с, то нет НИ ОДНОЙ причиные не использовать параметр. |
|||
13
СеменовСемен
23.08.22
✎
09:50
|
(10) тогда датавремя(х,х,х) передавай в тексте
|
|||
14
Dmitrii
гуру
23.08.22
✎
10:07
|
(10) >> Мне сказали делай запрос...
Я что-то не пойму. Текст запроса ты сам составляешь или всё таки он приходит из внешнего источника? Если сам составляешь текст запроса, значит можешь его корректировать. И тогда подходит вариант (3) с подменой части текста запроса на что-то типа "ДАТАВРЕМЯ(2022,8,23)". Все альтернативы озвучены в (9). Либо брать дату из каких-то других таблиц. Например из последней записи в регистре сведений КурсыВалют. Только помнить, что курсы могут устанавливаться не на каждый день и, например, на выходные или праздничные дни записи не будет. Может в твоей конфигурации есть ещё какие-нибудь регистры, куда обязательно ежедневно делаются записи. |
|||
15
СеменовСемен
23.08.22
✎
10:09
|
(14) таки как раз курсы на каждый день в регистре
|
|||
16
Dmitrii
гуру
23.08.22
✎
10:15
|
(15) Возможно. Мне почему-то казалось, что записи делаются только на дни установки курса ЦБ. Могу ошибаться.
Тогда остаётся только риск, что курсы не были загружены. |
|||
17
23th
23.08.22
✎
10:23
|
(16) КУрсов нет так как это наш любимый и ненаглядный ЗУП 3
|
|||
18
23th
23.08.22
✎
10:24
|
Единственное что придумать константу, которая при начале работы системы будет каждый раз устанавливаться тем человеком который зуп открывает...
|
|||
19
23th
23.08.22
✎
10:26
|
Хотя можно походу брать тупо по последней записи регистра самого КадроваяИстория.... сейчас посмотрю!
|
|||
20
RomanYS
23.08.22
✎
10:28
|
(18) зачем человеком, лучше регламентным заданием
(19) у вас там такая текучка. Знаю организации где этот регистр по полгода может не двигаться |
|||
21
Dmitrii
гуру
23.08.22
✎
10:34
|
В ЗУПе есть регистр сведений "Сведения о пользователях". Там есть поле "Дата последней активности".
Запись в регистр делается при авторизации каждого пользователя. Если хоть кто-нибудь в программу заходил, то будет запись с сегодняшней датой последней активности. |
|||
22
23th
23.08.22
✎
10:35
|
(20) текучки нет, просто иногда особо ценные люди перемещаются с должности на должность
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |