Работа с 1с через PHP #201494


#0 by Thatatos
Уменя вот такая проблема... На PHP написан скрипт который через OLE запрашивает в 1С функцию такого вида На PHP обращение выглядит так: $c1 = new COM("V77.Application") or die("Unable to instanciate"); В итоге выдает ошибку где пишет вызов функции который передался в 1с таком виде Функц(<array>,<array>,1,100)<>; ОТкуда беруться эти <> в конце строки? Я так понял ошибка именно из за них... Если кто нибудь уже работал с этим может сможет поправить меня...
#1 by Кецалькоатль
Хм... нет, я не работал, но идея очень и очень интересная! Попробую ее развить в Web-интерфейс.
#2 by Олдж
Функция Функц(Массив1[], Массив2[], х1, х2) Экспорт
#3 by asady
Массивы в семерке не покатят - лучше строкой передавай, а строку делай из СЗ путем ЗначениеИзСтрокиВнутр и ЗначениеВСтрокуВнутр или еще как-нибудь.
#4 by Camino
Я думаю, что в конце строки <> - это какой-то глюк вывода ошибки. В вызове ошибок я не вижу. Покажи ошибку так, как ее отдает РНР.
#5 by Camino
А ошибка скорее всего действительно из-за того, что ты пытаешься передать через OLE неолешный тип данных.
#6 by Андрюха
Смело можешь подавать свою работу на конкурс "моё извращение". Что интересного? Что водку через клизьму хлещут?
#7 by Camino
Хорошее мнение. Аргументированное.
#8 by Андрюха
Если бы из пакетных файлов DOS тоже можно было бы обращаться к 1С, думаю нашлись бы люди, котрые начали бы делать учетные системы, опираясь на "гибкую систему батников".
#9 by gr13
а где здесь батник? или я наотдыхался до того, что просто не вижу?
#10 by Camino
Ты себе не можешь и представить многообразие ситуаций в которых может потребоваться обращение из РНР по OLE (например, в 1С). У меня такая ситуация (не с 1С, правда, а с другой системой) была не далее чем пару месяцев назад. Поэтому юношеский максимализм на подобные темы меня просто веселит.
#11 by Андрюха
Теперь мне понятен твой отказ.
#12 by gr13
мне вообще этот вопрос интересен. На данный момент как интерсный метод программирования. И возможно скоро прийдется нечто подобное реализовывать.
#13 by andrey1111
мне кажется прав . Ты пытаешься передать объект (массив), который существует в контексте процесса PHP в контекст 1С. Попробуй для начала упростить функцию в 1С (убрать массивы) и передай ей простые типы. Посмотри что получиться
#14 by Thanatos
Даже если экспортную функцию сделать все равно не работает по тем же причинам. Придеться все делать в строках ((
#15 by Кецалькоатль
на РНР есть такая штука $vVar = new VARIANT($var) можно через нее массивы передавать
#16 by vitaly
А может кто нибудь сказать как это будет с точки зрения быстродействия? Мне кажется, что этв вещь: "$c1 = new COM("V77.Application") or die("Unable to instanciate"); $res = $c1->initialize($c1->rmtrade,'/DC:СУУ /M','NO_SPLASH_SHOW'); " будет каждый раз запускать базу, что само по себе не очень быстро! Или я не прав в таком вопросе????
#17 by Camino
В РНР хитрая система работы с OLE-объектами. В связи со сложностями получения сессии, вся забота о хранении оле-объектов возложена на сам экзешник. Т.е. в большинстве случаев он вернет уже созданный объект, а не будет его уничтожать и создавать заново.
#18 by Ay49Mihas
Народ, использование PHP здесь оправдано только в качестве внутреннего скрипт-языка для упрощения автоматизации, к Web здесь он не имеет никакого отношения --- так как для Web он будет запускаться в UNIX-окружении. Поэтому истерия здесь поднята зря.
#19 by vitaly
А почему именно UNIX-окружении? Это не истерия, просто интересно стало
#20 by Thatatos
Не обязательно в UNIX-окружение... PHP выбран для доступа к 1С через Веб а не для упрощения автоматизации...
#21 by Ay49Mihas
>А почему именно UNIX-окружении? Потому что PHP в большинстве имеет смысл запускать на UNIX --- у большинства провайдеров так. И потому что нужно делать универсальные решения, а не костыли и затычки дыр. А универсальное решение в данном случае --- событийное управление с промежуточным слоем. Вот так.
#22 by Ay49Mihas
Ну и плюс ко всему хотел бы я посмотреть на такую конструкцию (запуск OLE-сервера) при настройках принудительного убивания скрипта через 30сек после начала его работы (это настройка PHP по умолчанию).
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С