Имя: Пароль:
1C
 
Вызов функции Excel
0 asdfwe
 
05.12.06
13:04
ВремяЭксель = Эксель.WorkSheets(Лист).Cells(Стр,7).Value;//0?55534311
ВремяРазговора= Эксель.Minute(ВремяЭксель);                        
{Обработка.Тел_ЗагрузкаРостелеком.Форма.Модуль(101)}: Поле агрегатного объекта не обнаружено (Minute)

как вызвать функцию Эксель Minute и передать ей параметр?
1 ТелепатБот
 
гуру
05.12.06
13:04
2 asdfwe
 
05.12.06
13:11
Minute() - это функция Экселя, а не 1С, нужно в функцию Экселя передать параметр
3 КонецЦикла
 
05.12.06
13:17
Впадлу в 1С минутены подсчитать?
4 asady
 
05.12.06
13:20
(2)
>Minute() - это функция Экселя
это не так!

Minute() - это функция VBA!

и вызывается она в Экселе из макроса.

Теперь думай.
5 asdfwe
 
05.12.06
13:23
:) описываю проблему:
загружаю инфу из таблицы Экселя в 1с.
одно из полей имеет тип Время, которое в Экселе представлено числом типа такого 0,567361111111111.

Мне нужно вычислить из него час:мин:сек
В  Экселе есть функции для этого Hour() Minute() Second()

Как вызвать эти функции в 1с? и соответственно передать им параметр (0,567361111111111)
6 asady
 
05.12.06
13:27
(5) делаешь + три ячейки
в первой формула "=Hour(ТвояЯчейка)"
во второй формула "=Minute(ТвояЯчейка)"
в третьей формула "=Second(ТвояЯчейка)"

в 1С грузи тексты из этих ячеек и склеивай
7 asdfwe
 
05.12.06
13:59
(5)Этот вариант, как и с макросом не подходит, потому что файл Экселя каждый раз новый присылается. И пользователи не будут редактировать его и вносить в него макросы.

Может кто нибудь знает что из себя представляет формат времени в Эксель?
8 asady
 
05.12.06
14:08
(7)
почитай
Excel. Как создать и выполнить макрос.
+
посмотри книжку Михайлова "Системное программирование..."

можно сделать макросом.
9 asdfwe
 
06.12.06
14:26
Предложения конечно интересные, но мне всё таки удалось преобразовать число из Экселя в формат чч:мм:сс

вот код

Процедура Сформировать()

   Вр=Число(Сред(ВремяЭкселя,3))*86400;
   Вр=Число(Лев(Вр,6))/10;
   
   Seconds = Окр(Вр);
   Minutes = Seconds / 60;
   Seconds = Seconds % 60;
   Hours    = Цел(Minutes / 60);
   Minutes = Minutes % 60;  
                                               
   ВремяТекст = (Прав("0"+Hours,2)+":"+Прав("0"+Minutes,2)+":"+Прав("0"+Seconds,2));
       
КонецПроцедуры
10 asdfwe
 
06.12.06
21:29
Спасибо за помощь

Но мне удалось преобразовать число из Экселя в формат чч:мм:сс

вот код

Процедура Сформировать()

   Вр=Число(Сред(ВремяЭкселя,3))*86400;
   Вр=Число(Лев(Вр,6))/10;
   
   Seconds = Окр(Вр);
   Minutes = Seconds / 60;
   Seconds = Seconds % 60;
   Hours     = Цел(Minutes / 60);
   Minutes = Minutes % 60;  
                                               
   ВремяТекст = (Прав("0"+Hours,2)+":"+Прав("0"+Minutes,2)+":"+Прав("0"+Seconds,2));
       
КонецПроцедуры
11 asdfwe
 
06.12.06
21:31
но на самом деле ещё проще

ВремяРазговора = ЗагрузкаЭксель.WorkSheets(Лист).Cells(Стр,7).Text;

Дело втом что я вроде делал так, но всё равно получал число.