Имя: Пароль:
1C
1С v8
как можно подключить PHP на 1с базу
,
0 BujiMuji
 
25.03.14
11:43
как можно подключить PHP на 1с базу?
1 cw014
 
25.03.14
11:45
Чего?
2 ДенисЧ
 
25.03.14
11:45
Чо? (с)

Когда Вы говорите, такое ощущение, что Вы бредите... (с)
3 Heckfy
 
25.03.14
11:46
Йода, привет!!!
4 BujiMuji
 
25.03.14
11:46
а чё?(1)
5 Жан Пердежон
 
25.03.14
11:46
налетели, терапевты, может у человека горе какое?
6 VikingKosmo
 
25.03.14
11:47
(5) то что горе, факт неоспоримый
7 ДенисЧ
 
25.03.14
11:47
(5) Так как же го понять, если он ничего не говорит(с)
8 kvikster
 
25.03.14
11:47
(0) можно
9 shuhard
 
25.03.14
11:49
(0) да легко:
1 ставишь php под винду и тащишь через Com
2 ставишь php + MySql и пуляешь из 1С на сиквел
10 BujiMuji
 
25.03.14
11:51
можно пример кода(9)
11 shuhard
 
25.03.14
11:53
12 Asmody
 
25.03.14
11:53
давайте начнем с целеполагания — зададимся вопросом "А нах.я?"
13 ДенисЧ
 
25.03.14
11:53
(9) Что ж ты всякие непотребности советуешь...
14 shuhard
 
25.03.14
11:54
(12) давай
цель у нас одна - бабло
15 Адинэснег
 
25.03.14
11:55
(0) запили полноценный ws
16 Asmody
 
25.03.14
11:56
(14) ну если так рассуждать, то цель у нас — красивый ящик и участок 2.5х2.5
17 Егор Сергеевич
 
25.03.14
12:00
(0) прямыми запросами к базе
18 fvadim
 
25.03.14
12:00
(11) не будет работать под линухом (ваш КО :)
(15) можно неполноценный - просто xml разгребать
Можно лазить напрямую в базу ms sql, postgre.
Можно выгружать из 1с в файлы, в другую базу.
19 shuhard
 
25.03.14
12:01
(16) это стратегия, а есть и тактика попадания на погост =)
20 shuhard
 
25.03.14
12:01
(18) а мужики то не знают
21 fvadim
 
25.03.14
12:06
(20) подталкиваю ТС к конкретике :)
22 13_Mult
 
25.03.14
12:08
Присоединяюсь к (12), зачем?
Что надо то от базы?
23 13_Mult
 
