8.х Установить нужные дату-время в документе

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем gamser, 22 янв 2010.

  1. TopicStarter Overlay
    gamser
    Offline

    gamser Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26
    Нужно программно установить дату-время в созданном ПКО на 1 сек. позже, чем у документа-основания.
    Делаю

    Код:
    ПКО.Дата=ДокументОснование.Дата+1;
    
    Имеем:
    Справа от знака равенства 21.01.2010 10:32:22
    Слева от знака равенства 21.01.2010 00:00:00

    Как установить нужное время?
  2. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Это в обработке такая строка или где?
  3. TopicStarter Overlay
    gamser
    Offline

    gamser Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26
    В обработке
  4. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Здраствуйте!
    Например так
    Код:
    Если Дата <> КонецМинуты(Дата) Тогда
    ДатаНовая =  Дата(Сред(Строка(Дата), 0,СтрДлина(Дата)-1) + Строка(Число(Сред(Дата, СтрДлина(Дата), СтрДлина(Дата))) + 1)); // возвращает дату на 1 сек больше предыдущей, не сработает при 59 секундах, надо дописывать после оператора ИНАЧЕ
    Иначе
    // Тут проверка при изменении минуты, часа, дня, и в окончании просто делаете НоваяДата = ДобавитьМесяц(Дата)
    КонецЕсли;
    
    
    
    Точнее проверяется последнее число, надо еще написать условие что если Секунда даты меньше или равно 9 (т.к., преобразовав строку "00" в число мы получаем 0 и +1 это 1, в условии надо дописать что если меньше или равно 9, тогда "0" + ДаннаяСекунда, т.е. получаем не "1", а "01", и после преобразования получаем "20.02.2010 0:00:01")
  5. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Проверил у себя - обработка нормально меняет время. Проверьте как у Вас будет работать. Может, платформа глючит у Вас.

    Вложения:

  6. TopicStarter Overlay
    gamser
    Offline

    gamser Опытный в 1С

    Регистрация:
    27 окт 2006
    Сообщения:
    112
    Симпатии:
    0
    Баллы:
    26
    Всем спасибо. Вылечилось :))
  7. tirk
    Offline

    tirk Опытный в 1С

    Регистрация:
    1 сен 2008
    Сообщения:
    1.142
    Симпатии:
    0
    Баллы:
    26
    Да просто надо
    ДатаОснования + 1 - автоматом переведет все что надо
    Потом объект.Дата = ДатаОснования;
    Объект.ЗаписаТЬ();

Поделиться этой страницей