Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 мар 2024, 17:52

Время в документе

Автор volodya1122, 10 мар 2011, 19:03

0 Пользователей и 2 гостей просматривают эту тему.

volodya1122

Уважаеміе програмисті. В 1cv7.7 Существует ли тип "Время" . (Аналогия "Дата"). Чтобы была возможность выбрать время, как выбирается дтата. Или табота с временет ограничиваеться только "ТекущееВремя()" . Я решил эту проблему по-другому. Сделал тип "строка" длиной 5 символов и проверяю каждый символ на совпадение с числами. Процедра получилась не очень красиво. Вот спрашиваю может ктото знает как это реализовать красиво. (Просто в документе нужно ввести не ТекущееВремя()", а определенное время . Например машина выехала на обект не во время когда я создал документ, а в другое.)

prog1c7.7

чем регламентируется в 1с время выезда машины?
каким документом? как это вообще автоматизируется? на колесе штрихкод? и при выезде
сканер стоит подключенный к 1с и обработчик прописан автоматический?    :zebzdr:

volodya1122

да не так все сложно как вы описываеете. Просто в обычном документе в шапке мне нужно ввести 2 графы на время выезда и время приезда машины, чтоб потом в отчете можна было посчитать сколько времени машина была на задании. Время вписываю руками (без всяких сканеров и т.п.) . Все это я сделал и все работает. Просто хотел посоветоватся может кто знает как красивее оформить ввод времени. Счас у меня время можно вводить так "09,45" "9,45" "945" 9 45" "9х45" Функция приведет ее к нужному виду "09:45".
Но также в форме можно ввести вместо цыфр текстовые сымволы, что не очень хорошо. Хотелось бы сделать так как в форме для даты, можно было вводить только цыфры и в одной ячейке.

Вот сама функция обработки ячейки (ГодРозпл это строка длиной 5 символов)

Процедура вводГодини1()
//ГодРозп=Строка(ГодРозп);   
//ГодРозпл    
Если СтрДлина(СокрЛП(ГодРозпл))=3 тогда
ГодРозпл="0"+СокрЛП(ГодРозпл);
ИначеЕсли СтрДлина(СокрЛП(ГодРозпл))=4 тогда
   Симв2=Сред(СокрЛП(ГодРозпл),2,1);
    Если (Симв2="1") или (Симв2="2") или (Симв2="3") или (Симв2="4") или (Симв2="5") или (Симв2="6") или (Симв2="7") или (Симв2="8") или (Симв2="9") или (Симв2="0") тогда
    иначе
    ГодРозпл="0"+СокрЛП(ГодРозпл);
//    Возврат;
    КонецЕсли;   
Иначеесли СтрДлина(СокрЛП(ГодРозпл))<3 тогда
Предупреждение("Ще не заповнена година розвезення",0);
Возврат;
КонецЕсли;       

год=Лев(СокрЛП(ГодРозпл),2);
хв=Прав(СокрЛП(ГодРозпл),2); 
хв2=Лев(хв,1);
хв1=Прав(хв,1);
Если (хв1="1") или (хв1="2") или (хв1="3") или (хв1="4") или (хв1="5") или (хв1="6") или (хв1="7") или (хв1="8") или (хв1="9") или (хв1="0") тогда
иначе
Предупреждение("Невірно задано хвилини");
Возврат;
КонецЕсли;

Если (хв2="1") или (хв2="2") или (хв2="3") или (хв2="4") или (хв2="5") или (хв2="0") тогда
иначе
Предупреждение("Невірно задано хвилини");
Возврат;
КонецЕсли;   
//-----
год1=Прав(год,1);
год2=Лев(год,1);
Если (год1="1") или (год1="2") или (год1="3") или (год1="4") или (год1="5") или (год1="6") или (год1="7") или (год1="8") или (год1="9") или (год1="0") тогда
иначе
Предупреждение("Невірно задано годину");
Возврат;
КонецЕсли;

Если (год2="1") или (год2="2") или (год2="0") тогда
иначе
Предупреждение("Невірно задано годину");
Возврат;
КонецЕсли;


если Число(год)>23 тогда
Предупреждение("Невірно задано годину");
Возврат;
КонецЕсли;

если Число(хв)>59 тогда
Предупреждение("Невірно задано хвилини");
Возврат;
КонецЕсли;

ГодРозпл=год+":"+хв;

КонецПроцедуры

volodya1122

Цитата: sergejK74 от 11 мар 2011, 10:57
У поля ввода на вкладке дополнительно есть "Маска". Описание маски найдешь на стр. 694 ЖКК.
Что такое ЖКК? и где его найти?

prog1c7.7

или используй ПолучитьВремя() -
Строковое значение времени записи документа в виде
'ЧЧ.ММ.СС.
но надо покалядовать с кнопкой "записать"

volodya1122

ПолучитьВремя()  не подходит, так как время создания документа и время выезда машины не совпадают. Я же писал выше, что документ создаю не во время выезда машины , а когда есть возможность...

prog1c7.7

ЖКК - это тоже не знаю что такое, это никто не знает,  :wacko:
это только sergejK74  знает.
больше никто, может у него есть пара тройка ЖККов,
а мож кончились, скорее всего уже,
я последние у него брал - 5 штук сразу, но дальше progmikon на очереди
Ему обещали если достанет   :D
но это вряд ли, есть мнение что их вообще не существует больше

prog1c7.7

подходит, ты ведь отслеживаешь время записи документа, только при записи
надо прописать куда бросать  эту строку,
Это вариант, когда время отъезда и приезда фиксируется ВОВРЕМЯ не задним числом, а если задним то так не пойдет

volodya1122

Цитата: sergejK74 от 11 мар 2011, 11:34

Выдержка про маску - попробуй может поможет маска "99:99"


Спасибо. Маска 99:99 какраз то что нужно......

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск