Имя: Пароль:
1C
 
Проигрывать видео в 1С 7.7
0 burrya
 
27.05.10
15:27
Всем привет!
Подскажите как на обработке можно воспроизвести видеофайл!!!
1 Salvador Limones
 
27.05.10
15:27
ActiveX
2 Dzenn
 
гуру
27.05.10
15:37
В помощь тебе куча компонентов ActiveX. Самый доступный для использования - Windows Media Player. При наличии определенного опыта можно сделать через Flash (SWF) в компоненте Shockwave Flash Object.
3 burrya
 
27.05.10
15:44
через Windows Media Player можно будет организовать прокрутку всех видео из определенной папки?
4 mishaPH
 
27.05.10
15:45
(0) простите. а зачем в 1с видео??
5 Ёпрст
 
гуру
27.05.10
15:46
(3) да.
6 burrya
 
27.05.10
15:46
(4) :) желание клиента - закон
7 burrya
 
27.05.10
15:48
(5) имеется ввиду тот ActiveX, который подключается через таблицу или через какую-то внешнюю компоненту?
8 mishaPH
 
27.05.10
15:49
(6) это понятно. но что в 1с можно к видео присобачить
9 Salvador Limones
 
27.05.10
15:49
(7) Перебирай все видео средствами 1С
10 smaharbA
 
27.05.10
15:50
можно вставить в форму медиаплейер без активикса
11 burrya
 
27.05.10
15:51
(10) как?
12 smaharbA
 
27.05.10
15:51
(11) три варианта
13 burrya
 
27.05.10
15:51
(9) не понял Вас
14 Ёпрст
 
гуру
27.05.10
15:52
(10) некрасиво же ..без интерфейса на морде.
15 smaharbA
 
27.05.10
15:52
но лучче с активиксом, очень популярна (и заслуженно конечно) 1с++
16 smaharbA
 
27.05.10
15:52
(14) я предлагаю целиком медиаплейер затолкать ))
17 burrya
 
27.05.10
15:57
(14)(16) а можно поподробнее?
18 smaharbA
 
27.05.10
16:42
(17) запускаешь медиаплейер, можно скрытым
и динамик врапером делаешь его дочерним форме и указываешь координаты
19 burrya
 
27.05.10
17:01
смотрю ActiveX
как называется класс для ActiveX Windows Media Player?
Что-то не получается запустить Windows Media Player по след структуре
АтрФормы = СоздатьОбъект("АтрибутФормы");
АтрФормы.УстановитьАтрибут(Форма,"Атрибут");
Дерево=СоздатьОбъект("Windows Media Player");//класс-наследник АктивИкс
АтрФормы.СоздатьЭлементУправления(Дерево); // СоздатьЭУ
Дерево.СоздатьЭУ("Windows Media Player");
20 Ёпрст
 
гуру
27.05.10
17:07
21 smaharbA
 
27.05.10
17:07
WMPlayer.OCX
22 Ёпрст
 
гуру
27.05.10
17:07
(18) хитро..
дюнаврапер хорошая вещь..
23 smaharbA
 
27.05.10
17:09
(22) както делал вордом (как обычно )) ) всавлял cmd.exe
24 zuza
 
27.05.10
17:15
(20) Создание элемента управления MSComCtlLib.ImageComboCtl.2 не удалось
25 Ёпрст
 
гуру
27.05.10
17:17
(24) а 1сpp загружена хоть?
26 zuza
 
27.05.10
17:24
(25) да
27 Ёпрст
 
гуру
27.05.10
17:27
(26) а версия какая ? а MSCOMCTL.OCX ежели перезарегать?

а вот это выводит диалог выбора цвета ?
28 Ёпрст
 
гуру
27.05.10
17:27
29 Ёпрст
 
гуру
27.05.10
17:28
+28 а если поменять на MSComCtlLib.ImageComboCtl ... ругается ?
30 zuza
 
27.05.10
17:29
(27) 1с++ 3.0.1.23
31 zuza
 
27.05.10
17:30
(28) Нет в системе файла comdlg32.ocx
32 zuza
 
27.05.10
17:31
+ (31) перезарегил MSCOMCTL.OCX, не помогло
33 zuza
 
27.05.10
17:32
(29) Создание элемента управления MSComCtlLib.ImageComboCtl не удалось
34 Ёпрст
 
