Имя: Пароль:
1C
1С v8
COM + PHP + 1C 8.2
,
0 Qixis
 
09.01.15
15:19
Привет всем!
Делаю связку PHP c 1C.Документооборот через COM. PHP установлен на локальном сервере на компе и 1С на том же компе локально.
Не могу понять что делать, то ли что-то надо настроить и вкл. типа COMConnector, то ли описать тот самый класс, который вылазиет в ошибке, но как его описать???
Делаю по примеру с http://forum-1c.ru/index.php?topic=38365.0
-----------------------------
Код PHP:
<?php
    $fom = new COM("V82.COMConnector");
    $path = "C:\базы1С\Документооборот1";
    $user = "aaaaa";
    $pass = "43432";
    
    $connect = $fom->Connect("File = $path; Usr = $user; Pwd = $pass");
    
    print($connect->get_text());
    
    echo "<a href='index.php'>на главную</a>";
?>
-----------------------------
Код в модуле внешнего соединения в 1С:
Функция get_text() Экспорт
    Возврат "ТЕКСТ";
КонецФункции
-----------------------------
Ошибка вылазиет следующая:
Fatal error: Class 'COM' not found in C:\OpenServer\domains\localhost\conection.php on line 2
1 shuhard
 
09.01.15
15:21
(0) а в PHP хоть библиотека поддержки COM включена ?
2 Qixis
 
09.01.15
15:25
(1) а где её там включать, вроде просмотрел PHP.ini и нашёл только вот это (почти всё закоментировано):

[COM]
;com.typelib_file =
com.allow_dcom = true
;com.autoregister_typelib = true
;com.autoregister_casesensitive = false
;com.autoregister_verbose = true
;com.code_page=
3 Rie
 
09.01.15
15:28
(2) Что в extensions?
4 Rie
 
09.01.15
15:29
+(3) И какая версия PHP?
5 Qixis
 
09.01.15
15:32
(3)(4) PHP 5.6, про extensions не могу ничего сказать, т.к. с PHP дружу всего пару дней ((
6 Qixis
 
09.01.15
15:34
вот:

extension=php_mbstring.dll
extension=php_bz2.dll
;extension=php_com_dotnet.dll
extension=php_curl.dll
;extension=php_enchant.dll
extension=php_exif.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
;extension=php_gmp.dll
extension=php_igbinary.dll
extension=php_imagick.dll
extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_intl.dll
;extension=php_ldap.dll
extension=php_memcache.dll
extension=php_mongo.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8_12c.dll
extension=php_openssl.dll
extension=php_pdflib.dll
;extension=php_pdo_firebird.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phalcon.dll
extension=php_redis.dll
;extension=php_shmop.dll
; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=php_snmp.dll
extension=php_soap.dll
extension=php_sockets.dll
extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
extension=php_timezonedb.dll
extension=php_xmlrpc.dll
extension=php_xsl.dll
7 Rie
 
09.01.15
15:36
(5) Вставь в php.ini
[COM_DOT_NET]
extension=php_com_dotnet.dll
8 Qixis
 
09.01.15
15:37
(7) Большое спасиб, попробую дома, отпишусь ))
9 Qixis
 
10.01.15
19:25
(8) теперь ошибка в строчке 7 -  $con = $app->Connect("File='$path';Usr='$user';Pwd='$pass';");

<?php
    $app = new COM("V83.COMConnector") or die("Невозможно создать COM соединение");
    $path = "C:\EEE";
    $user = "пав";
    $pass = "1";

    $con = $app->Connect("File='$path';Usr='$user';Pwd='$pass';");
    
    print($con->get_text());
    
    echo "<a href='index.php'>на главную</a>";
?>

-------------------------------------------------------

Fatal error: in W:\domains\localhost\phpW\php_s\connection.php on line 7

Может как-то путь к базе не правильно задан?
10 quest
 
10.01.15
19:27
Коли есть php - может проще rest испльзовать?
11 Qixis
 
10.01.15
19:32
(10) а как через rest можно к локальной базе 1С подключиться?
12 Rie
 
10.01.15
19:34
(9) А что за ошибка?
Попробуй одинарные кавычки заменить на двойные, то есть, на \" в строке подключения.
Убедись, что 1CD лежит в C:\EEE
13 Qixis
 
10.01.15
19:38
(12)  \" - не помогает, а 1CD точно лежит в C:\EEE - проверил. Может сам файл 1Cv8.1CD ещё указывать в пути
14 Qixis
 
10.01.15
19:41
(10) прочитал про рест и веб-сервисы - так это совсем другое, просто если у других так получилось как тут http://forum-1c.ru/index.php?topic=38365.0 , то и я хотел так же, а не выходит
15 Rie
 
10.01.15
19:42
(13) Нет, только каталог.
Но - какая именно ошибка? Может, пользователь не тот. Или пароль не тот.
16 shuhard
 
10.01.15
19:45
(9) аккаунт кириоицей под PHP - мсье знает толк в извращениях
17 Qixis
 
10.01.15
20:00
(16) аккаунт латиницей тоже не проходит
(15) ошибка вот - Fatal error: in W:\domains\localhost\phpW\php_s\connection.php on line 8
try с catch не помогают:

<?php
    $app = new COM("V83.COMConnector") or die("Невозможно создать COM соединение");
    $path = "C:\EEE";
    $user = "www";
    $pass = "2";
    
    try{
        $con = $app->Connect("File=\"$path\";Usr=\"$user\";Pwd=\"$pass\";");
    }
    catch (ErrorController $error){
        echo $error;
    }
    
    print($con->get_text());
    
    echo "<a href='index.php'>на главную</a>";
?>
18 Qixis
 
10.01.15
20:03
Пользователь я так понял должен быть тот, которого я в конфигураторе задаю
19 Qixis
 
10.01.15
20:06
пойду поем, может ещё чего в голову придёт
20 Garykom
 
гуру
10.01.15
20:34
(0) забей на этот изврат с com, сделай веб-сервис в 1С (раз 8.2 то можно) и радуйся жизни по http://infostart.ru/public/193460/ к примеру

т.е. php будет нативными способом получать данные из 1С
21 Qixis
 
10.01.15
21:39
(20) а по скорости что лучше: com или веб-сервис?
22 Garykom
 
гуру
10.01.15
21:47
(21) фиолетово

ЗЫ раз у вас 1с то выкиньте php нафик и сделайте формочки веб интерфейса прямо в 1С )) будет самое быстрое и по скорости и по времени разработки... у 1с есть режим работы через веб-клиент, это так, к сведению

ЗЗЫ вопрос кол-ва и цены клиентских лицензий 1с не рассматриваем
23 Qixis
 
10.01.15
21:53
(21) пользователи из магазинов как раз и работают через веб-клиент и ставят задачи, но как-то медленно эта фигня работает, поэтому поставили задачу сделать на PHP - типа быстрее на нём должно быть. Т.е. нужно как раз таки перенести возможность создавать задачи со стандартного веб-клиента на PHP. ))
24 Qixis
 
10.01.15
21:55
(23) ---> (22)
25 Garykom
 
гуру
10.01.15
21:55
(23) быстрее будет только если не онлайн фигачить через com (будет медленнее), а сделать оффлайн с предшествующей-последующей (периодической) синхронизацией данных
26 Garykom
 
гуру
10.01.15
21:56
(25)+ т.е. нечто вроде типовой связки 1С+битрикс
27 Rie
 
10.01.15
21:56
(23) Я не ошибусь, если предположу, что через web-клиент они работают с теми формами, что из "коробки" взяты? Если так, то можно создать для них специализированные рабочие места с упрощёнными формами. При этом минимизировать обмены между клиентом и сервером.
28 Qixis
 
10.01.15
21:57
(25) по идее должно быть онлайн, т.к. пользователи должны через этот сервис ставить свои задачи(проблемы), а техники их сразу подхватывать и решать. Всё должно быть оперативно))
29 Rie
 
10.01.15
22:02
(28) Посмотри в сторону web-сервисов. IMHO, для твоей задачи это подойдёт.
30 Qixis
 
10.01.15
22:02
(27) это нужно проверить, я не уверен, т.к. не смотрел. Как только проверю - отпишусь.
31 Qixis
 
10.01.15
22:03
Спасибо Вам за советы. Нужно теперь много почитать, подумать.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.