7.7 Web интерфейс к 1С

Тема в разделе "Общие вопросы "1С:Предприятие 7.7"", создана пользователем Lucifer, 12 апр 2007.

  1. TopicStarter Overlay
    Lucifer
    Offline

    Lucifer Опытный в 1С

    Регистрация:
    27 фев 2007
    Сообщения:
    91
    Симпатии:
    0
    Баллы:
    26
    Начал работу по написанию web интерфейса к 1С на PHP. Если кто этим уже занимался, можно скооперироваться.
  2. tree1c
    Offline

    tree1c

    Регистрация:
    3 мар 2007
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Интересный вариант интеграции 1с - т.к. изначально предполагается формула 1с+IIS+ASP
    Просвети в чем дело?
  3. Denisius
    Offline

    Denisius

    Регистрация:
    7 дек 2007
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Очень интересно как продвигается работа.
    С большим удовольствием поучаствовал.
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Интересуно, кто будет быстрее - вы или ЗАО "1С" ? :)

    ЗЫ, Правда, для 8, но это другой вопрос :)
  5. TopicStarter Overlay
    Lucifer
    Offline

    Lucifer Опытный в 1С

    Регистрация:
    27 фев 2007
    Сообщения:
    91
    Симпатии:
    0
    Баллы:
    26
    Интересно, что ветка всплыла. Я был намного быстрее. Всё пашет красиво и быстро. Правда щас времени не хватает. Пока всё в стэндбай режиме :) Может позже продолжу, потому как получились интересные наработки.
  6. Denisius
    Offline

    Denisius

    Регистрация:
    7 дек 2007
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Так а возможно посмотреть на это чудо?
    Я хотел бы помочь с наработками.
  7. TopicStarter Overlay
    Lucifer
    Offline

    Lucifer Опытный в 1С

    Регистрация:
    27 фев 2007
    Сообщения:
    91
    Симпатии:
    0
    Баллы:
    26
    :) Любуйся, вот кусочек
    принцип работы отсюда видно

    Код:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    </head>
    <body bgcolor=#ff5500>
    <?php
    //global DB;
    Function sd(){
    one_C = null;
    ulock=fopen("users.lock","w");
    fputs(ulock,"0");
    fclose(ulock);
    return 1;
    }
    register_shutdown_function('sd');
    DB = '/DD:c�Trade9_2Copy� /NAdm /P';
    ulock=fopen("users.lock","r");
    lock=fread(ulock,1);
    fclose(ulock);
    //echo "lock";
    if (lock=="1") die("Система занята, повторите попытку позднее");
    ulock=fopen("users.lock","w");
    fputs(ulock,"1");
    fclose(ulock);
    
    include "header.php";
    srv=array('Server'=>'192.168.0.9','Username'=>'Administrator','Password'=>'fаа','Flags'=>'CLSCTX_REMOTE_SERVER');
    
    If (isset(do) and (do=="show"))
    {
    sp = 0;
    one_C = new COM("V77s.Application") or die("Unable to instanciate 1C");
    
    //DB = utf8_decode(DB);
    res  = one_C->Initialize(one_C->RMTrade, DB, "");
    if ( res != -1 ) die("Ошибка подключения к базе");
    Rm="HTTP_POST_VARS[Rm]";
    sklad_i = "HTTP_POST_VARS[SKLAD]";
    
    echo "";
    echo "По складу с кодом: ".sklad_i."";
    echo "";
    echo "";
    echo "Номенклатура";
    if ((Rm==1)or(Rm==2)) echo "Количество";
    
    if ((Rm==2) or (Rm==3))
    echo "Спец
    Опт
    Мелкоопт
    Розница";
    
    
    
    expr = "ОстОпт("."�"sklad_i�"".","."Rm".")";
    //echo expr;
    ret = one_C->evalexpr(expr);
    strings = explode("@@",ret);
    
    foreach(strings as st){
    echo "";
    echo "";
    str_replace("�"","*",st);
    echo "st
    ";
    echo "</td>";
    echo "</tr>";
    }
    
    echo "</table>";
    
    
    one_C = null;
    ulock=fopen("users.lock","w");
    fputs(ulock,"0");
    fclose(ulock);
    }else{
    //DB = '/DD:c�Trade9_2� /NAdm /P';
    //echo DB;
    
    
    echo "<table width=100% border=0 cellspacing=1 cellpadding=3 bgcolor=#CCCCCC>
    <form action=PHP_SELF?do=show method=post>
    <tr><td class=p bgcolor=#EEEEEE align=center>Выбор склада:
    <tr><td><SELECT NAME=SKLAD>
    ";
    one_C = new COM("V77s.Application") or die("Unable to instanciate 1C");
    //echo one_C;
    //DB = utf8_decode(DB);
    
    res  = one_C->Initialize(one_C->RMTrade, DB,"");
    if ( res != -1 ) die("Ошибка подключения к базе");
    
    sp_skl = one_C->CreateObject("Справочник.Склады");
    sp_skl->ВыбратьЭлементы();
    
    while (sp_skl->ПолучитьЭлемент()==1){
    echo "<OPTION VALUE=sp_skl->Код>sp_skl->Наименование
    ";
    }
    
    one_C = null;
    ulock=fopen("users.lock","w");
    fputs(ulock,"0");
    fclose(ulock);
    
    echo "
    </SELECT>
    </td></tr>
    <tr><td>
    <SELECT NAME=Rm>
    <OPTION VALUE=1>Остатки
    <OPTION VALUE=2>Прайс с остатками
    <OPTION VALUE=3>Прайс
    </SELECT>
    <tr><td align=center bgcolor=#EEEEEE>
    </form>
    </table>
    ";
    
    
    }
    ?>
  8. Denisius
    Offline

    Denisius

    Регистрация:
    7 дек 2007
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Не получается почемуто.
    Ошибка подключения к базе
    Прочитал в инете много статей на эту тему, но все равно ничего.
    Не могу понять.
  9. Klim
    Offline

    Klim

    Регистрация:
    20 авг 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Чтобы не заводить новую тему, спрошу здесь:
    В php через OLE создаю объект $doc, выбираю документы, получаю доступ к реквизитам и шапки, и табличной части:
    $doc->ДатаДок(),$doc->НомерДок,$doc->Итог(СуммаСНДС).

    А вот к $doc->Контрагент.ПолнНаименование доступа нет: Object of class variant could not be converted to string in ...

    полный текст php-странички:
    Код:
    <html>
    <head>
    <style type="text/css">td { border: 1px dotted black; padding: 2px; vertical-align: top; text-align: center;}</style>
    </head>
    <body>
    <?
    // процедура опроса сервера на наличие новых данных: 
    
    // Создание объекта и инициализация 
    one_C = new COM("V77L.Application") or die("Unable to instanciate 1C"); 
    
    // инициализация 1С 
    res  = one_C->Initialize( one_C->RMTrade, "/DD:�dorada.old� /Nadm /P1111 /M", "NO_SPLASH_SHOW"); 
    
    if ( res == -1 ) echo 'Initialize is OK'; 
    else echo 'Initialize false'; 
    
    // создаем объект 
    
    doc = one_C->CreateObject("Документ.Счет"); 
    
    // вызываем  только англоязычные методы объекта 
    doc->ВыбратьДокументы();
    
    i=0;
    print "Документ.Счет:
    № п/пДатаНомерСумма с НДСКонтрагент 
    ";
    // обработка данных заявки : 
    while(  doc->ПолучитьДокумент()>0 ) 
    {
    i++;
    printf ("%s%s%s%01.2f%s",i,doc->ДатаДок(),doc->НомерДок,doc->Итог(СуммаСНДС),"");//doc->Контрагент.ПолнНаименование);
    //print doc->Контрагент.ПолнНаименование; // Не работает, :;%№":!!!
    } 
    print "";
    
    // финализация 
    //one_C->Release(); 
    one_C = null; 
    ?>
    </body>
    </html>
    
  10. Klim
    Offline

    Klim

    Регистрация:
    20 авг 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Всё решилось, всем спасибо:
    $doc->Контрагент->ПолнНаименование
    :)

Поделиться этой страницей