гуру
27.05.10
17:34
(33) другие то хоть создаются ?
1сpp какой версии хоть?
35 Ёпрст
 
гуру
27.05.10
17:34
+34 а вижу..
в реестре посмотри, есть ли MSComCtlLib.ImageComboCtl
36 zuza
 
27.05.10
17:39
(35) все дело было в comdlg32.ocx
37 zuza
 
27.05.10
17:39
+(36) установил заработало :), спасибо
38 burrya
 
27.05.10
19:52
Перем Wmp1;
//======================================================================
Функция СоздатьКонтрол(ИмяКонтрола,ИмяАтрибутаФормы)
   АктивХ   = СоздатьОбъект("АктивИкс") ;
   АктивХ.УстановитьАтрибут(Форма,ИмяАтрибутаФормы);
   АктивХ.СоздатьЭУ(ИмяКонтрола);
   Возврат АктивХ.Объект;
КонецФункции // СоздатьКонтрол


//======================================================================
Процедура ПослеСозданияФормы()
   //WMPlayer control
   Wmp1 = СоздатьКонтрол("WMPlayer.OCX.7","Wmp");
   Wmp1.URL = "D:\MVI_4793.avi";
   
КонецПроцедуры // ПослеСозданяФормы

при выполнении кода вылазит ошибка
Wmp1.URL = "D:\MVI_4793.avi";
{D:\1CBASES\WMP\ВИДЕО.ERT(39)}: :
39 burrya
 
28.05.10
10:10
очень странно даже текст ошибки не пишет!
40 burrya
 
28.05.10
10:46
в отладчике
Wmp1 = OLE.IWMPPlayer4
41 Ёпрст
 
гуру
28.05.10
10:58
(38)    
   Wmp1.FileName = "c:\1.mp3";
   Wmp1.Controls.Play();
42 burrya
 
28.05.10
11:07
(41)
Wmp1.FileName = "c:\1.mp3";
{D:\1CBASES\WMP\ВИДЕО.ERT(40)}: Поле агрегатного объекта не обнаружено (FileName)

в отладчике

Wmp1.FileName = Ошибка в выражении!
Wmp1.fullscreen = 0
43 burrya
 
28.05.10
11:09
хотя при попытке выполнить след код выходит ошибка
Wmp1.fullscreen = 1;
{D:\1CBASES\WMP\ВИДЕО.ERT(39)}: :
44 Ёпрст
 
гуру
28.05.10
11:23
блин, ну посмотри ты свойства контрола..

Плеер = СоздатьКонтрол("WMPlayer.OCX.7","Wmp");
Контрол = Плеер.controls;
Плеер.URL = "D:\MVI_4793.avi";
Контрол .play();
45 burrya
 
28.05.10
11:53
Контрол = Плеер.controls;
{D:\1CBASES\WMP\ВИДЕО.ERT(45)}: :

все равно не работает

я прошу прощения за тупые вопросы,
где можно посмотреть описание этого объекта?
46 Ёпрст
 
гуру
28.05.10
11:57
(45) для начала, сам контрол на форме отобразился хоть?
47 burrya
 
28.05.10
12:05
(46)Белый квадрат
в нем написано "Здесь должен быть АктивИкс"
и по диагоналям идут две линии
48 zuza
 
28.05.10
12:31
(48) значит не отобразился
49 burrya
 
28.05.10
12:43
(48)и как его отобразить?
50 Ёпрст
 
гуру
28.05.10
12:46
(49) для начала, запустить (28).
51 burrya
 
28.05.10
13:54
Запустил - тоже самое
52 burrya
 
28.05.10
13:55
(50) Запустил - тоже самое
53 Ёпрст
 
гуру
28.05.10
13:57
(52) зарегь comdlg32.ocx и MSCOMCTL.OCX
54 burrya
 
