| 
    
            
         
         | 
    
    
  | 
как в запросе поставить в условие проверку на текущую дату, без установки параметра? | ☑ | ||
|---|---|---|---|---|
| 
    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) текучки нет, просто иногда особо ценные люди перемещаются с должности на должность     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |