<?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='\
Поясните, пожалуйста.
Т.е. АСУ, реализованное на «1С 7.7», перестало существовать?
Или решена задача «данные придется вбивать дважды» на стыке «ЭТРАН»-«1С 8.х», а в АСУ на «1С 7.7» данные вбиваются повторно?
Или всё АСУ клиента переведено с «1С 7.7» на «1С 8.х»?
(1) 7.7 существует и работает, новый функционал реализуется в 8.2 и постепенно переносится из 7.7 существующий.
на счет двойного ввода — пока вбиваются повторно, сейчас пытаемся управление процессом отгрузки сделать в 8.2, попутно можно будет сделать импорт, либо экспорт документов в ЭТРАН
(2)
Переход на 8.х с 7.7 дело полезное и, думаю, неизбежное.
Но заходить на этот переход со стороны «ЭТРАН» — смелое решение.
Или хороший повод…
Дело за малым — перевести всё остальное на 8.х. 😉
Занимаюсь той же проблемой, однако нашим старым решением была именно работа через SOAP, задача стояла только в чтении накладных. При переходе на 1С встала проблема невозможности достучаться до веб-сервиса ЭТРАН, т.к. 1С не поддерживает работу с веб-сервисом через прокси сервер. Статья довольно полезная, но поскольку никогда не работал с DCOM не совсем понятно как это настраивать.
>># На рабочем месте устанавливается COM объект компонента для доступа к ЭТРАН, настраиваются параметры доступа к ней через DCOM.
где взять установщик? в документации к ЭТРАНу по этому поводу ничего не написано.
>># На сервере 1С создается экземпляр DCOM объекта «EtranASUGO», с указанием, что объект будет «жить» на рабочем месте ЭТРАН.
можно узнать поподробнее как это делается?
желательно с примерами, хотелось бы конечно посмотреть на саму конфигурацию 🙂 , думаю в скором времени данная проблема будет актуальна не только для нас, но и по всей России.
(3) Было интересно решить эту задачу и на половину ее решили.
(4) Функция возвращающая COM для работы с ЭТРАН:
А про COM объект узнал из документации, нашел случайно.
Дело в том что компания разработчик ЭТРАН, продает свое решение для интеграции с АСУ грузоотправителя, собственно в РЖД на все вопросы об интеграции посылают к ним.
Ну а вообще про DCOM наверное надо почитать на специализированных форумах, я в нем не силен.
>>А про COM объект узнал из документации, нашел случайно.
я про него давно знаю, а вот найти до сих пор не получилось, интернет по этому поводу молчит.
(7) Думаю надо теребить РЖД, для работы в режиме АСУ-АСУ подписывается доп. соглашение, оно бесплатно, думаю копать нужно оттуда.
Правда я этого соглашения не видел.
В принципе, говорят что 8.2 работает и через SOAP, тогда немного меняется логика работы и обращаться к ЭТРАН нужно непосредственно с рабочего места.
Присоединяюсь к (4)
(10) Есть такая идея, самому написать некое подобие прокси-веб-сервиса, т.е. веб-сервис, который будет установлен на машине рабочего места ЭТРАН и будет редиректить запросы на сервис и отдавать ответы в 1С.
(11) А в чем смысл этого сервиса будет ??? Выложить его в веб — очень опасно, а внутри сети COM объект самое то, в настройках безопасности можно ограничить доступ одним компьютером.
И даже наличие веб сервисва не решает проблему взаимодействия с 1С.
На одном из наших филиалов сделали на флексе форму для формирования и отправки заявок в этран — прекрасно работает, но опять же нет связи с корпоративной системой, в которой эти заявки уже вбиты менеджерами.
Здравствуйте, у меня стоит аналогичная задача по загрузке данных из Этрана в 1С 8.2 транспортной накладной, скажите могли бы вы помочь с написанием этого кода? Вся программа полностью нам не нужна, так как имеется самостоятельная программа со своим функционалом и нужна загрузка одного документа.
скажите могли бы вы помочь с написанием этого кода?
Ну, допустим, это десяток строк кода — просто вызов COM-объекта. А дальше как вы собираетесь сапортить эту часть вашей конфигурации? Поделка Интелекса весьма специфична. Лично я потратил пару-тройку месяцев своей жизни на написание логики отработки _ошибок_ в выдаче из Этрана. А что собираетесь делать вы?
Вся программа полностью нам не нужна, так как имеется самостоятельная программа со своим функционалом и нужна загрузка одного документа.
Вы даже не понимаете что именно вам нужно =) Если вы убеждены, что просто выкачать накладную вам будет достаточно, то, как минимум, вы заблуждаетесь. Ибо выборку можно делать по внутреннему ID (а это просто порядковый номер сущности, а вам будет нужен именно ID накладной), плюс забавный механизм сторнирования и внесения правок (частенько забывают одновить дату изменения и изменять operID), ну и т.д. И как вы собираетесь объяснять клиенту странности работы конфигурации? =))
Другими словами: дерзайте, вы молоды и энергичны =)
Согласна пока я плохо себе представляю как реально организовать выгрузку данных из Этрана. Ну а ваши предложения, стоимость?
Есть такая идея, самому написать некое подобие прокси-веб-сервиса, т.е. веб-сервис, который будет установлен на машине рабочего места ЭТРАН и будет редиректить запросы на сервис и отдавать ответы в 1С.
если есть желание, могу предложить решение, позволяющие организовать шлюз а ЭТРАН(замена ASUGO интрефейса), работает с пулом запросом, можно распараллеливать запросы — все настраивается в конфиге. Со стороны клиента можно использовать прилагающуюся COM-DLL, использовать SOAP либо CLR Assembly для MSSQL сервера.
Вы даже не понимаете что именно вам нужно =) Если вы убеждены, что просто выкачать накладную вам будет достаточно, то, как минимум, вы заблуждаетесь. Ибо выборку можно делать по внутреннему ID (а это просто порядковый номер сущности, а вам будет нужен именно ID накладной)
Ошибаетесь, можно запрашивать данные и invoiceID и по invNumber(номер накладной) и по номеру вагона, причем ,повторюсь, в различных режимах —
только прибытие, только отправление, все, валидные и т.д. А если уж хотите зрить в корень, то прикручивайте получение данных по списанию денег с ЕЛС и выкачивайте накладные, даже если будет сторно, то логика тут не трехэтажная…
Согласна пока я плохо себе представляю как реально организовать выгрузку данных из Этрана. Ну а ваши предложения, стоимость?
вопрос в какой момент времени вам нужна эта накладная, режим АСУ-АСУ предусматривает несколько вариантов и режимов запроса данных накладных.
PS: если будут вопросы(по существу конечно) пишите в личку — постараюсь помочь.
UP:
хочу заметить, есть еще одни неприятные грабли — если посылать запросы в ЭТРАН через АСУГО или SOAP — не всегда возвращаются валидные xml….
Не рабзобрался как отправить личку…
если есть желание, могу предложить решение, позволяющие организовать шлюз а ЭТРАН(замена ASUGO интрефейса), работает с пулом запросом, можно распараллеливать запросы — все настраивается в конфиге. Со стороны клиента можно использовать прилагающуюся COM-DLL, использовать SOAP либо CLR Assembly для MSSQL сервера.
очень интересно, хотелось бы услышать стоимость, можно в личку =)
Ошибаетесь, можно запрашивать данные и invoiceID и по invNumber(номер накладной) и по номеру вагона, причем ,повторюсь, в различных режимах —
ок, есть invoiceID ‘A000001’, было сторнировано перед запросом 10 накладных. и? =) не помню как звучит отлуп (под рукой этрана нет) но что-то типа укажите точно что выбирать.. только список из чего выбирать не предлагает..
Есть такая идея, самому написать некое подобие прокси-веб-сервиса, т.е. веб-сервис, который будет установлен на машине рабочего места ЭТРАН и будет редиректить запросы на сервис и отдавать ответы в 1С.
можно использовать любой портфорвардер.
господа, а где, собссна, у этрана soap шлюз находится? хочу спрыгнуть с com-объекта =)
из доки:
года два назад, помню что ссылка из доки работала
ок, есть invoiceID ‘A000001’, было сторнировано перед запросом 10 накладных. и? =) не помню как звучит отлуп (под рукой этрана нет) но что-то типа укажите точно что выбирать.. только список из чего выбирать не предлагает..
A000001 — такой нумерации нет, если что
ответ на ваш вопрос — <useValid/>
вопросы по поводу сотрудничества прошу присылать на reflex2[собака]list.ru
A000001 — такой нумерации нет, если что
есть — оффбоард порожняк.. ну это так, к слову =)
есть — оффбоард порожняк.. ну это так, к слову =)
Рекомендую почитать матчасть….
Показать
ну а что ж не почитать? =)
* тип данных: строка (до 8 символов)
не разу не сталкивались с шести- и семизначными накладными? если не сталкивались — это не означает что их нет. прежде чем тыкать носом других, лучше разобраться самому 😉
Послушайте… Вы приводите пример:
ок, есть invoiceID ‘A000001’, …..
так вот, в invNumber — хоть черта лысого рисуйте(тип строка), а я Вам ответил что invoiceID тип данных ЦЕЛОЕ ЧИСЛО. От Вас много претензий — читайте что пишите….могли бы поблагодарить за ответ на Ваш вопрос по поводу того как получить одну накладную вместо списка.
Так все таки, где найти и у кого просить этот ASUGO ?
(26) dvim, мы в итоге реализовали через протокол SOAP, всё шикарно работает, даже через прокси-сервер.
(27) belchonokh, а прокси сервер каким боком тут ? Как у вас сервер 1С общается с компьютером на котором стоит рабочее место ЭТРАН ?
(26) нужно трясти тех с кем заключали договор (скорее всего ваша дорога, ДЦФТО) и приложение о работе в режиме АСУ-АСУ. У рждшников есть и дока и приложение для взаимодействия. Но так как у разработчика системы (Интелекс со товарищи) есть своя разработка для работы в режиме АСУ-АСУ, то рждники продвигают ее, может быть имеют с этого что-то, а может просто ничего не понимают.
(19) Awarder, видимо имеется ввиду Номер накладной
не
>>ок, есть invoiceID ‘A000001’
а
ок, есть invNumber ‘A000001’
тогда на самом деле надо выбрать useValid
А вообще запросы сделаны просто и логично, за исключением пары моментов с получения статусов документов 😉
Пример какой нибудь на SOAP eсть?
Я правильно понимаю, что этот код надо будет запускать на компьютере с Этраном?.
Просто пока только подходим к этой задаче.
логично спроектировано начало, нелогично местами работает =)
а насчет соапа — ну не знаю, у меня точка входа не работает, приходится через ком-объект =(
(31) Awarder, попробуй дельфевым соапом, может он работает, потому как етран на дельфе или Цбилдере.
(32)
у меня по дефолтному пути длл выгружается =) тут не принципиально чем обращаться
(28) на рабочем месте с ЭТРАНом стоит прокси (потому как ставить VipNet на сервер 1С равносильно самоубийству сервера), сервер соответственно посылает запрос на прокси, он перенаправляет в сеть VPN и возвращает ответ в виде XML запроса, запросы проходят по регламентному заданию по расписанию.
(33) Awarder, у них для АСУ-АСУ отдельный сервер, на котором по данному пути возвращается описание, правда у нас не на всех компьютерах оно возвращалось, на некоторых так же сохранялась dll (не знаю от чего это зависит), но всё равно работает на всех компьютерах.
Про протокол SOAP. Штатный формат 1С (WS-ссылки) не работает, в виду я так понимаю не полной поддержки всех форматов SOAP.А если подумать, SOAP — это всего лишь надстройка над протоколом HTML (в сети есть описание стандарта, формат сообщений и заголовков). Т.е. нужно просто слать сообщения в формате XML через HTTP. Поначалу мы хотели выкрутиться штатными средствами 1С, есть там HTTP-соединение или что-то в этом духе, но там нашелся глюк, либо фитча, в 1С http-запрос не дает формировать строку заголовка с двумя двоеточиями в ней, несмотря на то, что второе двоеточие используется уже в кавычках. В общем взяли COM объект входящий в windows и организующий такой же http-запрос только без лишних заморочек и проверок. Формат посылаемых сообщений на сервер приложений подсмотрели (правильно подсказывают) у Delphi. Дальше реализовали нужные сообщения по той документации, что предоставили в РЖД. Я к чему это рассказываю, возможно из-за той разработки, которую продвигают рждшники, возможно по незнанию, но нам сказали, что у нас ничего не выйдет, что доступ АСУ-АСУ работает только с их разработкой, очень неохотно давали нам адреса серверов АСУ-АСУ. Вот и хочется сказать, всё отлично работает!!! Пусть 1С конфигураций работающих напрямую с ЭТРАНом будет больше, описанная выше технология отлично работает! Их дорогая и тяжеловесная разработка никому не нужна, зачем иметь ещё одну прокладку между системами, если можно всё хранить прямо 1С-ке.
(34) belchonokh,
а адреса серверов (и пути) подсказать можете? (если я правильно понимаю закладка туннель в «сервер шлюз этран»)
В общем взяли COM объект входящий в windows и организующий такой же http-запрос только без лишних заморочек и проверок
Расскажите по подробней что за объект????
(36) serhenry, COMОбъект(«Microsoft.XMLHTTP») — это для windows 7 или Server 2008, как пользоваться в сети есть, например _http://forum.infostart.ru/forum14/topic30957/
(35) Awarder, насколько я помню, закладка туннель, там где надо галку ставить «использовать виртуальный адреса», сам адрес требуйте у дороги, если вы платите по договору за АСУ-АСУ, то вам должны дать этот адрес (мы его долго пытались получить, в итоге нам дали телефон некоего программиста в РЖД, который знает вообще знает, что есть такие адреса, кстати с удивлением обнаружили что этот адрес уже был забит в VipNet параллельно с основным, так что можете попробовать проверить все адреса, которые там забиты).
(35) Awarder, пути уже давали выше,http://xxx.xxx.xxx.xxx:xxxx/EtranServer/EtranLR.dll/soap
Спасибо за ответ, очень помог (37).
Только не совсем понятно про формат посылаемых сообщений на сервер приложений, как это посмотреть????
Формат посылаемых сообщений на сервер приложений подсмотрели (правильно подсказывают) у Delphi
(39) serhenry, формат сообщений соответствует стандарту SOAP 1.1
вы можете использоватьSOAPToolkit (правда Microsoft прекратил его поддержку из-за введения WCF )
Сервис = Новый COMОбъект(«MSSOAP.SoapClient30»);
Сервис.MSSoapInit(«ТУТ URL Сервера ЭТРАН»);
…….
Если этот вариант не устраивает, то можете взять за основу «Microsoft.XMLHTTP», в этом случае описание стандарта SOAP естьтут и тут
А если подумать, SOAP — это всего лишь надстройка над протоколом HTML (в сети есть описание стандарта, формат сообщений и заголовков)
При всем уважении, протокола HTML нет, это стандарт. А вот SOAP считается протоколом, хотя с сильной натяжкой, я бы отнес его к стандарту вызова удаленных процедур или функций(RPCRFC) поверх транспорта (как то HTTP, HTTPS, SMTP и т.д.)
закладка туннель, там где надо галку ставить «использовать виртуальный адреса»
Должно работать и с тунелированием и без.
Еще раз повторюсь, коллеги, при использовании SOAP проверяйте все ли ответы корректные, сталкивался с тем что приходящий XML соержит левые спецсимволы, из-за которых xml-документ становится не валидным для парсера.
(39) serhenry, нужно написать простейшую программку на Delphi, которая используя метод GetBlock отправляет какой-нибудь простейший запрос (по документации к ЭТРАН) и куда-нибудь выводит ответ. Затем берете отладчик и проваливаетесь глубоко в модули Delphi, где на низком уровне формируется заголовок и само сообщение в XML, смотрите в отладчике содержимое этих переменных и в 1С формируете всё то же самое (у нас на разбор ушло около двух дней)
P.S. Кодом не помогу, коммерческая тайна как-никак, итак много рассказал =)
(40) reflexfx,
При всем уважении, протокола HTML нет, это стандарт
Извиняюсь, опечатался, имел ввиду именно http
Еще раз повторюсь, коллеги, при использовании SOAP проверяйте все ли ответы корректные, сталкивался с тем что приходящий XML соержит левые спецсимволы, из-за которых xml-документ становится не валидным для парсера
Подтверждаю, приходится в приходящей строке пройтись СтрЗаменить, иначе парсер сыпет ошибками, правда сталкивались только на нескольких справочниках, как мне показалось в значениях полей этих справочников.
(41) belchonokh,
что же секретно в реализации SOAP over HTTP и куске кода выдранном из VCL?
(39) serhenry,
SOAP HTTP Binding
вот ссылка на подробное описание
Подтверждаю, приходится в приходящей строке пройтись СтрЗаменить, иначе парсер сыпет ошибками, правда сталкивались только на нескольких справочниках, как мне показалось в значениях полей этих справочников.
Не только при запросе справочников, частенько происходит при запросе данных накладных и заявок на перевозку.
(43) reflexfx, (41) belchonokh, благодарю, огромное спасибо очень помогли 😉
(38) belchonokh,
404 — not found..
можете сказать адрес на другом конце тунеля?
(46) Awarder, постараюсь посмотреть, а так требуйте от РЖД, если у вас заключен договор АСУ-АСУ вам обязаны его предоставить, а если не заключен, то у вас туда не будет доступа, скорее всего будет NOT FOUND (это моё предположение)
Самая большая проблема -учтите саппорт любого АСУ АСУ сильно платный у РЖД.
Стоимость ~ 28 тыс в мес.
Для нас стало неожиданным — процесс затормозился.
Часть руководителей считает, что «андроида» нанять дешевле
(2) Скажите пожалуйста, каковы успехи с данной разработкой?
Тоже поставили подобную задачу, нужно пару отчетов по ЭТРАН что погрузили, когда, дата и время прибытия на станцию, время подачи и сколько осталось погрузить вагонов.
Т.е. данный отчет это объединение данных по накладным, заявки на перевозку и ведомости подачи/уборки.
Не могли бы Вы показать Вашу реализацию или подсказать куда копать.
Спасибо.
Первое куда копать — согласовать 30 тыс/мес … (У нас с этим встали проблемы. Андроида нанять дешевле, по крайней мере пока)
Второе — в ИВЦ дают ASUGO + примеры запросов.
Далее берем и пишем.
+(2) ну и конечно было бы здорово иметь пример подключения и работы с ЭТРАН в 1С.
(51) А 30 тыс/мес это за что? Просто у нас уже есть ЭТРАН и в нем работает 3 пользователя. Просто хотят отчет по вагонам.
А вот это уже интересней. Если программа уже стоит, где взять?
(52) для доступа в режиме асу-асу необходимо дополнительное рабочее место, такое рабочее место стоит 30 т. в месяц.
Взять у тех, с кем договор на рабочее заключите (ваша дорога, видимо)
У нас тоже есть …
За саппорт именно АСУ АСУ режима.
У меня тема и провисла ибо было рассчитано, что за нанятый за половину суммы андроид выгрузит в Ексель за 2-3 часа все необходимые данные,а далее — скриптом закачиваем в Конфу.
Просто совет — сначала согласовать сумму , а потом уже думать о технике
(53)(54) Понял, спасибо.
Думаю, может тоже через Excell?
Тут выбор простой — либо «по правилам», но за большие деньги.
Либо — криво, но бесплатно.
Слышал про 3 вариант- программу, которая достает и экспортирую данные из «памяти» клиента этрана.
Но по ней — данных нет
Интересует опыт внедрения данного продукта для промышленного предприятия с оборотом вагонов от 400 шт в месяц. Требуется возможность отслеживания через Этран отправленных в наш адрес вагонов, контроль операций в местах обработки вагонов и, особенно, контроль штрафов за простои и определение виновников данных простоев.
Какого данного?.
Здесь обсуждается технология общения с АСУ АСУ.
Это технология позволяет привязать данные Этран к ВАШЕЙ системе
Продуктов я знаю 2. Первый это интеллексовский (от самих разработчиков Этрана). Цена у него большая, функционал широкий, но подробно я я его не рассматривал.
вот . Ни разу не реклама . цена у конфы приемлемая, судя по описанию и функционалу — все вполне внедряемо.
Второй —
Нас остановило (надеюсь временно) необходимость тратить 30тыс/мес за сам обмен. Дорого это — и не так просто согласуется. Советую начать с этого вопроса, а не наоборот (может впустую работа быть).
Ps
Сама интеграция с этраном есть у многих крупных компаний и перевозчиков.
(57) Starikova, День добрый!
Вы уверены что Вам нужен именно ЭТРАН, данных АСОУП не будет достаточно?
Если у Вас средний оборот 400 вагонов — то по затратам это будет гараздо выгоднее чем платить за АСУ-АСУ(правда провозной платы в этих данных не будет, НО если нужны деньги, то всегда есть возможность обратиться в ГВЦ и заключить договор на САО(система абонентского обслуживания, они настроят для вас формирование и передачу данных по отправкам и прибытию вагонов в ваш адрес) ).
Контроль операций в местах обработки вагонов — чем вам поможет ЭТРАН в этом вопросе?
АСОУП — это слежение. У него кстати много альтернативных поставщиков (техноцентр, гдевагон)
В нем — данные по движению вагонов и поездов.
в Этране же данные по финансовым расчетам с РЖД
(61) dvim, информацией из АСОУП, бесспорно, торгуют все кому не лень(даже я:)).
Эту задачу можно решать по разному, а по скольку вводных для понимания ситуации мало, то предложил варианты,
а именно:
АСОУП(автоматизированная система оперативного управления парком) — если штрафы рассчитываются по условиям договоров с экспедиторами, то этих данных достаточно, подходы есть, определение простоев в пути(и причин этих простоев) можно реализовать.
САО — система ГВЦ для получения не только оперативных данных, но и данных по отправкам(основной минимум реквизитов из накладной с суммами), только в этом случае вы не платите фиксировано 25-30т.р., а платите только за объем переданной вам информации.
информацию по финансовым расчетам мы берем в ЦФТО — оригиналы счетов фактур, и их копии в электронном виде. Ну и все начисления попавшие в расчет.
ЭТРАН по сути документооборот — согласование, изменение статусов, факты отправки, раскредитации.
У нас, например, 1 ЕЛС и несколько филиалов. Накопительные ведомости согласуются в 1С (потому как филиалы их не видят), а потом эти статусы переносятся в ЭТРАН.
Сейчас есть необходимость видеть заявки на перевозку, когда один филиал отправляет другому вагоны под отгрузку, необходимо указывать номер заявки. Это все видно.
Ну и побочный продукт это возможность видеть историю движения вагонов, потому как данные отправлений/прибытий из АСОУП мягко говоря не очень достоверны. Я сам обработкой этих данных не занимаюсь, но сверял загруженный результат с данными ЭТРАН — не все совпадает.
(63)
Я бы сказал наоборот — АСОУП как раз таки показывает самую реальную картинку движения вагонов, это один из китов РЖД(и вагон в 99.9% случаев не сдвинется с места без отражения соответствующего макета в базе дорог), а ЭТРАН показывает искаженные данные по движению(Вы верно заметили —
).
Расскажите подробней о САО а то вообще о нем ничего не знаю.
Там есть расход на 1 вагон в поезде (групповой отправке) ?
(65) dvim, для примера информация из сао
Screenshot
Накладная + Вагон + Тариф
(65) dvim, ну не знаю, деньги вам выставляются на основании данных ЭТРАН. Может быть у нас не полные данные по отправлениям/прибытиям (очень может быть) но построить по ним картину движения вагона затруднительно. Не редка картина: есть отправка — нет прибытия, есть прибытие — нет отправки. В общем не слабо матерятся диспетчера, когда делают отчеты по груженым отправкам и сверяют с данными которые показывают филиалы.
milanse, как связаться с вами по интеграции с этран
(64) reflexfx, Можно говорить наоборот, но у меня из наших данных по отправлениям и прибытиям не удалось построить картины движения. То есть только отправления, то есть только прибытия, то кадого по 2-3-4-5 раз, а иногда в ЭТРАН есть накладная а в данных гвц нет, если это называется 99.9, то я извиняюсь.
(69)
не очень понял про картину движения по данным отправления и прибытия, имхо картину движения нужно по данным АСОУП строить.
Есть отправления и нет прибытия — такие случаи возможны, в любой ИС есть огрехи. Я свожу два источника отпрприб + данные ЭТРАН чтобы снизить вероятность ошибки. Про 2-3-4-5 — там есть вполне объяснимая логика — какие то записи корректировочные(уточни у поставщика). А вот про отсутствие и наличие данных в том или ином источнике можно говорить долго, например это неправильное оформление накладных через АСУ-АСУ, например, в накладной указано правильно ОКПО и правильное наименование получателя(для случая если в твой адрес идут вагоны и в контексте видимости накладной ты являешься только получателем) а ИД организации пустое т.е. не выбрано из ПУЖТ, то в этом случае накладной ты не увидишь. И опять же эти данные только для фин.расчетов. А для движения использую данные АСОУП и ничего более — диспетчер должен видеть реальную картину положения вещей.
Вопрос всем.
С чтением данных — разобрались. Из нюансов — XML разьирать лучше руками, он не всегда валидный с точки зрения XML
Но у нас проблемы с записью
Возвращается ошибка
«Количество контейнеров должно соответствовать планируемому количеству контейнеров !»
Хотя — все совпадает…
(71) Для того что бы XML стал валидным нужно со стокой XML сделать следующее (установлено экспериментально):
После этого работает метод
После этого можно пользоваться конструкциями типа
Теперь по поводу планируемого количества, в документации сказано, что если не указывать, оно будет равно фактическому. Возможно у Вас указан не верный тип накладной. Единственное что я нашел у себя про планирование так это типы контейнеров (надеюсь поможет):
Показать
У вас — чтение накладной. С этим проблем никаких нет.
Проблемы с попыткой записать в Этран свою накладную .
Количество — совпадает, заявка по которой формируем действующая…
Добрый день.
на текущий момент данный пост еще актуален? запрос возвращает «иероглифы», может кто пример скинуть отправки и возврата xml? сейчас делаю так:
QueryFileName = GetTempFileName();
RecordObject = New XMLWriter;
XMLWriterSettings = New XMLWriterSettings(«windows-1251», , False);
RecordObject.OpenFile(QueryFileName, XMLWriterSettings);
RecordObject.WriteXMLDeclaration();
RecordObject.WriteStartElement(«getNSI»);
RecordObject.WriteAttribute(«version», «1.0»);
RecordObject.WriteStartElement(«tableName»);
RecordObject.WriteAttribute(«value», «DF_DANGER»);
RecordObject.WriteEndElement(); //tableName
RecordObject.WriteEndElement(); //getNSI
RecordObject.Close();
SoapClient = Новый COMОбъект(«mssoap.SoapClient»);
SoapClient.MSSOAPInit(«http://ххххх:ххххх@10.248.35.9:8092/EtranServer/EtranHttpSrvr.dll»,»IEtranSysservice»,»IEtranSysPort»);
ResultFile = GetTempFileName();
ResultFile = SoapClient.GetBlock(«ххххх», «ххххх», QueryFileName);
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ResultFile);
Пока ЧтениеXML.Прочитать() Цикл
Сообщить(ЧтениеXML.Значение);
КонецЦикла;
ЧтениеXML.Закрыть();
SoapClient = Undefined;
Господа, подскажите, как же все таки сделать так, чтоб можно было с сервера 1С отправлять запросы на машину с установленным EtranASUGO и VipNet-ом?
Если запускать как то так:
непосредственно с клиента (машины с VipNet-ом), то все работает. А вот как сделать чтоб запрос с сервера 1С уходил на другой комп с VipNet-ом, там выполнялся и возвращался результат обратно на сервер 1С — не понимаю. Как (чем)запрос можно отредиректить?
(74) st-ty@ngs.ru, Я работаю с ЭТРАНом через другой объект
// С помощью COM-объекта создать соединение с веб-сервисом ЭТРАН.
WinHttp = Новый COMОбъект(«Microsoft.XMLHTTP»);
WinHttp.Open(«POST», СокрЛП(Константы.ЭТР_АдресВебСервиса.Получить()), 0);
WinHttp.SetRequestHeader(«Accept-Language», «ru»);
WinHttp.setRequestHeader(«Content-Language», «ru»);
WinHttp.SetRequestHeader(«Accept-Charset»,»UTF-8″);
WinHttp.setRequestHeader(«SOAPAction», «»»urn:SysEtranInt»»»);
WinHttp.setRequestHeader(«Content-Type»,»text/xml; charset=UTF-8″);
// Запрос, отправляемый веб-сервису с параметрами, заданными переданным параметром. Данные для авторизации — из констант.
Запрос = «<?xml version=»»1.0″»?>
| <SOAP-ENV:Envelope xmlns:SOAP-ENV=»»http://schemas.xmlsoap.org/soap/envelope/»» xmlns:xsd=»»http://www.w3.org/2001/XMLSchema»» xmlns:xsi=»»http://www.w3.org/2001/XMLSchema-instance»» xmlns:SOAP-ENC=»»http://schemas.xmlsoap.org/soap/encoding/»»>
| <SOAP-ENV:Body SOAP-ENV:encodingStyle=»»http://schemas.xmlsoap.org/soap/encoding/»»>
| <NS1:GetBlock xmlns:NS1=»»SysEtranInt»»>
| <Login xsi:type=»»xsd:string»»>» + СокрЛП(Константы.ЭТР_Пользователь.Получить()) + «</Login>
| <Password xsi:type=»»xsd:string»»>» + СокрЛП(Константы.ЭТР_ПарольПользователя.Получить()) + «</Password>
| <Text xsi:type=»»xsd:string»»> »
+ ЗапросПараметр + »
| </Text>
| <ECP xsi:type=»»xsd:string»»></ECP>
| <TSP xsi:type=»»xsd:string»»></TSP>
| </NS1:GetBlock>
| </SOAP-ENV:Body>
|</SOAP-ENV:Envelope>»;
WinHttp.Send(Запрос);// Параметром передать POST-данные веб-сервису.
// Получен ответ — забрать из него строку ответа.
ЧтениеXML = Новый ЧтениеXML;
Тхт = WinHttp.ResponseText();
ЧтениеXML.УстановитьСтроку(Тхт);
(75) batyrkin, сначала я использовал прокси-сервер (3proxy), запрос уходил и возвращался нормально, потом мне сказали что это не хорошо с точки зрения безопасности, сейчас у меня на машине с VipNetом заданием запускается 1С-ка от имени другого пользователя (что бы не было видно на экране, а-ля служба), задания на загрузку-выгрузку из ЭТРАНа лежат в регистре, считываем, отправляем, получаем.
(73) dvim, у меня тоже запись, планируемое количество контейнеров мы не отправляем, ЭТРАН сам считает и возвращает в записанной накладной.
(76) belchonokh, Большой респект , как раз искал как XMLHTTP запрос сделать и тут ты :))
У меня вопрос, такой запрос только с машины где защищенный канал настроен прокатит или можно пытаться с любой ?
П.С.
ЗапросПараметр = »
|<getInvoice version=»»1.0″»>
|<invNumber value=»»910105″»
|<useMod11/>
|</getInvoice>»;
такой делаю.
(78) sir, если не настроен прокси на защищенной машине, то прокатит только на той машине. Если настроен прокси на той машине, достаточно в IE настроить использование этого прокси, и ком объект будет сам через него работать.
П.С. Запрос правильный =).
(79) belchonokh, ясн, спс.
а вот еще вопрос — Урл правильный какой будет
вида «http://ххх.ххх.ххх.ххх:ххххх@10.32.0.112:8092/EtranServer/EtranLR.dll/soap»
или «http://ххх.ххх.ххх.ххх:ххххх/EtranServer/EtranLR.dll/soap»
(80) sir, у нас используется такой http://ххх.ххх.ххх.ххх:ххххх/EtranServer/EtranLR.dll/soap
Не хочет почему то работать :
» Ошибка при вызове метода контекста (send): Произошла исключительная ситуация (msxml3.dll): Системная ошибка: -2146697211.» (
(82) Скорее всего у вас недоступен адрес, попробуйте в браузере набрать http://ххх.ххх.ххх.ххх:ххххх/EtranServer/EtranLR.dll — даёт скачать ДЛЛ ?
(83) belchonokh, похоже, пишет «соединение закрыто удаленным сервером».
(84) sir, нужно помнить, что адрес куда цепляется клиент и адрес для АСУ-АСУ — ЭТО РАЗНЫЕ адреса. На сервере клиента скорее всего доступ закрыт. Требуйте адрес для АСУ-АСУ от РЖД, деньги то немалые берут за подключение.
Мы просто поставили на комп с VipNet IIS и сделали прослойку, которая публикует методы Этрана в локальную сеть.
(85) belchonokh, http прокси (free proxy, например) поставил и норм. В принципе сом объект это и делает, объект создается на машине с этраном, а работаешь ты с ним как с локальным объектом.
Ребята подскажите у кого-нибудь работает система выгрузки данных этрана в 1с?
Добрый день, как можно получить модуль? Как можно узнать на что он на текущий момент способен? Можно ли связаться с разработчиком на прямую? Сколько стоит?
(89) Добрый, на распространение и поддержку не имеется времени.
Данные о дислокации вагонов можно через ЭТРАН получать?
(91) Нет, ЭТРАН для работы с документами и ЭП, сейчас хотят даже получение базовой НСИ о вагонах сделать платным. Дислокацию много кто другой дает получать )
«у кого-нибудь работает система выгрузки данных этрана в 1с» — работает, только код на C# а не на 1С.
При этом работает не только выгрузка, но и создание накладных на УКП ( на формирование целого поезда)
По дислокации полно предложений. Если платформы постоянные, то 100-200 руб/ мес, либо по 5-8 руб в сутки.
(93) На 1с тоже все прекрасно работает и создание накладных и заявок и подписание эп.