28.05.10
14:13
зарегал! все равно.. :(
55 Ёпрст
 
гуру
28.05.10
14:18
(54) код в (28) выполняется ?
56 burrya
 
28.05.10
14:24
да
57 Ёпрст
 
гуру
28.05.10
14:40
(56) т.е диалоговое окошко появляется ?
И это, сейчас то что не работает ?
Контрол - проигрыватель появился ?
58 Zakarum
 
28.05.10
16:32
(57) попробовал твой код из (20)


//======================================================================
Функция СоздатьКонтрол(ИмяКонтрола,ИмяАтрибутаФормы)
   АктивХ   = СоздатьОбъект("АктивИкс") ;
   АктивХ.УстановитьАтрибут(Форма,ИмяАтрибутаФормы);
   АктивХ.СоздатьЭУ(ИмяКонтрола);
   Возврат АктивХ.Объект;
КонецФункции // СоздатьКонтрол


//======================================================================
Процедура ПослеСозданияФормы()
   //ImageCombo control        MSComCtlLib.ImageComboCtl.2
   СоздатьКонтрол("MSComCtlLib.ImageComboCtl.2","ImageCombo");

   //ImageList control         MSComCtlLib.ImageListCtrl.2
   СоздатьКонтрол("MSComCtlLib.ImageListCtrl.2","ImageList");

   //ListView control          MSComCtlLib.ListViewCtrl.2
   СоздатьКонтрол("MSComCtlLib.ListViewCtrl.2","ListView");

   //ProgressBar control       MSComCtlLib.ProgCtrl.2
   СоздатьКонтрол("MSComCtlLib.ProgCtrl.2","Prog");

   //Slider control            MSComCtlLib.Slider.2
   СоздатьКонтрол("MSComCtlLib.Slider.2","Slider");

   //StatusBar control         MSComCtlLib.SBarCtrl.2
   СоздатьКонтрол("MSComCtlLib.SBarCtrl.2","SBar");

   //Toolbar control           MSComCtlLib.Toolbar.2
   СоздатьКонтрол("MSComCtlLib.Toolbar.2","Toolbar");

   //TreeView control           MSComCtlLib.TreeViewCtrl.2
   СоздатьКонтрол("MSComCtlLib.TreeCtrl.2","Tree");
   
   //WMPlayer control
   СоздатьКонтрол("WMPlayer.OCX.7","Wmp");
   
КонецПроцедуры // ПослеСозданяФормы


вышли прямоугольники с текстом "Здесь должен быть АктивИкс"

перенес АктивХ   = СоздатьОбъект("АктивИкс")  из функции в процедуру, добавил в начале Перем АтивИкс. После этого заработало
59 Ёпрст
 
гуру
28.05.10
16:44
(58) не помню, вроде только в старых версиях 1cpp, были прроблемы, ежели Перем не объявишь..
60 Zakarum
 
28.05.10
16:45
(59) возможно. Но вот из контролов только последний отображался, пока не перенс создание объекта в процедуру ПослеСозданияформы()
61 smaharbA
 
28.05.10
19:27
а чо кмд еще никто не вложил ? ))
62 ТочноеЯдро
 
28.05.10
20:53
(18) как всегда рулит
*засечка* :)
63 orefkov
 
28.05.10
21:12
Вроде как есть такая ВК - miracle.dll, которая умеет это.
64 smaharbA
 
28.05.10
21:41
(63) )))
65 smaharbA
 
28.05.10
21:42
а адинес умеет и без этого, ну разве что только со мсо и прочими апологетами)
66 burrya
 
31.05.10
12:35
Все классно работает спасибо!
Выподлняю код - проигрывается след файл,
только не ставится во весь экран:
//*******************************************
Процедура ПослеСозданияФормы()
   АктивХ   = СоздатьОбъект("АктивИкс") ;
   АктивХ.УстановитьАтрибут(Форма,"Wmp");
   АктивХ.СоздатьЭУ("WMPlayer.OCX.7");
   Плеер = АктивХ.Объект;
   Контрол = Плеер.Controls;
   Плеер.URL = "D:\MVI_4793.avi";
   Плеер.FullScreen = 1;
   Контрол.play();
КонецПроцедуры

Плеер.FullScreen = 1;
{D:\1CBASES\PT\EXTFORMS\ТАВТ.ERT(663)}: :

Как сделать FullScreen

Благодарю.
67 burrya
 
31.05.10
15:33
вопрос решился так:

Плеер.URL = "D:\TBA\ShowroomfilmGolfGTI2009.mpg";
Плеер.settings.volume = 100;
Контрол.play();
Пока Плеер.playState <> 3 Цикл
    Состояние("Preparing new media item.");
КонецЦикла;
Плеер.FullScreen = -1;

Только этот код уже лучше вызывать не в ПослеСозданияФормы(), а то 1с может подвиснуть
68 burrya
 
31.05.10
15:33
Всем спасибо! Вы крутые мужики.