Имя: Пароль:
1C
1С v8
обработка изменить время документов
0 denis_solyanko
 
15.01.15
11:51
Добрый день задача, нужно изменить у опеределнного вида документов даты, причем дату не трогать , а изменить у каждого документа только время.
как осуществить?
разбивать дату на две части, изменять,
потом соединять?
4 Cube
 
15.01.15
11:55
(0) ТекущаяДата() - 60 = текущая дата минут 1 минута.
5 Cube
 
15.01.15
11:56
(4) "минут" = "минус"
6 deniseek
 
15.01.15
11:56
(2) Количество секунд добавить не предлагать? Или что нужно то????? ))))
8 Fish
 
15.01.15
11:57
(2) Держи идею: почитать ЖКК или СП. "Раздел Функции работы со значениями типа Дата"
9 Godofsin
 
15.01.15
11:57
=)
10 Fish
 
15.01.15
11:58
(0) И, кстати, каким образом надо время менять? Какое-то фиксированное или нет?
11 denis_solyanko
 
15.01.15
12:07
(10) ну допустим тип цен установка цен, таким документам нужно проставлять час ночи, если в один день тогда час 01:00:01,01:00:02,01:00:03
12 deniseek
 
15.01.15
12:12
(11) 60*60+НачалоДня(ДатаТвоегоДокумента)+1 например- это для твоего первого документа, в цикле, я думаею, сделаешь прибавление на 1 больше?
13 denis_solyanko
 
15.01.15
12:12
(4) Процедура КнопкаВыполнитьНажатие(Кнопка)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|    УстановкаЦенНоменклатурыВМагазине.Ссылка,
|    УстановкаЦенНоменклатурыВМагазине.Дата
|ИЗ
|    Документ.УстановкаЦенНоменклатурыВМагазине КАК УстановкаЦенНоменклатурыВМагазине";
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Объект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();
массив = РазложитьСтрокуВМассивПодстрок(Объект.Дата," ");

вот здесь нужно сделать изменение времени думаю счетчик добавить если дата =дата

время = "01:00:00";


Объект.Дата = массив[0]+" "+время;
Сообщить("Обрабатывается:"+Объект);
Объект.Записать();

        КонецЦикла;

    КонецПроцедуры
14 Godofsin
 
15.01.15
12:14
(13) *рукалицо
15 denis_solyanko
 
15.01.15
12:15
(14) )))
16 Cube
 
15.01.15
12:15
(13) Ахахахха))) Рукалицоооо))))

Вместо ереси "массив = РазложитьСтрокуВМассивПодстрок(Объект.Дата," ");" и всё что ниже пиши:

Объект.Дата = НачалоДня(Объект.Дата) + 60*60;
17 Godofsin
 
15.01.15
12:17
(16) Не, ему ж на секунду прибавлять надо.
18 Дмитрий
 
15.01.15
12:17
Объект.Дата = НачалоДня(Объект.Дата)+ НужноеВремяВСекундах
19 Cube
 
15.01.15
12:17
(17) На час плюс секунда...
20 denis_solyanko
 
15.01.15
12:42
(19) все спасибо сработало))
21 denis_solyanko
 
15.01.15
12:42
всем спасибо за помощь))
22 denis_solyanko
 
15.01.15
12:42
у меня бы получилось тоже самое только в два раза длиньше))
24 Fish
 
15.01.15
13:06
(20) А ничего, что если документ будет проведён временем больше, чем 23:00, то прибавив к нему час, ты получишь следующий день?
25 salvator
 
15.01.15
13:08
(24) Генерал сказал на час+секунда, значит час+секунда.
26 denis_solyanko
 
15.01.15
13:22
(24) а там начинаю нумерацию именно с часу
27 Serg_1960
 
15.01.15
13:47
"Давайте подумаем, мужики. Вопрос-то серьезный!"(salvator) :)

Могу одной строкой кода выполнить... но вопрос же серьёзный! Тут нужна процедура с вызовами функций...
28 Serg_1960
 
15.01.15
14:02
PS: если ТС хочет "сдвигать" время на час ночи следующего дня, то лучше использовать не НачалоДня(Объект.Дата), а КонецДня(). И запрос лучше сгруппировать по датам (без времени) с сортировкой по номерам (как вариант - по моменту времени) - это поможет определять сколько секунд добавлять к концу дня для очередного документа.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс