<?php // Полная загрузка сервисных книжек, создан 2025-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
Интересная статья. И примеры тоже. Плюс.
Спасибо! Очень интересно почитать…
Еще не смотрел, но походу, весчь интересная
Очень интересная и полезная статья
хорошая статья
но вот бы еще ее аналог для 7ки почитать (да раритет, но надо))))
Спасибо за статью
+
примеры не смотрел
но jqGrid — очень понравилась 🙂
а зачем в архиве и .doc и .odt с одинаковым содержанием?
а зачем в архиве и .doc и .odt с одинаковым содержанием?
Оригинал в odt. А doc для того чтобы могли прочесть и счастливые владельцы мс офиса.
.
GSoft, для 7-ки есть пример интернет-магазина на этом сайте. 7-ка не заточена для непосредственной работы с web, нужны сторонние приблуды.
«Опубликуем html файл на нашем web сервере под именем, например, preved.htm. »
букофка l важна?
«Опубликуем html файл на нашем web сервере под именем, например, preved.htm. » букофка l важна?
Нет. Главное чтобы ты к этой странице обращался браузером по тому имени под каким опубликована страница.
Я вижу только заготовок страницы с описанием ошибки, но самого описания ошибки нет.
Прокрути дальше и покажи что написано после тега <body>
Ты установил модуль web сервисов в IIS?
C:Program Files1cv81inwsinst.exe -IIS
А продолжение будет??? Как с авторизацией быть?
>> А продолжение будет??? Как с авторизацией быть?
А надо? Какие-то наработки ещё есть, но они не представляют собой качественного изменения. Только развитие изложенной идеи.
Среди обнаруженных ограничений нашёл что средствами javascript в 1С не получится по-человечески ни затолкать ни получить файл. Поэтому если требуется добавлять/читать файлы, то лучше использовать серверный язык, например PHP.
С авторизацией немного разобрался.
1. После танцев с бубном боги сказали что если база файловая, то ей лучше лежать на fat32. Тогда проблем с авторизацией средствами 1С нет.
Для файловой базы на NTFS авторизацию средствами 1С запустить не удалось, зато хорошо работает доменная авторизация.
Если к 1С обращаться серверным языком, то можно всегда это делать под одним пользователем с доменной авторизацией. Это не слишком безопасно, но работоспособно.
2. В клиент-серверной версии проблем с авторизацией нет. Прекрасно катит авторизация средствами 1С.
Кстати, слабодокументированная возможность — анонимный доступ к базе. Для этого в опубликованном файле *.1cws надо указать имя и пароль
Вот пример файла primer.1cws
<?xml version=»1.0″ encoding=»UTF-8″?>
<service namespace=»http://primer.ru» name=»РаботаСКлиентами» connectString=»Srvr="192.168.0.8";Ref="uttest";Usr="traktor";Pwd="123456";»/>
Если теги покоцаются, то я не виноват.
(15) «средствами javascript в 1С не получится по-человечески ни затолкать ни получить файл»
Извините, в чем проблема?
речь идет об обмене файлами между IIS и 1С
или между клиентом и сервером?
>> Извините, в чем проблема?
Речь идёт об отношениях между клиентом (браузером) и сервером (Apache, IIS).
1. При передаче файла клиенту 1C отдаёт XML файл в котором файл закодирован в base64. Браузер получает этот файл, закодированный в base64 и ничего с ним сделать не может. javascript не может записать файл на диск. Отобразить файл как картинку может только если размер файла меньше 4-х кБ.
2. При передаче файла на сервер наступаем на те же грабли, только с другого края. javascript не может прочитать файл клиента. Это ограничение безопасности. Если бы удалось обойти это ограничение, то проблем бы не было. На javascript.ru мне посоветовали отправлять файл на сервер, там PHP’ом кодировать в base64 и возвращать клиенту. Нафига это надо? Чем так легче РНР’ом сразу писать файл в web сервис 1С.
.
tango, если ты знаешь как обойти эти ограничения — подскажи. Моя благодарность не будет иметь границ в пределах разумного 🙂
в порт-фолио две задачи по веб-доступу, обе без «сервисов», чисто СОМ-объект,
в модуле внешнего соединения формирую текст для asp-response, при этом файл на сервере
указывается просто как <A href=»file»>
а получаю из формы обыкновенным POSTом
единственное, на что наткнулся — и то — не грабли — просто не в лоб решается — удаление файла на сервере, 1ска во внешнем соединении этого не может
в модуле внешнего вся эта радость выглядит примерно так:
Показать полностью
to support, фигня какая-то со слешами
Пользовать com объекты тоже хорошее решение. Правда только для windows+IIS.
Файлы на сервере надо будет удалять ASP’ом после отдачи их их клиенту или после завершения сессии. Но тут я не силён.
фишка еще в том, что ком есть и для 77
удалять у меня по ходу не надо, админ удалит, ежели чё, потому и не заморачивался
но, похоже, решение на яваскрипте встроено:
Показать полностью
ActiveXObject это не javascript. Это огромная дыра в безопасности IE. Твой код работает только в IE.
Если предполагается использовать только ИЕ, то да, твоё решение прокатит.
.
>> фишка еще в том, что ком есть и для 77
Базару нет. Для 77 предложенный тобой способ единственный. Иначе вживую к базе не достучаться. Для 8-ки он тоже хорош, серьёзных минусов назвать не возьмусь.
Но я бы отдал построение страниц web серверу, а из 1С отдавал только данные. Как говорится каждому своё.
Подскажите пожалуйста почему у меня не получается подключиться. В apache я все прописал вроде как надо. Пытаюсь подключиться и когда в браузере набираюhttp://localhost/ws/preved.1cws выводит {http://www.sample-package.org }:ЗдоровенькиБулы и когда нажимаю на это то выходит:
soap:Client Ошибка вызова операции сервиса: {http://www.sample-package.org }:ЗдоровенькиБулы:getWSDL() по причине: {WebСервис.ЗдоровенькиБулы(3,9)}: Неопознанный оператор по причине: {WebСервис.ЗдоровенькиБулы(3,9)}: Неопознанный оператор Ошибка вызова операции сервиса: {http://www.sample-package.org }:ЗдоровенькиБулы:getWSDL() по причине: {WebСервис.ЗдоровенькиБулы(3,9)}: Неопознанный оператор по причине: {WebСервис.ЗдоровенькиБулы(3,9)}: Неопознанный оператор
В чем может быть проблема?
я искал в гугле по строке «inurl:»asmx?wsdl»» сервисы и их юзал
25 Модуль web сервиса ЗдоровенькиБулы выглядит так:
Функция ПриветХлопцы()
http://www.w3.org/2001/XMLSchema)
Возврат «Здоровеньки булы, друзи!»
КонецФункции
Такая ошибка может выдаваться если
1. ты ничего не написал после слова Возврат.
Или
2. В свойствах метода ПриветХлопцы не указал тип возвращаемого значения string (
(24) «ActiveXObject это не javascript. Это огромная дыра в безопасности IE. Твой код работает только в IE.»
в IIS, да? до IE этот код, в общем-то не доходит, ранэтсервер, так сказать… 🙂
В 27 и это была попытка выделить текст курсивом. Не получилось 🙁 Не обращайте на них внимания.
28 tango, или ты или я не в теме. Я всегда считал что яваскрипт не исполняется на сервере. Это клиентский язык. Неужели я ошибаюсь?
Подскажите, пожалуйста, какие настройки нужно произвести, чтобы заработало под IIS?
Сейчас при нажатии на кнопку выскакивает сообщение:
«Запрос завершился неудачно. Ответ сервера:
<?xml version=»1.0″ encoding=»UTF-8″?>
<service namespace=»http:/sample-package.org» name=»ЗдоровенькиБулы» connectString=»File=»C:Work1cWSDemo»;»/>.»
C:Work1cWSDemo — путь по которому расположены файлы конфигурации.
Такой ответ говорит о том что IIS не видит компоненты 1С, обеспечивающей работу web сервисов.
http://localhost/preved.1cws
Посмотри на файл *.1cws браузером. Обращение к нему может выглядеть так
Сервер должен выдавать ссылку в этом роде:
{http:/sample-package.org}:ЗдоровенькиБулы
Под этим текстом должна быть WS ссылка на получение описания сервиса.
http://localhost/preved.1cws?wsdl
Если ты увидишь что-то вроде {http:/sample-package.org}:ЗдоровенькиБулы, то это значит что модуль web сервисов в IIS установлен верно. До получения такой ссылки базу 1С трогать не стоит, IIS к ней ещё не обращается.
Подскажите, пожалуйста, как можно вызвать операцию из строки браузера?
Например:http://localhost/preved.1cws/ПриветХлопцы
Окружение: Apache 2.2, 1C 8.1.13, Win 2003
Разобрался, есть хороший инструмент для отладки web сервисов — SoapUI
Скачал, установил по инструкции.
http://localhost/wwwroot/www1csrv/preved.htm пишет:
При входе на
Запрос завершился неудачно. Ответ сервера:<?xml version»1.0″ encoding=»UTF-8″?><service namespace=»htto://www.sample-package.org» name=»ЗдоровенькиБулы» connectString=»File="\SteBase1c8EnterpriseTE&;;»>
Если открываю файл preved.htm из папки или из IIS то сначала открывается страница с кнопкой, после нажатия на нее выходит та же ошибка.
WinXP Pro, 1С:Предприятие 8.1 (8.1.12.101), УПП редакция 1.2 (1.2.19.1)
WEB расширение 1.1 на этом-же ПК и с этой же базой работает
Че делать-то??? СПАСИБО заранее.
Сделал как в 31 ссылкаhttp://localhost/preved.1cws?wsdl теперь ссылка есть.
Но при нажатии кнопки пишет ошибка доступа к файлу \SteBase1c8EnterpriseTE1Сv8.cdn, а уменя его (1Сv8.cdn) в базе 1С по сетевому пути нет.
(35) Это значит что ты пользуешь файловую 1Сину и в базе есть пользователи. Как бороть я уже писал. Либо снеси всех пользователей либо переведи базу в клиент-серверный вариант либо переложи на диск на с FAT32.
По выложенному примеру сделал вывод списка платежек.
Но не знаю как передать параметры в вызов процедуры, чтобы можно было задать период выборки и, например, подразделение.
И еще как тут на форуме свои разработки выкладывать, а то мож кому пригодится.
Отписался на странице разработкиhttp://infostart.ru/projects/3748/
Здоровеньки Булы!
http://localhost/preved.1cws выдает:
http://www.sample-package.org }:ЗдоровенькиБулы
http://localhost/preved.1cws?wsdl выдает описание веб сервиса.
помогите заставить работать этот сервис, плиз
установил, пример 1 работает:
пример 2:
http://localhost/sotrudniki.1cws выдает:
http://www.sample-package.org }:Сотрудники
http://localhost/sotrudniki.1cws?wsdl выдает:
{
— <ht ml>
— <head>
<title>A server error occurred.</title>
</head>
<h1>Неизвестная ошибка. server_addr=tcp://SERV1C:1562 descr=Ошибка сетевого доступа к серверу (Windows Sockets — 10054(0x00002746). An existing connection was forcibly closed by the remote host. ) line=1031 file=.srcDataExchangeTcpClientImpl.cpp по причине: server_addr=tcp://SERV1C:1562 descr=Ошибка сетевого доступа к серверу (Windows Sockets — 10054(0x00002746). An existing connection was forcibly closed by the remote host. ) line=1031 file=.srcDataExchangeTcpClientImpl.cpp</h1>
<hr />
An error occurred processing this request.
</html>
включен технологический журнал в дамп падает rphost
ond_Chance_Exception_C0000005.dmp the assembly instruction at backend!SCOM_Main+d180 in C:1cv81inackend.dll from 1C has caused an access violation exception (0xC0000005) when trying to read from memory location 0x00000000 on thread 5
запускаем отладчик, вызываем ошибку, анализируем дамп:
In rphost__PID__952__Date__04_21_2009__Time_08_47_22PM__71__Sec
Почему так? Жду помощи….
БД на MSSQL 2005 sp2, 1С 8.1.13.41, www -серверы были испробованы Apache2.2 и IIS6.
Может сразу в техподдержку?
Я ничего толкового про эту ошибку сказать не могу.
http://www.gilev.ru/1c/81/error54/
Рекомендую обратиться к Славе Гилёву.
У него описаны способы лечения.
1С при обращении просит логи технологического журнала и дампы аварийного завершения. Если решишься обращаться в 1С, то укажи в logcfg.xml каталог для дампов:
<dump location=»C:Program Files1cv81dumps» create=»1″ type=»3″/>
В технологический журнал пиши всё. Потом всё что получишь высылай в 1С может помогут.
Подскажите, пытаюсь получить список сотрудников, получаю следующее:
____________________________
Запрос завершился неудачно. Ответ сервера: <soap:Envelope xmlns:soap=»http://schemas.xmlsoap.org/soap/envelope/»>
<soap:Header/>
<soap:Body>
<soap:Fault>
<faultcode>soap:Client</faultcode>
<faultstring>Неверный аргумент. </faultstring>
<detail>Неверный аргумент. </detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
________________________
Web-сервис подключен — дебагер вываливается на брейкпоинте в модуле внешнего соединения (1С), а в модуль Web-сервиса не попадает. Я так понимаю ошибка происходит до вызова модуля Web-соединения. Причем с Web-сервисом «ЗдоровенькиБулы» все хорошо — отрабатывает как надо. Похоже входящий параметр как-то не так обрабатывается при разборе SOAP пакета..
(43) Значит дело действительно во входном аргументе (параметре). Посмотри текст запроса, который идёт в 1С. У тебя, скорей всего, нет тега СтрокаПоиска.
Добавь хоть пустой тег <m:СтрокаПоиска> </m:СтрокаПоиска>
1С при получении запроса сначала проверяет его на соответствие WSDL. А в WSDL прописан обязательный входной параметр СтрокаПоиска. Только после этого управление передаётся твоему коду в модуле web сервиса.
<?xml version=»1.0″ encoding=»UTF-8″?> <soap:Envelope xmlns:soap=»http://schemas.xmlsoap.org/soap/envelope/»> <soap:Header/> <soap:Body> <m:ПолучитьСписокСотрудников xmlns:m=»http://www.sample-package.org»> <m:СтрокаПоиска xmlns:xsd=»http://www.w3.org/2001/XMLSchema» xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»>кар</m:СтрокаПоиска> </m:ПолучитьСписокСотрудников> </soap:Body> </soap:Envelope>
_________________________
Вот то, что уходит в 1С..
(45) Только что проверил. Поднял заново сервис. Работает. Вот текст запроса.
<soapenv:Envelope xmlns:soapenv=»http://schemas.xmlsoap.org/soap/envelope/» xmlns:sam=»http://www.sample-package.org»>
<soapenv:Header/>
<soapenv:Body>
<sam:ПолучитьСписокСотрудников>
<sam:СтрокаПоиска>вич</sam:СтрокаПоиска>
</sam:ПолучитьСписокСотрудников>
</soapenv:Body>
</soapenv:Envelope>
Попробуйhttp://83.237.194.40:180/ws/sotrudniki.1cws?wsdl
имя пользователя inet без пароля
Ссылка на nj как ответ выглядит в soapUIhttp://narod.ru/disk/start/08.dl2d-narod.yandex.ru/8852596000/h71768fb50b58efda553ab9be096ae219/%D0%94%D0%B5 %D0%BC%D0%BE%20ws.JPG
Наличие базы в файловом режиме на разделе NTFS не создаёт проблемм с авторизацией. Там 3 уровня авторизации.
1 — Веб сервер
2 — Права доступа на файлы (в том числе и для файлов базы) для пользователя под которым запускается веб сервис.
3 — Авторизация в информационной базе.
В 99% случаях вы упираетесь в 2 пункт. Решение этой проблеммы простая настройка права доступа к вайлам.
1с 8.1 файловая так работает?
после загрузки этой страницы
видим кнопку «Поприветствовать web сервис»
при нажатии
или ошибка на весь экран
Запрос завершился неудачно Отвер сервера
<DOC TIPE HTMLPUBLIC DTD HTML 3.2 FINAL>
или кнопка меняет надпись на «ждем ответа» и все.
(51) Ответ сервера похож на заголовок ошибки. Скорей всего причина в том что не подключён модуль wsap22.so (wsapch2.so, wsap22.dll, wsapch2.dll, wsisapi.dll) к web серверу. Проверь что возвращаетhttp://localhost/preved.1cws
Если к фирефоксу подключишь firebug, то сможешь видеть запросы, ушедшие на сервер и полученные браузером. Они должны быть похожи на запросы, приведёные в статье.
Почитай обсуждение. Тут много писалось. Повторять не хочется.
Здорово!
А в качестве сервера SOAP что-то другое, кроме 1с, использовать?
Очень хорошо с методической точки зрения написано.
Я такого стиля очень давно не видал.
Огромное спасибо.
Путь к документации в doc-файле теперь должен быть такой : file:///c:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm#_Toc176167634
Может кто подскажет, почему не работает с 8.2?
Если указываю относительный путь в Open, то запрос не отсылается, если полный — статус ответа 0. Пытался такой же скрипт на 1С смоделировать — там возвращается ошибка 500. Что не так делаю?
8.2 ещё не пробовал. Что браузер говорит при открытииhttp://localhost/preved.1cws ?
+
Мне тоже нравится SciTE … 🙂
кто нить подключал веб сервисы в асп, почему то когда вызываю метод сервиса пишет: There is an error in XML document (7, 4).
(59) Сграбь снифером (сетевым монитором) ответ web сервиса и дай его сюда. Не видя xml документа трудно сказать что не так в четвёртом символе седьмой строки.
омг… кажеться понял в чем ошибка, тип возвращаемого значения ф-ии был не тот…
теперь проблеема как в асп описать тип возвращаемого значения… ))
под IIS всё работало , поставил Apache, IIS убрал
вызовы …..xxxx.1cws и …..xxxx.1cws?wsdl возврвщают одно и тоже — содержимое файла xxxx.1cws
и, видимо поэтому, 1с не могу импортировать wsdl , получить ws ссылку.
(62) Модуль 1С не подгружен в апач. Ты точно добавил в httpd.conf такую строку ?
LoadModule _1cws_module «C:Program Files1cv81inwsap22.dll»
LoadModule _1cws_module «C:Program Files1cv81inwsap22.dll»
добавил, с правами вроде нормально. Похоже, что модуль не подгружается, или ещё
ProcessMonitor пишет
Operation: QueryOpen
Result: SUCCESS
Path: C:Program Files1cv81inwsap22.dll
(64) Странно. С таким не сталкивался.
Версия модуля 1С совпадает с версией апача? Если апач 2.0, то надо писАть так LoadModule _1cws_module «C:Program Files1cv81inwsapch2.dll»
версии соответствуют.
есть версия apache , которая проверена и работает? (а апач 2.2.15 скачивал с ихнего сайта, последняя версия, мож глючит)
и папка conf в которой есть изменения ?
скинь на мыло, может я чё в конфиге не то делаю.
(66) lyay собака яндэкс точка ру пришли httpd.conf
поставил ISS — работает.
http://localhosc/***.1cws и http://localhosc/***.1cws?wsdl
http://localhost/ws/***.1cws?wsdl) — работает……
останавливаю ISS, устанавливаю apache, (при установке пишу localhost)
в httpd вставляю
LoadModule _1cws_module «c:/Program Files/1cv81/bin/wsap22.dll»
в папку htdocs помещаю файл ***.1cws
обращаюсь
результат одинаковый.
останавливаю apache, запускаю IIS (
наверно я что-то не так настраиваю….
(66) раскопал у себя httpd.conf от 8.1
Оказывается я уже начал забывать как она публикуется. Файлы ws надо класть в папку, указанную в алиасе. Вот полная цитата публикации:
Показать
ТРАКТОРУ — УРА!!!!!!
Настройка IIS
для IIS рекомендую инструкцию
Запускаю сервис, требует аутентификацию. Если ввести пароль и имя пользователя из 1с, то возвращает Ошибка соединения с информационной базой. Что за черт, уже всю голову сломал, в инструкции ничего про это нет. У меня apache 2.2?
(71) почитай обсуждение. Этот вопрос задавался многажды. У пользователя под которым работает апач нет прав на файл базы 1С.
(72) Дело не в этом, когда я удаляю всех пользователей из конфигуратора, то все работает, если добавить хотя бы одного, то при запуске веб-сервиса требует аутентификацию, причем пароль из 1с не подходит, у пользователя стоят полные права
(73) Перейди на клиент-серверную версию. Это точно поможет.
ппробуй поставить IIS (70)
Очень полезная и нужная статья.
А как реализовать загрузку в 1с измененных данныйх. На пример, изменили фамилию на сайте и эти изменения отразились в базе. Очень нужно реализовать именно такое взаимодействие и причем онлайн. На платформе 8.2
в 8.2 вообще файлы .1cws не публикуются 🙁
Как надо настраивать IIS для этого случая и каким образом делать обращение к веб-сервису?
Пока что экспериментирую на «Здоровеньки булы».
У меня задача такая: по переданному коду 1с должна возвратить таблицу с данными.
(77)Что-то перестали приходить уведомления. В 8.2 обычно публикуются файлы default.vrd
полезная весчь эти веб сервисы, реализовал при их помощи связь с тсд)))
Супер — наконец-то я хоть немного понял.
Мне удалось реализовать подключение для разработки таких WEB-интерфесов, почему-то 1С это не очень широко рассказывает.
Примеры помогли в свое время
Спасибо, пригодилось.
Не работает под IIS? подскажите как нстроить? в чем различия? Может быть я пути неверно прописываю?
(84) Пошаговая инструкция настройки web-сервисов для 1Сv8.1 и IIS 7.5/7.0http://infostart.ru/public/75205/
http://infostart.ru/public/71480/
Настройка веб-клиента 1С:Предприятие 8.2 под Windows 7 x64 и IIS
(86) Всё верно написал. Так всё и есть. Или править настройки безопасности браузера, как это делает 1С, или работать php. Примеры даны на яваскрипте только для лучшего понимания внутренностей обмена меж браузером и веб сервером.
tango тебя тут врядли услышит.
Спасибо! Очень интересная статья
при публикации веб-сервиса в папке с веб доступом появляется *.vrd, а не *.1cws
ошибка 405 после отправки данных на сервак, соответственно ответа нет.
(90) Всё верно в 1С 8.2 публикуется именно default.vrd, а обращаться надо по адресу ИмяСервиса.1cws
Не могу пока скачать файлы , но очень хочется.
Очень был бы рад, если бы кто-то выложил на другом сайте эту статью.
Это точно, пример очень нужный
(92) (93) Раз уж тяжко заработать рейтинг, то вот статья. Я её пригрузил неким текстом, который нужно прочесть, если скачали файл с народа.
http://narod.ru/disk/31303617001/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F%20w eb%20%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D1%8B%201%D0%A1%20 %D0%B8%D0%B7%20%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0 %B0%20%D1%81%20%D0%BE%D0%B1%D1%8F%D0%B7%D0%B0%D1%82%D0%B5%D0 %BB%D1%8C%D0%BD%D1%8B%D0%BC%20%D0%B4%D0%BB%D1%8F%20%D0%BF%D1 %80%D0%BE%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8F%20%D1%82%D0%B5 %D0%BA%D1%81%D1%82%D0%BE%D0%BC.r.html
Интересно, надо попробовать [+]
Объединил свою тестовую конфигурацию с конфигурацией из примера.
Платформа 8.2.13.219
Опубликовал на IIS под именем «AlfaTest82» в папку «C:InetpubwwwrootAlfaTest82» с установленной галкой «Использовать аутентификацию операционной системы на веб-сервере».
В папке «C:InetpubwwwrootAlfaTest82» при публикации был создан файл default.vrd следующего содержания:
Показать
Ввожу в браузере «http://localhost/AlfaTest82/preved.1cws»
Получаю сообщение: «Файл не обнаружен ‘v8res://mngsrv/preved.1cws’ «
(96) Такой ошибки я не встречал, но путь приведён внутри 1С. Значит опубликовано верно. Похоже что криво объединил.
(97) Создал пустую базу (платформа 8.2, клиент-серверный вариант, MS SQL 2005).
Загрузил в нее конфигурацию из примера, опубликовал
Ввожу в браузере:»http://srv1c/IISTest/preved.1cws»
Получаю ту же ошибку: «Файл не обнаружен ‘v8res://mngsrv/preved.1cws’ «
Спасибо за всю информацию, Трактор. В создании сервисов в демонстрационных конфигурациях ПоставщикWSDemo — ПолучательWSDemo я разобрался и свои ошибки нашел. Ваши демонстрационные сервисы и свой сервис по анализу серийных номеров приборов исправно работают как при вызове из другого 1С, так и при вызове из браузеров IE и Opera. Перенес пакеты ХДТО и сервисы в файловую копию рабочей системы и не могу справиться с аутентификацией. Сделал специального пользователя «UserWS» с паролем «аа» и дал ему роли пользователя, администратора и полные права.
Для вызова из другой 1С ввел его имя и пароль в конструктор «Новый WSОпределения(…)» вызывающей 1С, как указано в хелпе, и получаю ответ:
{Обработка.ПроверкаVEGAНомера.Форма.Форма.Форма(14)}: Ошибка при вызове конструктора (WSОпределения)
Определения = Новый WSОпределения(«http://localhost/WebServicesDemo/ws/TestVegaSN.1cws? wsdl»,»UserWS»,»aa»);
по причине:
Аутентификация пользователя не выполнена.
Для вызова из браузера добавил имя тестового пользователя и пароль в строку ib по образцу Вашего текста файла default.vrd из сообщения №105. Несмотря на это, у меня требуется пароль. Запрос приложил. Пытался вводить на нем как тестового пользователя с паролем, так и свое имя со своим паролем, а у меня все права и на компьютере, и в 1С, и в сети — все равно получаю ответ «Аутентификация пользователя не выполнена».
Все экземпляры 1С и браузеры расположены на одной машине, поэтому сетевых проблем быть не должно. Что делать?
(197) С файловой базой вечно проблемы. Проверь наличие прав на каталог 1С у пользователя, под которым работает веб сервер. Если права есть, то попробуй переложить базу на сетевой диск или на диск с fat32. Должно помочь.
(199) никак не могу разобраться, воссоздавая Ваш пример по шагам)
1с 8.2, публикую веб сервис- скрин прилагаю) вы пишите, что файлик preved.1cws должен находиться в одной папке, но при стандартной публикации — его почему то там нет. И выезает ошибка на первом шаге Вашего руководства:
{«#exception»:»{http://v8.1c.ru/8.1/data/core }Exception»,»exception»:{«clsid»:»9db1fa37-b455-4f3f-b8dd-7de0ea7d6da3″,»descr»:»Файл не обнаружен ‘v8res://mngsrv/tr_preved.htm'»,»data»:»77u/ew0KezlkYjFmYTM3LWI0NTUtNGYzZi1iOGRkLTdkZTBlYTdkNmRhMyw i0KTQ vbW5nc3J2L3Ry zcnYvdHJfcHJldmVkLmh0
sNC50Lsg0L3QtSDQvtCx0L3QsNGA0YPQttC10L0gJ3Y4cmVzOi8
X3ByZXZlZC5odG0nIn0sMSwNCnsidjhyZXM6Ly9tbmd
bSIsMH0NCn0=»}}
Что нужно поменять?