25.03.14
12:17
ТС сбежал ((
24 Сниф
 
25.03.14
12:21
(0) попробую телепатически угадать. Как из 1С отправить запрос к HTTP мы все знаем - ОтправитьДляОбработки () и т.п.
Но что же, черт подери, должно быть на сервере?
25 Адинэснег
 
25.03.14
13:16
20,685
26 Адинэснег
 
25.03.14
13:16
упс, мимо
27 Asmody
 
25.03.14
13:17
(23) ТС крепко задумался над поставленным в (12) вопросом
28 Егор Сергеевич
 
25.03.14
13:20
(25) уже не 22?
29 qeos
 
25.03.14
13:23
(26) эта картинка слева помогает?
30 batmansoft
 
25.03.14
13:26
(0) "как можно подключить PHP на 1с базу?" - что значит подключить пхп? Может ты имел в виду, как организовать обмен между 1С и сайтом? Способов много:
1. Выгружать из 1С данных, класть на фтп, скриптом подружать эти данные на сайт. Ну и обратно, выгружать с сайт аданные, брать одинэской с фпт, загружать.
2. Из 1С-ки установить напрмую обмен данными с мускульми базами, на которых работают сайт. но тогда надо что бы сайт был на вашем сервере, а не на удаленном хостинге.
3. Из программы !с вызывать отдельные скрипты сайта, каким то макаром передавая им данные.
31 Сниф
 
26.03.14
08:13
(30)
1. Хотелось бы примеров этих скриптов.
2. Обмен напрямую можно и с удаленными базами. Для подробностей загуглить, например, такой запрос: "хостинг с подключением к mysql через ssh".
3. И вот их хотелось бы.
32 dimitrio73
 
26.03.14
08:16
через web сервисы не?
33 batmansoft
 
26.03.14
17:05
(31) Ну вот тебе пример скрипта, что это тебе даст, не знаю:
<?php
    include "shopconfing.php";
    
    $conf=InitConf();
    
    if(!isset($_POST['key'])) exit;
    $key=$_POST["key"];
    if($key!="секретный код") {
        echo "ОШИБКА: invalid key";
        exit;
    }
    
    if(!mysql_connect($conf['HostName'],$conf['UserName'],$conf['Password']))  {
        echo "<h1><font color=red>ОШИБКА: Error connect to ".$DBName."!<br>".mysql_error()."<br></font></h1>";
    }
    mysql_select_db($conf['DBName']);

    //SQL - запрос для поиска  незарегистрированных ордеров
    $query="select * from _eprog_orders where registered=0 and active=1 and UserOption<=3";

    //выполним запрос
    $rows_selection=mysql_query($query);
    $count=mysql_num_rows($rows_selection);
    
    echo $count."\n";
    
    //выведем результат запроса
    for($i=0; $i<=$count; $i++) {
        $arr=mysql_fetch_array($rows_selection);
        echo $arr["id"]."\n";
        echo $arr["summa"]."\n";
        echo $arr["email"]."\n";
        echo $arr["DatePay"]."\n";
        echo $arr["DateExpiry"]."\n";
        echo $arr["userid"]."\n";
    }
        
    
?>
34 batmansoft
 
26.03.14
17:07
А вот пример на стороне 1С:
процедура ЗагрузитьОплаты() экспорт
    СерверИсточник = "твой сайт.ru";
        
    Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
    
    ПапкаВременныхФайлов = КаталогВременныхФайлов();
    ИмяФайлаОтвета = ПапкаВременныхФайлов + Boundary + ".tmp";
    ИмяФайлаОтправки = ПапкаВременныхФайлов + Boundary + ".txt";
    Попытка
        ФайлОтправки = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.ANSI, Символы.ПС, ЛОЖЬ);
        
                
        ФайлОтправки.ЗаписатьСтроку("--" + Boundary);
        ФайлОтправки.ЗаписатьСтроку("Content-disposition: form-data; name=""key""" + Символы.ПС);
        ФайлОтправки.ЗаписатьСтроку("203cnudm3c95mu203gjhevm3m94nmut0v29cgurhvtn4wwerwerewr2c93");
        ФайлОтправки.ЗаписатьСтроку("--" + Boundary);
        
        
        ФайлОтправки.Закрыть();    
    Исключение
        Сообщить("Не удалось сохранить файл отправки: " + ОписаниеОшибки());
    КонецПопытки;
    
    ФайлОтправки = Новый Файл(ИмяФайлаОтправки);
    РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
    
    ЗаголовокHTTP = Новый Соответствие();
    
    //Укажем формат данных Content-Type
    ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
    ЗаголовокHTTP.Вставить("Cookie", "LOGIN_PLAYED=Y");
    
    //Укажем длину POST-запроса Content-Length
    ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаОтправки);
    
    Порт = "80";
    
    НТТР = Новый HTTPСоединение(СерверИсточник, Порт);
    АдресСкрипта = "/auto/readneworders.php";
    Попытка
        НТТР.ОтправитьДляОбработки(ИмяФайлаОтправки, АдресСкрипта, ИмяФайлаОтвета, ЗаголовокHTTP);
    Исключение
        Сообщить("Неудачная попытка соединения: " + ОписаниеОшибки(),СтатусСообщения.ОченьВажное);
    КонецПопытки;
    
    УдалитьФайлы(ИмяФайлаОтправки);
    
    ФайлОтвета = Новый Файл(ИмяФайлаОтвета);
    Если ФайлОтвета.Существует() Тогда
        ТекстОтвета = Новый ТекстовыйДокумент();
        ТекстОтвета.Прочитать(ИмяФайлаОтвета);
        Если ТекстОтвета.КоличествоСтрок() > 0 Тогда
            
            ПроанализироватьОтветСервера(ТекстОтвета);
            
        Иначе
            Сообщить("Отправка запроса на сервер: Получен пустой ответ сервера.",СтатусСообщения.ОченьВажное);
        КонецЕсли;    
        УдалитьФайлы(ИмяФайлаОтвета);
    Иначе    
        Сообщить("Отправка запроса на сервер: Ответ сервера не получен.",СтатусСообщения.ОченьВажное);
    КонецЕсли;    
конецпроцедуры
35 Сниф
 
26.03.14
23:58
(33) даст пример для ковыряния, спасибо большое.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший