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

Норма времени (ч)

Автор ArtLady, 08 июн 2020, 13:49

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

ArtLady

В номенклатуре есть данные: "норма времени (ч)" - это число
Я хочу добавить новые данные "время" - 00:00:31
Чтобы эти ячейки были взаимосвязаны
По какой формуле будет происходить расчет из формата "времени" в формат "норма времени (ч)"?
Это мне для понимания, как пользователю, который переходит с экселя в 1с, но программисты не понимают что я хочу дописать, наверное как то не так объясняю :xfbnsdfb:
В екселе это 00:00:31 * 24 = 0,008611

LexaK

ArtLady,
ЦитироватьЯ хочу добавить новые данные "время" - 00:00:31
Хм, вопрос на засыпку: А как вы будете в своем времени отображать Норму, если в ней 1 день, 10 часов, 20 минут?
в представление времени 00:00:00 это не влезет!

если норма не превышает суток, можно сделать так.
Добавить реквизит: Время ,тип Дата, состав Время
тогда формула
Время = Дата(1,1,1) + Норма;

Если Норма = 100;
Сообщить(Норма);  - 100
Сообщить(Время);  - "00:01:40"
если помогло нажмите: Спасибо!

ArtLady

Цитата: LexaK от 08 июн 2020, 16:34
ArtLady,
ЦитироватьЯ хочу добавить новые данные "время" - 00:00:31
Хм, вопрос на засыпку: А как вы будете в своем времени отображать Норму, если в ней 1 день, 10 часов, 20 минут?
в представление времени 00:00:00 это не влезет!

если норма не превышает суток, можно сделать так.
Добавить реквизит: Время ,тип Дата, состав Время
тогда формула
Время = Дата(1,1,1) + Норма;

Если Норма = 100;
Сообщить(Норма);  - 100
Сообщить(Время);  - "00:01:40"

Хороший вопрос :xfbnsdfb: Дальновидный )) я так далеко в своих мыслях не заходила :D
А можно тогда в сдельном наряде сделать так, что если при расчете данные по времени будут превышать 24 часа, то выводилось значение ">24ч" вместо времени? А вообще у меня одна операция более суток не занимает, но вот общая их сумма конечно же может перевалить за грань дозволенного :D

LexaK

можно такое представление нормы попробовать

СуммаНорма = 24 * 3600 + 10; //это пример, у себя просто складываете все Нормы
Если СуммаНорма > 24 * 3600 Тогда
лкДней = Цел(СуммаНорма / (24 * 3600));
стрДней = СтрокаСЧислом(";%1 день;;%1 дня;%1 дней;", лкДней,
    ВидЧисловогоЗначения.Количественное, "L=ru") + " ";
Иначе
стрДней = "";
КонецЕсли;

лкДата = Дата(1,1,1) + СуммаНорма;
Сообщить(стрДней + Формат(лкДата,"ДФ='ЧЧ:мм:сс'"));

для СуммаНорма = 24 * 3600 + 10;
1 день 00:00:10

для СуммаНорма = 50 * 3600 + 10;
2 дня 02:00:10

для СуммаНорма = 23 * 3600 + 10;
23:00:10

если помогло нажмите: Спасибо!

ArtLady

Цитата: LexaK от 08 июн 2020, 21:13
можно такое представление нормы попробовать

СуммаНорма = 24 * 3600 + 10; //это пример, у себя просто складываете все Нормы
Если СуммаНорма > 24 * 3600 Тогда
лкДней = Цел(СуммаНорма / (24 * 3600));
стрДней = СтрокаСЧислом(";%1 день;;%1 дня;%1 дней;", лкДней,
    ВидЧисловогоЗначения.Количественное, "L=ru") + " ";
Иначе
стрДней = "";
КонецЕсли;

лкДата = Дата(1,1,1) + СуммаНорма;
Сообщить(стрДней + Формат(лкДата,"ДФ='ЧЧ:мм:сс'"));

для СуммаНорма = 24 * 3600 + 10;
1 день 00:00:10

для СуммаНорма = 50 * 3600 + 10;
2 дня 02:00:10

для СуммаНорма = 23 * 3600 + 10;
23:00:10

А вы могли бы это дописать? :D
Ссылка на полное описание задания у меня вот тут https://yadi.sk/d/iZ6yJjjiewkkYw
Могу оформить через форум

Теги:

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

Рейтинг@Mail.ru

Поиск