Каталог решений - [ОБУЧАЛОВКА] Финт ушами с временем документа.

[ОБУЧАЛОВКА] Финт ушами с временем документа.

[ОБУЧАЛОВКА] Финт ушами с временем документа.

В наличии

Маленькое наблюдение, облегчающее программную расстановку документов по оси времени.

Категория:

Описание

Финт с чебурашечными ушами будет показан на примере. Простая задача: расставить документы »накладная» и »счет-фактура» на оси времени с интервалом в полторы минуты. Делаем примерно так:

//получаем исходное время
ЧЧ=0;
ММ=0;
СС=0;
ДокРН.ПолучитьВремя(ЧЧ,ММ,СС);
//формируем новое время
СС=СС+90;
ДокСФ.УстановитьВремя(ЧЧ,ММ,СС);
ДокСФ.Записать();

Как видно из примера, наращиваем только счетчик секунд, при записи документа движок 1С сам произведет »адекватный» пересчет секунд, минут, часов. Такаим образом можно наращивать любой из счетчиков времени в приведенном выше примере, наращивание производится должно в единицах увеличиваемого счетчика. Т.е. ничто не мешает для сдвига на 1 час написать

 CC=CC+60*60; 

или

 ММ=ММ+60; 

или

 ЧЧ=ЧЧ+1; 

Описанным выше способом можно двигать счетчики и вперед по (+), и назад по (-). Такой нехитрый прием существенно облегчает оперирование со временем документа.
При этом надо учитывать только то, что сдвижка производится только в пределах одних суток! Т.е. макисмально позднее(раннее) время, которое получится у документа: 23:59:59 (00:00:01) — прибавив к 23:59:10 больше 50 секунд в другой день »перескочить» не удастся ;-).
В этом случае надо действовать уже в зависимости от лично ваших нужд, как пример — можно так:

//формируем новое время
СС=СС+90;
ДокСФ.УстановитьВремя(ЧЧ,ММ,СС);
ДокСФ.Записать();
Если СтрЗаменить(ДокСФ.ПолучитьВремя(),'':'','''')=''235959'' Тогда
//тут обрабатываем ''исключительную ситуацию''
    //перехода на новую дату
ДокСФ.ДатаДок = ДокСФ.ДатаДок+1;
   ДокСФ.УстановитьВремя(00,00,01);
   ДокСФ.Записать();
КонецЕсли;

Вот такие вот чебурашки.

Разведал эту шнягу, когда забодался плюсовать секунды-минуты-секунды — неэстетично это, однозначно! А если попробовать прибавить много секунд — что будет? Попробовал — получилось…

PS: если эта статья помогла вам узнать нечто новое — плюсуй рейтинг! Не ленись…

has been added to your cart:
Оформление заказа