Имя: Пароль:
1C
1С v8
Помогите со временем 1С Далион
0 VoldeMarusss
 
08.11.16
12:23
Как заставить устанавливать время 08:00:00 НачалоДня

// Даты устанавливаются для РежимСнятияОтчета = 2
     ДатаНач = НачалоДня(ТекущаяДата()-(26*60*60));
     ДатаКон = КонецДня(ТекущаяДата());
1 Ёпрст
 
гуру
08.11.16
12:29
26*60*60 Эт Че ?
2 Ёпрст
 
гуру
08.11.16
12:30
ПараметрДата = НачалоДня(ТекущаяДата()-86400*КолВоДней);
3 Ёпрст
 
гуру
08.11.16
12:30
если что,
4 shadow_sw
 
08.11.16
12:30
ДатаНач = НачалоДня(ТекущаяДата())+8*60*60;
(1) Марс!
5 Ёпрст
 
гуру
08.11.16
12:31
Это если надо от текущей даты отнять количество дней.
6 VoldeMarusss
 
08.11.16
13:01
(5) у меня внешний отчет он в табличной части выставляет параметры выгрузки из кассы например: режим снятия отчета период         начало дата время       конец дата время
              07-11-2016 08:00:00   08-11-2016 23:59:59
так вот у меня встает вместо 07-11-2016 08:00:00 , 07-11-2016 00:00:00
7 Ёпрст
 
гуру
08.11.16
13:01
(6) ну, см (4).
8 Ёпрст
 
гуру
08.11.16
13:02
Тьфу млин.
в конечную дату отчета пихай КонецДня(ТекущаяДата()) и привет.
9 VoldeMarusss
 
08.11.16
13:09
(7) (8) если использовать
ДатаНач = НачалоДня(ТекущаяДата())+8*60*60;

то проставляет текущую дату начало и конец дня
А мне надо минус 1 день в дате начало.

он ставит  08-11-2016 08:00:00 до 08-11-2016 23:59:59
а мне надо 07-11-2016 08:00:00 до 08-11-2016 23:59:59
10 Ёпрст
 
гуру
08.11.16
13:11
да охренеть :)

ДатаНач = НачалоДня(ТекущаяДата()-86400)+8*60*60;
так шо ле надо ?
11 VoldeMarusss
 
08.11.16
13:13
(10) ЁЁЁ То что надо Респект !!!! ЕЕЕЕЕ Спасибо!!!
12 VoldeMarusss
 
08.11.16
15:43
Как заставить ставить время проведения документа 23:59:59 мозг сломал не могу добиться.
//
Процедура КоманднаяПанельДокументыПровести(Кнопка)
    
    ОбновитьСостоянияДокументов();
    
    Для Каждого СтрокаДок Из ТаблицаДокументов Цикл
        
        Если СтрокаДок.Пометка Тогда
            
            ДокументОбъект = СтрокаДок.Документ.ПолучитьОбъект();
            
            Если ДокументОбъект <> Неопределено И НЕ СтрокаДок.ПометкаУдаления Тогда
                
                Попытка
                        ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
                                    
                    СтрокаДок.Пометка = Ложь;
                    
                Исключение
                КонецПопытки;
            КонецЕсли;
            
        КонецЕсли;
        
    КонецЦикла;
    
    ОбновитьСостоянияДокументов();
        
КонецПроцедуры

// Обработчик нажатия кнопки ПометкаУдал
13 Ёпрст
 
гуру
08.11.16
15:48
(12) Если документ проведён, то снять с проведения, ДокОбъект.Дата=КонецДня(ДокОбъект.Дата);
записать, провести, ели необходимо..
14 VoldeMarusss
 
08.11.16
16:12
(13) не работает. блин
15 Ёпрст
 
гуру
08.11.16
16:13
(14) показывай, че делал
16 VoldeMarusss
 
08.11.16
16:16
(15) А все понял !!! блин тормаз .. все заработало.
17 VoldeMarusss
 
09.11.16
07:32
(16) ДокОкс.Дата = КонецДня(ДатаДокумента);
Вообще в другом модуле заполняется табличный документ.
Если БратьТекущуюДату Тогда
            
            Если ТаблицаДокументов.Количество() = 0 Тогда
                ДокОКС.Дата = ТекДатаВремя;
            Иначе
                ТекДатаВремя = ТекДатаВремя + 1;
                НетСвободногоВремени = Истина;
                
                Пока НетСвободногоВремени Цикл
                    НетСвободногоВремени = Ложь;
                    ТекДатаВремя = ТекДатаВремя - 1;
                    Для Каждого СтрокаТЧ Из ТаблицаДокументов Цикл
                        Если СтрокаТЧ.Склад = СтрокаОКС.ОКС.Склад И СтрокаТЧ.ДатаДокумента = ТекДатаВремя Тогда
                            НетСвободногоВремени = Истина;
                            Прервать;
                        КонецЕсли;
                    КонецЦикла;
                КонецЦикла;        
                
                Если ТекДатаВремя >= НачалоДня(ДатаДокумента) Тогда
                    ДокОКС.Дата = ТекДатаВремя;
                Иначе
                    ДокОКС.Дата = НачалоДня(ДатаДокумента);
                КонецЕсли;
                
            КонецЕсли;
            
        Иначе
            
            Если ТаблицаДатДокументов.Количество() = 0 Тогда
                ДокОКС.Дата = ДатаДокумента;
                ДокОКС.УстановитьВремя(АвтоВремя.Последним);
            Иначе
                
                Запрос = Новый Запрос;
                Запрос.УстановитьПараметр("ДатаНач", ТаблицаДатДокументов[0].Дата);
                Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаДокумента));
                Запрос.УстановитьПараметр("Склад", СтрокаОКС.ОКС.Склад);
                Запрос.Текст =
                "ВЫБРАТЬ
                |    ЕСТЬNULL(МАКСИМУМ(ОтчетКассовойСмены.Дата), &ДатаНач) КАК Дата
                |ИЗ
                |    Документ.ОтчетКассовойСмены КАК ОтчетКассовойСмены
                |ГДЕ
                |    ОтчетКассовойСмены.Склад = &Склад
                |    И ОтчетКассовойСмены.Дата МЕЖДУ &ДатаНач И &ДатаКон";
                
                Таб = Запрос.Выполнить().Выгрузить();
                
                Если (Таб[0].Дата) <> КонецДня(ДатаДокумента) Тогда
                    ДокОкс.Дата = Таб[0].Дата + 1;
                Иначе
                    ДокОкс.Дата = КонецДня(ДатаДокумента);
                КонецЕсли;
                
            КонецЕсли;
            
        КонецЕсли;