Взаимодействие платформы 1С 8.2 с системой ЭТРАН ОАО РЖД

17.09.10

Функциональные - Документооборот и делопроизводство (СЭД)

Описывается опыт разработки конфигурации и построение взаимодействия с системой ЭТРАН ОАО РЖД

Что такое ЭТРАН

Начнем с того что же такое ЭТРАН (электронная транспортная накладная). Это система безбумажного документооборота между ОАО РЖД и ее контрагентами (грузоотправители, грузополучатели, экспедиторы...). РЖД довольно активно продвигает систему и в настоящий момент многие организации активно ее используют.

Для клиента ЭТРАН это рабочее место в окне браузера, подключенное по впн каналу к серверу РЖД. В системе можно формировать и корректировать заявки на перевозку, накладные и совершать другие операции. При наличии цифровой подписи можно работать действительно без использования бумажных документов, либо свести их к минимуму.

Взаимодействие в режиме АСУ-АСУ

Если у клиента есть своя АСУ, то при наличии еще и ЭТРАН, данные придется вбивать дважды - сначала а свою систему, потом в ЭТРАН, либо наоборот. Для облегчения взаимодействия система ЭТРАН предоставляет программный доступ к своим данным в режиме АСУ-АСУ. Остановимся на этом поподробнее.

Так как ЭТРАН построена на базе веб технологий, то доступ предоставляется посредством SOAP запросов к web сервису. В документации описано 2 способа подключения к web сервису:

  • прямые SOAP запросы;
  • работа через обертку - COM объект предоставляющий интерфейс для выполнения запросов.

Видимо разработчики системы неспроста предоставили 2 способа, потому что с первым у меня ничего не получилось. Не буду здесь описывать мои мучения, но скажу, что представления о SOAP у borland  и microsoft разные ;). 

Что мы имеем

АСУ построенная на базе платформы 7.7 (в своем далеком прошлом комплексная конфигурация)

десяток филиалов работающих в этой системе

механизм передачи и консолидации данных в управлении

необходимость переход от оформления бумажных накладных к работе с ЭТРАН

Что хочется видеть

Распределенную систему

Желательно доступ филиалов через web к общим данным

Обмен данными с системой ЭТРАН

Переходим на новые технологии

После ознакомления с возможностями платформы 1С 8.2, стало понятно, что это как раз то что нам нужно. Было принято решение о заморозке разработки в семерке и постепенном переносе функционала на 8.2. Попробовать как работает 8.2 решил на куске взаимодействия с системой ЭТРАН. 

Итак, для взаимодействия в режиме АСУ-АСУ ЭТРАН предоставляет COM объект, принимающий запросы и возвращающий результат в синхронном режиме. Так как рабочее место подключено к ЭТРАН через VPN, то доступ к ней (для пущей безопасности) желательно осуществлять с этого рабочего места. Я не сильно знаком с технологиями COM, но то что существует DCOM знаю, и, даже, занимался разработкой библиотеки которая такой доступ предоставляет, поэтому сразу стало понятно как достучаться до рабочего места ЭТРАН через локальную сеть.

Как получилось

Общая схема работы механизма доступа к системе ЭТРАН:

  1. От рабочего места ЭТРАН до сервера поднимается VPN канал. 
  2. На рабочем месте устанавливается COM объект компонента для доступа к ЭТРАН, настраиваются параметры доступа к ней через DCOM. 
  3. На сервере 1С создается экземпляр DCOM объекта "EtranASUGO", с указанием, что объект будет "жить" на рабочем месте ЭТРАН.
  4. Посылаем запросы и получаем ответы от объекта EtranASUGO.

Кратко о программной реализации.

Программно все это реализовано в виде конфигурации на платформе 1С 8.2. Созданы объекты метаданных, для отображения предоставляемых системой ЭТРАН данных:

  • документы "Заявка", "Накладная", "Акт общей формы", "Ведомость подачи-уборки", "Накопительная ведомость";
  • справочники "Вагоны", "Контрагенты", "Станции", прочая НСИ;
  • перечисления;

Реализован набор процедур для загрузки данных из системы ЭТРАН. Система позволяет запрашивать данные документов измененных за определенный период. Таким образом можно получать и поддерживать в актуальном состоянии все документы к которым у вас есть доступ. Вместе с документами по ссылкам загружаются и обновляются справочники (НСИ в терминах системы ЭТРАН)

Загрузка данных идет в фоне через механизм регламентных заданий.

COM объект создается в серверной процедуре в модуле с флажком "Повторное использование возвращаемых значений" - "На время сеанса". Таким образом отпадает необходимость создания объекта при каждом обращении к системе ЭТРАН.

 

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Бухгалтер Пользователь Руководитель проекта 1С:Предприятие 8 Управленческий учет Платные (руб)

Организуйте правильный оборот документов на вашем предприятии в 1С. Ведение учета и хранения документов. Управление потоками документации между подразделениями. Работа с договорами в компании. Автоматизация процессов подготовки, согласования и подписания документов. Сократите время и объем ошибок с 1С:Документооборот! Покупайте в Инфостарт и получайте 15% бонусов на наши услуги, сервисы и мероприятия!

63100 руб.

19.02.2016    116441    169    5    

130

Внешние источники данных Разработчик Аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

35000 руб.

15.11.2022    33785    53    49    

51

1С:Предприятие 8 Платные (руб)

"1С:Архив" – это универсальная система для надежного долговременного хранения документов с гарантией юридической значимости на неограниченный срок. Решение разработано на основе нормативно-правовых актов по архивному делу, поддерживает операции хранения документов: от попадания в архив до уничтожения, и не имеет ограничений на объем хранимых данных. "1С:Архив" сопровождается методологической поддержкой в виде организационных документов по хранению, входящих в состав "Комплекта нормативных документов" к "Методике управления документами и совместной работой", разработанной специалистами фирмы "1С". Использование "1С:Архива" позволяет организовать единое хранилище всех бумажных и электронных документов из разных информационных систем, вести архивный учет в соответствии с требованиями Росархива и снизить нагрузку на учетные системы. С 1 апреля 2026 года стоимость изменится на 14%, успейте купить решение по цене 2025 года!

117000 руб.

24.10.2022    8734    17    1    

16

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

85400 руб.

05.10.2022    14552    17    8    

17

Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

122000 руб.

19.08.2020    30606    28    3    

29

Внешние источники данных Зарплата Бюджетный учет Разработчик Бухгалтер 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 7.хх учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.

85400 руб.

24.04.2017    57637    99    165    

91
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. hogik 447 17.09.10 15:10 Сейчас в теме
Поясните, пожалуйста.
Т.е. АСУ, реализованное на "1С 7.7", перестало существовать?
Или решена задача "данные придется вбивать дважды" на стыке "ЭТРАН"-"1С 8.х", а в АСУ на "1С 7.7" данные вбиваются повторно?
Или всё АСУ клиента переведено с "1С 7.7" на "1С 8.х"?
2. milanse 41 17.09.10 15:31 Сейчас в теме
(1) 7.7 существует и работает, новый функционал реализуется в 8.2 и постепенно переносится из 7.7 существующий.

на счет двойного ввода - пока вбиваются повторно, сейчас пытаемся управление процессом отгрузки сделать в 8.2, попутно можно будет сделать импорт, либо экспорт документов в ЭТРАН
3. hogik 447 17.09.10 16:02 Сейчас в теме
(2)
Переход на 8.х с 7.7 дело полезное и, думаю, неизбежное.
Но заходить на этот переход со стороны "ЭТРАН" - смелое решение.
Или хороший повод...
Дело за малым - перевести всё остальное на 8.х. ;-)
Арчибальд; +1 – Ответить
5. milanse 41 20.09.10 08:07 Сейчас в теме
(3) Было интересно решить эту задачу и на половину ее решили.
49. Diversus 2343 12.05.12 12:13 Сейчас в теме
(2) Скажите пожалуйста, каковы успехи с данной разработкой?

Тоже поставили подобную задачу, нужно пару отчетов по ЭТРАН что погрузили, когда, дата и время прибытия на станцию, время подачи и сколько осталось погрузить вагонов.

Т.е. данный отчет это объединение данных по накладным, заявки на перевозку и ведомости подачи/уборки.

Не могли бы Вы показать Вашу реализацию или подсказать куда копать.

Спасибо.
51. Diversus 2343 12.05.12 12:19 Сейчас в теме
+(2) ну и конечно было бы здорово иметь пример подключения и работы с ЭТРАН в 1С.
52. Diversus 2343 12.05.12 12:21 Сейчас в теме
(51) А 30 тыс/мес это за что? Просто у нас уже есть ЭТРАН и в нем работает 3 пользователя. Просто хотят отчет по вагонам.

Второе - в ИВЦ дают ASUGO + примеры запросов.

А вот это уже интересней. Если программа уже стоит, где взять?
54. milanse 41 12.05.12 12:28 Сейчас в теме
(52) для доступа в режиме асу-асу необходимо дополнительное рабочее место, такое рабочее место стоит 30 т. в месяц.
Взять у тех, с кем договор на рабочее заключите (ваша дорога, видимо)
4. belchonokh 25 19.09.10 10:35 Сейчас в теме
Занимаюсь той же проблемой, однако нашим старым решением была именно работа через SOAP, задача стояла только в чтении накладных. При переходе на 1С встала проблема невозможности достучаться до веб-сервиса ЭТРАН, т.к. 1С не поддерживает работу с веб-сервисом через прокси сервер. Статья довольно полезная, но поскольку никогда не работал с DCOM не совсем понятно как это настраивать.

>># На рабочем месте устанавливается COM объект компонента для доступа к ЭТРАН, настраиваются параметры доступа к ней через DCOM.

где взять установщик? в документации к ЭТРАНу по этому поводу ничего не написано.

>># На сервере 1С создается экземпляр DCOM объекта "EtranASUGO", с указанием, что объект будет "жить" на рабочем месте ЭТРАН.

можно узнать поподробнее как это делается?

желательно с примерами, хотелось бы конечно посмотреть на саму конфигурацию :) , думаю в скором времени данная проблема будет актуальна не только для нас, но и по всей России.
6. milanse 41 20.09.10 08:43 Сейчас в теме
(4) Функция возвращающая COM для работы с ЭТРАН:
Функция ПолучитьСоединенеиеЭтран() Экспорт 
	СоединенеиеЭтран 	= Новый COMОбъект("EtranASUGO.EtranASUGO",Константы.ждИмяКомпьютераЭТРАН.Получить());
	СоединенеиеЭтран.Connect(Константы.ждАдресСервераЭТРАН.Получить(),Константы.ждПользовательЭТРАН.Получить(),Константы.ждПарольЭТРАН.Получить());
	Возврат СоединенеиеЭтран;
КонецФункции // ПолучитьСоединенеиеЭтран()



А про COM объект узнал из документации, нашел случайно.
Дело в том что компания разработчик ЭТРАН, продает свое решение для интеграции с АСУ грузоотправителя, собственно в РЖД на все вопросы об интеграции посылают к ним.

Ну а вообще про DCOM наверное надо почитать на специализированных форумах, я в нем не силен.
10. $erg 81 23.09.10 15:15 Сейчас в теме
Присоединяюсь к (4)
11. belchonokh 25 23.09.10 20:17 Сейчас в теме
(10) Есть такая идея, самому написать некое подобие прокси-веб-сервиса, т.е. веб-сервис, который будет установлен на машине рабочего места ЭТРАН и будет редиректить запросы на сервис и отдавать ответы в 1С.
12. milanse 41 24.09.10 08:43 Сейчас в теме
(11) А в чем смысл этого сервиса будет ??? Выложить его в веб - очень опасно, а внутри сети COM объект самое то, в настройках безопасности можно ограничить доступ одним компьютером.
И даже наличие веб сервисва не решает проблему взаимодействия с 1С.
На одном из наших филиалов сделали на флексе форму для формирования и отправки заявок в этран - прекрасно работает, но опять же нет связи с корпоративной системой, в которой эти заявки уже вбиты менеджерами.
7. belchonokh 25 20.09.10 09:39 Сейчас в теме
>>А про COM объект узнал из документации, нашел случайно.

я про него давно знаю, а вот найти до сих пор не получилось, интернет по этому поводу молчит.
8. milanse 41 20.09.10 12:19 Сейчас в теме
(7) Думаю надо теребить РЖД, для работы в режиме АСУ-АСУ подписывается доп. соглашение, оно бесплатно, думаю копать нужно оттуда.
Правда я этого соглашения не видел.
9. milanse 41 20.09.10 12:21 Сейчас в теме
В принципе, говорят что 8.2 работает и через SOAP, тогда немного меняется логика работы и обращаться к ЭТРАН нужно непосредственно с рабочего места.
13. kanavo 11.04.11 15:39 Сейчас в теме
Здравствуйте, у меня стоит аналогичная задача по загрузке данных из Этрана в 1С 8.2 транспортной накладной, скажите могли бы вы помочь с написанием этого кода? Вся программа полностью нам не нужна, так как имеется самостоятельная программа со своим функционалом и нужна загрузка одного документа.
14. Awarder 13.04.11 15:56 Сейчас в теме
kanavo пишет:
скажите могли бы вы помочь с написанием этого кода?


Ну, допустим, это десяток строк кода - просто вызов COM-объекта. А дальше как вы собираетесь сапортить эту часть вашей конфигурации? Поделка Интелекса весьма специфична. Лично я потратил пару-тройку месяцев своей жизни на написание логики отработки _ошибок_ в выдаче из Этрана. А что собираетесь делать вы?

kanavo пишет:
Вся программа полностью нам не нужна, так как имеется самостоятельная программа со своим функционалом и нужна загрузка одного документа.


Вы даже не понимаете что именно вам нужно =) Если вы убеждены, что просто выкачать накладную вам будет достаточно, то, как минимум, вы заблуждаетесь. Ибо выборку можно делать по внутреннему ID (а это просто порядковый номер сущности, а вам будет нужен именно ID накладной), плюс забавный механизм сторнирования и внесения правок (частенько забывают одновить дату изменения и изменять operID), ну и т.д. И как вы собираетесь объяснять клиенту странности работы конфигурации? =))

Другими словами: дерзайте, вы молоды и энергичны =)
15. kanavo 14.04.11 13:09 Сейчас в теме
Согласна пока я плохо себе представляю как реально организовать выгрузку данных из Этрана. Ну а ваши предложения, стоимость?
16. reflexfx 20.04.11 18:04 Сейчас в теме
belchonokh пишет:
Есть такая идея, самому написать некое подобие прокси-веб-сервиса, т.е. веб-сервис, который будет установлен на машине рабочего места ЭТРАН и будет редиректить запросы на сервис и отдавать ответы в 1С.


если есть желание, могу предложить решение, позволяющие организовать шлюз а ЭТРАН(замена ASUGO интрефейса), работает с пулом запросом, можно распараллеливать запросы - все настраивается в конфиге. Со стороны клиента можно использовать прилагающуюся COM-DLL, использовать SOAP либо CLR Assembly для MSSQL сервера.

Awarder пишет:
Вы даже не понимаете что именно вам нужно =) Если вы убеждены, что просто выкачать накладную вам будет достаточно, то, как минимум, вы заблуждаетесь. Ибо выборку можно делать по внутреннему ID (а это просто порядковый номер сущности, а вам будет нужен именно ID накладной)


Ошибаетесь, можно запрашивать данные и invoiceID и по invNumber(номер накладной) и по номеру вагона, причем ,повторюсь, в различных режимах -
только прибытие, только отправление, все, валидные и т.д. А если уж хотите зрить в корень, то прикручивайте получение данных по списанию денег с ЕЛС и выкачивайте накладные, даже если будет сторно, то логика тут не трехэтажная...

kanavo пишет:
Согласна пока я плохо себе представляю как реально организовать выгрузку данных из Этрана. Ну а ваши предложения, стоимость?


вопрос в какой момент времени вам нужна эта накладная, режим АСУ-АСУ предусматривает несколько вариантов и режимов запроса данных накладных.

PS: если будут вопросы(по существу конечно) пишите в личку - постараюсь помочь.
17. reflexfx 20.04.11 18:09 Сейчас в теме
UP:
хочу заметить, есть еще одни неприятные грабли - если посылать запросы в ЭТРАН через АСУГО или SOAP - не всегда возвращаются валидные xml....
18. belchonokh 25 20.04.11 19:45 Сейчас в теме
Не рабзобрался как отправить личку...

reflexfx пишет:
если есть желание, могу предложить решение, позволяющие организовать шлюз а ЭТРАН(замена ASUGO интрефейса), работает с пулом запросом, можно распараллеливать запросы - все настраивается в конфиге. Со стороны клиента можно использовать прилагающуюся COM-DLL, использовать SOAP либо CLR Assembly для MSSQL сервера.


очень интересно, хотелось бы услышать стоимость, можно в личку =)
19. Awarder 20.04.11 22:52 Сейчас в теме
reflexfx пишет:
Ошибаетесь, можно запрашивать данные и invoiceID и по invNumber(номер накладной) и по номеру вагона, причем ,повторюсь, в различных режимах -


ок, есть invoiceID 'A000001', было сторнировано перед запросом 10 накладных. и? =) не помню как звучит отлуп (под рукой этрана нет) но что-то типа укажите точно что выбирать.. только список из чего выбирать не предлагает..

belchonokh пишет:
Есть такая идея, самому написать некое подобие прокси-веб-сервиса, т.е. веб-сервис, который будет установлен на машине рабочего места ЭТРАН и будет редиректить запросы на сервис и отдавать ответы в 1С.


можно использовать любой портфорвардер.
29. milanse 41 17.11.11 09:03 Сейчас в теме
(19) Awarder, видимо имеется ввиду Номер накладной
не
>>ок, есть invoiceID 'A000001'
а
ок, есть invNumber 'A000001'
тогда на самом деле надо выбрать useValid

А вообще запросы сделаны просто и логично, за исключением пары моментов с получения статусов документов ;)
20. Awarder 20.04.11 22:57 Сейчас в теме
господа, а где, собссна, у этрана soap шлюз находится? хочу спрыгнуть с com-объекта =)

из доки:

http://xxx.xxx.xxx.xxx:xxxx/EtranServer/EtranLR.dll/soap <- 404 not found
http://xxx.xxx.xxx.xxx:xxxx/EtranServer/EtranLR.dll <- начинается закрузка длл =)

года два назад, помню что ссылка из доки работала
21. reflexfx 21.04.11 15:04 Сейчас в теме
Awarder пишет:

ок, есть invoiceID 'A000001', было сторнировано перед запросом 10 накладных. и? =) не помню как звучит отлуп (под рукой этрана нет) но что-то типа укажите точно что выбирать.. только список из чего выбирать не предлагает..


A000001 - такой нумерации нет, если что

ответ на ваш вопрос - <useValid/>


вопросы по поводу сотрудничества прошу присылать на reflex2[собака]list.ru
22. Awarder 21.04.11 16:07 Сейчас в теме
reflexfx пишет:
A000001 - такой нумерации нет, если что


есть - оффбоард порожняк.. ну это так, к слову =)
23. reflexfx 22.04.11 11:21 Сейчас в теме
Awarder пишет:
есть - оффбоард порожняк.. ну это так, к слову =)


Рекомендую почитать матчасть....
<getInvoice version="1.0">
<!-- ID накладной -->
<!-- * тип данных: ЦЕЛОЕ ЧИСЛО -->
<invoiceID value=""/>
<!-- Номер накладной -->
<!-- * тип данных: строка (до 8 символов) -->
<invNumber value=""/>
<!-- Использование 6-значных кодов станций и грузов в ответе -->
.....
Показать
24. Awarder 22.04.11 14:10 Сейчас в теме
ну а что ж не почитать? =)

reflexfx пишет:
* тип данных: строка (до 8 символов)


не разу не сталкивались с шести- и семизначными накладными? если не сталкивались - это не означает что их нет. прежде чем тыкать носом других, лучше разобраться самому ;)
25. reflexfx 22.04.11 16:07 Сейчас в теме
Послушайте... Вы приводите пример:

ок, есть invoiceID 'A000001', .....

так вот, в invNumber - хоть черта лысого рисуйте(тип строка), а я Вам ответил что invoiceID тип данных ЦЕЛОЕ ЧИСЛО. От Вас много претензий - читайте что пишите....могли бы поблагодарить за ответ на Ваш вопрос по поводу того как получить одну накладную вместо списка.
26. dvim 68 16.11.11 17:14 Сейчас в теме
Так все таки, где найти и у кого просить этот ASUGO ?
27. belchonokh 25 16.11.11 19:14 Сейчас в теме
(26) dvim, мы в итоге реализовали через протокол SOAP, всё шикарно работает, даже через прокси-сервер.
28. milanse 41 17.11.11 08:44 Сейчас в теме
(27) belchonokh, а прокси сервер каким боком тут ? Как у вас сервер 1С общается с компьютером на котором стоит рабочее место ЭТРАН ?

(26) нужно трясти тех с кем заключали договор (скорее всего ваша дорога, ДЦФТО) и приложение о работе в режиме АСУ-АСУ. У рждшников есть и дока и приложение для взаимодействия. Но так как у разработчика системы (Интелекс со товарищи) есть своя разработка для работы в режиме АСУ-АСУ, то рждники продвигают ее, может быть имеют с этого что-то, а может просто ничего не понимают.
34. belchonokh 25 17.11.11 20:34 Сейчас в теме
(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С-ке.
YUGPK; RailMen; krv2k; +3 – Ответить
35. Awarder 17.11.11 21:46 Сейчас в теме
(34) belchonokh,

а адреса серверов (и пути) подсказать можете? (если я правильно понимаю закладка туннель в "сервер шлюз этран")
38. belchonokh 25 18.11.11 21:15 Сейчас в теме
46. Awarder 20.11.11 00:34 Сейчас в теме
(38) belchonokh,

404 - not found..
можете сказать адрес на другом конце тунеля?
47. belchonokh 25 20.11.11 10:21 Сейчас в теме
(46) Awarder, постараюсь посмотреть, а так требуйте от РЖД, если у вас заключен договор АСУ-АСУ вам обязаны его предоставить, а если не заключен, то у вас туда не будет доступа, скорее всего будет NOT FOUND (это моё предположение)
30. dvim 68 17.11.11 11:50 Сейчас в теме
Пример какой нибудь на SOAP eсть?

Я правильно понимаю, что этот код надо будет запускать на компьютере с Этраном?.
Просто пока только подходим к этой задаче.
31. Awarder 17.11.11 13:02 Сейчас в теме
логично спроектировано начало, нелогично местами работает =)

а насчет соапа - ну не знаю, у меня точка входа не работает, приходится через ком-объект =(
32. milanse 41 17.11.11 15:32 Сейчас в теме
(31) Awarder, попробуй дельфевым соапом, может он работает, потому как етран на дельфе или Цбилдере.
33. Awarder 17.11.11 19:39 Сейчас в теме
(32)

у меня по дефолтному пути длл выгружается =) тут не принципиально чем обращаться
36. serhenry 18.11.11 19:56 Сейчас в теме
belchonokh пишет:
В общем взяли COM объект входящий в windows и организующий такой же http-запрос только без лишних заморочек и проверок


Расскажите по подробней что за объект????
37. belchonokh 25 18.11.11 21:11 Сейчас в теме
(36) serhenry, COMОбъект("Microsoft.XMLHTTP") - это для windows 7 или Server 2008, как пользоваться в сети есть, например _http://forum.infostart.ru/forum14/topic30957/

(35) Awarder, насколько я помню, закладка туннель, там где надо галку ставить "использовать виртуальный адреса", сам адрес требуйте у дороги, если вы платите по договору за АСУ-АСУ, то вам должны дать этот адрес (мы его долго пытались получить, в итоге нам дали телефон некоего программиста в РЖД, который знает вообще знает, что есть такие адреса, кстати с удивлением обнаружили что этот адрес уже был забит в VipNet параллельно с основным, так что можете попробовать проверить все адреса, которые там забиты).
39. serhenry 19.11.11 09:43 Сейчас в теме
Спасибо за ответ, очень помог (37).
Только не совсем понятно про формат посылаемых сообщений на сервер приложений, как это посмотреть????

belchonokh пишет:
Формат посылаемых сообщений на сервер приложений подсмотрели (правильно подсказывают) у Delphi
40. reflexfx 19.11.11 10:47 Сейчас в теме
(39) serhenry, формат сообщений соответствует стандарту SOAP 1.1

вы можете использовать SOAPToolkit (правда Microsoft прекратил его поддержку из-за введения WCF )

Сервис = Новый COMОбъект("MSSOAP.SoapClient30");
Сервис.MSSoapInit("ТУТ URL Сервера ЭТРАН");
.......

Если этот вариант не устраивает, то можете взять за основу "Microsoft.XMLHTTP", в этом случае описание стандарта SOAP есть тут и тут

belchonokh пишет:
А если подумать, SOAP - это всего лишь надстройка над протоколом HTML (в сети есть описание стандарта, формат сообщений и заголовков)

При всем уважении, протокола HTML нет, это стандарт. А вот SOAP считается протоколом, хотя с сильной натяжкой, я бы отнес его к стандарту вызова удаленных процедур или функций(RPC\RFC) поверх транспорта (как то HTTP, HTTPS, SMTP и т.д.)

belchonokh пишет:
закладка туннель, там где надо галку ставить "использовать виртуальный адреса"

Должно работать и с тунелированием и без.

Еще раз повторюсь, коллеги, при использовании SOAP проверяйте все ли ответы корректные, сталкивался с тем что приходящий XML соержит левые спецсимволы, из-за которых xml-документ становится не валидным для парсера.
42. belchonokh 25 19.11.11 11:11 Сейчас в теме
(40) reflexfx,
reflexfx пишет:
При всем уважении, протокола HTML нет, это стандарт

Извиняюсь, опечатался, имел ввиду именно http

reflexfx пишет:
Еще раз повторюсь, коллеги, при использовании SOAP проверяйте все ли ответы корректные, сталкивался с тем что приходящий XML соержит левые спецсимволы, из-за которых xml-документ становится не валидным для парсера


Подтверждаю, приходится в приходящей строке пройтись СтрЗаменить, иначе парсер сыпет ошибками, правда сталкивались только на нескольких справочниках, как мне показалось в значениях полей этих справочников.
41. belchonokh 25 19.11.11 11:05 Сейчас в теме
(39) serhenry, нужно написать простейшую программку на Delphi, которая используя метод GetBlock отправляет какой-нибудь простейший запрос (по документации к ЭТРАН) и куда-нибудь выводит ответ. Затем берете отладчик и проваливаетесь глубоко в модули Delphi, где на низком уровне формируется заголовок и само сообщение в XML, смотрите в отладчике содержимое этих переменных и в 1С формируете всё то же самое (у нас на разбор ушло около двух дней)

P.S. Кодом не помогу, коммерческая тайна как-никак, итак много рассказал =)
43. reflexfx 19.11.11 11:14 Сейчас в теме
(41) belchonokh,
что же секретно в реализации SOAP over HTTP и куске кода выдранном из VCL?

(39) serhenry,
вот ссылка на подробное описание SOAP HTTP Binding
45. serhenry 19.11.11 12:08 Сейчас в теме
(43) reflexfx, (41) belchonokh, благодарю, огромное спасибо очень помогли ;)
44. reflexfx 19.11.11 11:16 Сейчас в теме
belchonokh пишет:
Подтверждаю, приходится в приходящей строке пройтись СтрЗаменить, иначе парсер сыпет ошибками, правда сталкивались только на нескольких справочниках, как мне показалось в значениях полей этих справочников.


Не только при запросе справочников, частенько происходит при запросе данных накладных и заявок на перевозку.
48. dvim 68 26.03.12 11:55 Сейчас в теме
Самая большая проблема -учтите саппорт любого АСУ АСУ сильно платный у РЖД.
Стоимость ~ 28 тыс в мес.

Для нас стало неожиданным - процесс затормозился.
Часть руководителей считает, что "андроида" нанять дешевле
50. dvim 68 12.05.12 12:18 Сейчас в теме
Первое куда копать - согласовать 30 тыс/мес ... (У нас с этим встали проблемы. Андроида нанять дешевле, по крайней мере пока)

Второе - в ИВЦ дают ASUGO + примеры запросов.
Далее берем и пишем.
53. dvim 68 12.05.12 12:28 Сейчас в теме
У нас тоже есть ...
За саппорт именно АСУ АСУ режима.
У меня тема и провисла ибо было рассчитано, что за нанятый за половину суммы андроид выгрузит в Ексель за 2-3 часа все необходимые данные,а далее - скриптом закачиваем в Конфу.
Просто совет - сначала согласовать сумму , а потом уже думать о технике
55. Diversus 2343 12.05.12 12:35 Сейчас в теме
(53)(54) Понял, спасибо.
Думаю, может тоже через Excell?
56. dvim 68 12.05.12 12:44 Сейчас в теме
Тут выбор простой - либо "по правилам", но за большие деньги.
Либо - криво, но бесплатно.

Слышал про 3 вариант- программу, которая достает и экспортирую данные из "памяти" клиента этрана.
Но по ней - данных нет
57. Starikova 22.06.12 15:21 Сейчас в теме
Интересует опыт внедрения данного продукта для промышленного предприятия с оборотом вагонов от 400 шт в месяц. Требуется возможность отслеживания через Этран отправленных в наш адрес вагонов, контроль операций в местах обработки вагонов и, особенно, контроль штрафов за простои и определение виновников данных простоев.
60. reflexfx 14.08.12 10:09 Сейчас в теме
(57) Starikova, День добрый!
Вы уверены что Вам нужен именно ЭТРАН, данных АСОУП не будет достаточно?
Если у Вас средний оборот 400 вагонов - то по затратам это будет гараздо выгоднее чем платить за АСУ-АСУ(правда провозной платы в этих данных не будет, НО если нужны деньги, то всегда есть возможность обратиться в ГВЦ и заключить договор на САО(система абонентского обслуживания, они настроят для вас формирование и передачу данных по отправкам и прибытию вагонов в ваш адрес) ).

Контроль операций в местах обработки вагонов - чем вам поможет ЭТРАН в этом вопросе?
58. dvim 68 22.06.12 15:31 Сейчас в теме
Какого данного?.
Здесь обсуждается технология общения с АСУ АСУ.
Это технология позволяет привязать данные Этран к ВАШЕЙ системе


Продуктов я знаю 2. Первый это интеллексовский (от самих разработчиков Этрана). Цена у него большая, функционал широкий, но подробно я я его не рассматривал.
Второй - вот. Ни разу не реклама . цена у конфы приемлемая, судя по описанию и функционалу - все вполне внедряемо.

Нас остановило (надеюсь временно) необходимость тратить 30тыс/мес за сам обмен. Дорого это - и не так просто согласуется. Советую начать с этого вопроса, а не наоборот (может впустую работа быть).
59. dvim 68 22.06.12 15:32 Сейчас в теме
Ps
Сама интеграция с этраном есть у многих крупных компаний и перевозчиков.
61. dvim 68 14.08.12 10:44 Сейчас в теме
АСОУП - это слежение. У него кстати много альтернативных поставщиков (техноцентр, гдевагон)
В нем - данные по движению вагонов и поездов.
в Этране же данные по финансовым расчетам с РЖД
62. reflexfx 14.08.12 11:01 Сейчас в теме
(61) dvim, информацией из АСОУП, бесспорно, торгуют все кому не лень(даже я:)).

Требуется возможность отслеживания через Этран отправленных в наш адрес вагонов, контроль операций в местах обработки вагонов и, особенно, контроль штрафов за простои и определение виновников данных простоев.

Эту задачу можно решать по разному, а по скольку вводных для понимания ситуации мало, то предложил варианты,
а именно:
АСОУП(автоматизированная система оперативного управления парком) - если штрафы рассчитываются по условиям договоров с экспедиторами, то этих данных достаточно, подходы есть, определение простоев в пути(и причин этих простоев) можно реализовать.
САО - система ГВЦ для получения не только оперативных данных, но и данных по отправкам(основной минимум реквизитов из накладной с суммами), только в этом случае вы не платите фиксировано 25-30т.р., а платите только за объем переданной вам информации.
63. milanse 41 14.08.12 11:05 Сейчас в теме
информацию по финансовым расчетам мы берем в ЦФТО - оригиналы счетов фактур, и их копии в электронном виде. Ну и все начисления попавшие в расчет.
ЭТРАН по сути документооборот - согласование, изменение статусов, факты отправки, раскредитации.
У нас, например, 1 ЕЛС и несколько филиалов. Накопительные ведомости согласуются в 1С (потому как филиалы их не видят), а потом эти статусы переносятся в ЭТРАН.
Сейчас есть необходимость видеть заявки на перевозку, когда один филиал отправляет другому вагоны под отгрузку, необходимо указывать номер заявки. Это все видно.
Ну и побочный продукт это возможность видеть историю движения вагонов, потому как данные отправлений/прибытий из АСОУП мягко говоря не очень достоверны. Я сам обработкой этих данных не занимаюсь, но сверял загруженный результат с данными ЭТРАН - не все совпадает.
64. reflexfx 14.08.12 11:10 Сейчас в теме
(63)
потому как данные отправлений/прибытий из АСОУП мягко говоря не очень достоверны. Я сам обработкой этих данных не занимаюсь, но сверял загруженный результат с данными ЭТРАН - не все совпадает.

Я бы сказал наоборот - АСОУП как раз таки показывает самую реальную картинку движения вагонов, это один из китов РЖД(и вагон в 99.9% случаев не сдвинется с места без отражения соответствующего макета в базе дорог), а ЭТРАН показывает искаженные данные по движению(Вы верно заметили -
ЭТРАН по сути документооборот
).
69. milanse 41 10.01.13 17:13 Сейчас в теме
(64) reflexfx, Можно говорить наоборот, но у меня из наших данных по отправлениям и прибытиям не удалось построить картины движения. То есть только отправления, то есть только прибытия, то кадого по 2-3-4-5 раз, а иногда в ЭТРАН есть накладная а в данных гвц нет, если это называется 99.9, то я извиняюсь.
70. reflexfx 14.01.13 11:00 Сейчас в теме
(69)
Можно говорить наоборот, но у меня из наших данных по отправлениям и прибытиям не удалось построить картины движения.

не очень понял про картину движения по данным отправления и прибытия, имхо картину движения нужно по данным АСОУП строить.

То есть только отправления, то есть только прибытия, то кадого по 2-3-4-5 раз, а иногда в ЭТРАН есть накладная а в данных гвц нет, если это называется 99.9, то я извиняюсь.
Есть отправления и нет прибытия - такие случаи возможны, в любой ИС есть огрехи. Я свожу два источника отпр\приб + данные ЭТРАН чтобы снизить вероятность ошибки. Про 2-3-4-5 - там есть вполне объяснимая логика - какие то записи корректировочные(уточни у поставщика). А вот про отсутствие и наличие данных в том или ином источнике можно говорить долго, например это неправильное оформление накладных через АСУ-АСУ, например, в накладной указано правильно ОКПО и правильное наименование получателя(для случая если в твой адрес идут вагоны и в контексте видимости накладной ты являешься только получателем) а ИД организации пустое т.е. не выбрано из ПУЖТ, то в этом случае накладной ты не увидишь. И опять же эти данные только для фин.расчетов. А для движения использую данные АСОУП и ничего более - диспетчер должен видеть реальную картину положения вещей.
65. dvim 68 14.08.12 11:12 Сейчас в теме
Расскажите подробней о САО а то вообще о нем ничего не знаю.
Там есть расход на 1 вагон в поезде (групповой отправке) ?
66. reflexfx 14.08.12 11:25 Сейчас в теме
(65) dvim, для примера информация из сао

Screenshot
Накладная + Вагон + Тариф
67. milanse 41 14.08.12 11:45 Сейчас в теме
(65) dvim, ну не знаю, деньги вам выставляются на основании данных ЭТРАН. Может быть у нас не полные данные по отправлениям/прибытиям (очень может быть) но построить по ним картину движения вагона затруднительно. Не редка картина: есть отправка - нет прибытия, есть прибытие - нет отправки. В общем не слабо матерятся диспетчера, когда делают отчеты по груженым отправкам и сверяют с данными которые показывают филиалы.
68. folegv 10.01.13 15:35 Сейчас в теме
milanse, как связаться с вами по интеграции с этран
71. dvim 68 22.05.14 11:55 Сейчас в теме
Вопрос всем.
С чтением данных - разобрались. Из нюансов - XML разьирать лучше руками, он не всегда валидный с точки зрения XML

Но у нас проблемы с записью
Возвращается ошибка
"Количество контейнеров должно соответствовать планируемому количеству контейнеров !"
Хотя - все совпадает...
72. belchonokh 25 22.05.14 19:09 Сейчас в теме
(71) Для того что бы XML стал валидным нужно со стокой XML сделать следующее (установлено экспериментально):

Если СтрДанныеРазбора <> "" Тогда
	СтрДанныеРазбора = СтрЗаменить(СтрДанныеРазбора, "& #28;", " ");//Убрать пробел между & # - не дает напечатать сайт
	СтрДанныеРазбора = СтрЗаменить(СтрДанныеРазбора, "& #2;", " ");
	Возврат СтрДанныеРазбора;
Иначе
	Возврат "Ошибка";
КонецЕсли; 


После этого работает метод

ЧтениеXML = Новый ЧтениеXML;
Попытка
	ЧтениеXML.УстановитьСтроку(СтрДанныеРазбора);				
Исключение
Возврат;
КонецПопытки; 
	   
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);



После этого можно пользоваться конструкциями типа

ОбъБД = ЖдНакладная.ПолучитьОбъект();
ОбъБД.invoiceID = ОбъектXDTO.invoiceID.value;




Теперь по поводу планируемого количества, в документации сказано, что если не указывать, оно будет равно фактическому. Возможно у Вас указан не верный тип накладной. Единственное что я нашел у себя про планирование так это типы контейнеров (надеюсь поможет):

// Форматная xml-строка для получения списка накладных.
	НакладнаяЖД = Обработки.ЭТР_ЗагрузкаНакладных.ПолучитьМакет("XMLinvoiceDirectLoad").ПолучитьТекст();
	
		
	НакладнаяЖД = СтрЗаменить(НакладнаяЖД,"%frontEndId%",Формат(ЖдНакладная.Номер, "ЧГ=0") );
	НакладнаяЖД = СтрЗаменить(НакладнаяЖД,"%invTypeID%","1"); //НакладнаяНаПогрузку

	Если ЖдНакладная.invCont.Количество() > 0 Тогда
		
		НакладнаяЖД = СтрЗаменить(НакладнаяЖД,"%invSendKindID%","8"); //Контейнера комплектом на вагон
		НакладнаяЖД = СтрЗаменить(НакладнаяЖД,"%invPlanContTonnage%",Формат(ЖдНакладная.invCont[0].contTonnage.TONNAGE, "ЧГ=0")); //Контейнера
		
		НакладнаяЖД = СтрЗаменить(НакладнаяЖД,"%invContPlanSizeBig%",Формат(ЖдНакладная.invCont[0].contSizeBig.CODE, "ЧГ=0")); //Контейнера

	ИначеЕсли ЖдНакладная.invCar.Количество() > 1 Тогда
		
        НакладнаяЖД = СтрЗаменить(НакладнаяЖД,"%invSendKindID%","4"); //Групповая
		
	Иначе 
		
		НакладнаяЖД = СтрЗаменить(НакладнаяЖД,"%invSendKindID%","1"); //Повагонная
		
	КонецЕсли;
	НакладнаяЖД = СтрЗаменить(НакладнаяЖД,"%invPlanContTonnage%",""); //Повагонная
    НакладнаяЖД = СтрЗаменить(НакладнаяЖД,"%invContPlanSizeBig%", "");
Показать
bgazobeton; +1 – Ответить
73. dvim 68 23.05.14 12:07 Сейчас в теме
У вас - чтение накладной. С этим проблем никаких нет.
Проблемы с попыткой записать в Этран свою накладную .
Количество - совпадает, заявка по которой формируем действующая...

77. belchonokh 25 04.09.15 12:51 Сейчас в теме
(73) dvim, у меня тоже запись, планируемое количество контейнеров мы не отправляем, ЭТРАН сам считает и возвращает в записанной накладной.
74. JetBrain 83 17.04.15 12:31 Сейчас в теме
Добрый день.
на текущий момент данный пост еще актуален? запрос возвращает "иероглифы", может кто пример скинуть отправки и возврата 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;
76. belchonokh 25 04.09.15 12:32 Сейчас в теме
(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С-ка от имени другого пользователя (что бы не было видно на экране, а-ля служба), задания на загрузку-выгрузку из ЭТРАНа лежат в регистре, считываем, отправляем, получаем.
YUGPK; milanse; JetBrain; sir; +4 – Ответить
78. sir 20 04.09.15 13:37 Сейчас в теме
(76) belchonokh, Большой респект , как раз искал как XMLHTTP запрос сделать и тут ты :))

У меня вопрос, такой запрос только с машины где защищенный канал настроен прокатит или можно пытаться с любой ?

П.С.

ЗапросПараметр = "
|<getInvoice version=""1.0"">
|<invNumber value=""910105""
|<useMod11/>
|</getInvoice>";

такой делаю.
79. belchonokh 25 04.09.15 14:35 Сейчас в теме
(78) sir, если не настроен прокси на защищенной машине, то прокатит только на той машине. Если настроен прокси на той машине, достаточно в IE настроить использование этого прокси, и ком объект будет сам через него работать.

П.С. Запрос правильный =).
80. sir 20 04.09.15 15:06 Сейчас в теме
(79) belchonokh, ясн, спс.

а вот еще вопрос - Урл правильный какой будет

вида "http://ххх.ххх.ххх.ххх:ххххх@10.32.0.112:8092/EtranServer/EtranLR.dll/soap"
или "http://ххх.ххх.ххх.ххх:ххххх/EtranServer/EtranLR.dll/soap"
81. belchonokh 25 07.09.15 07:50 Сейчас в теме
(80) sir, у нас используется такой http://ххх.ххх.ххх.ххх:ххххх/EtranServer/EtranLR.dll/soap
75. batyrkin 123 03.09.15 22:57 Сейчас в теме
Господа, подскажите, как же все таки сделать так, чтоб можно было с сервера 1С отправлять запросы на машину с установленным EtranASUGO и VipNet-ом?
Если запускать как то так:
Функция ПолучитьСоединенеиеЭтран() Экспорт 
    СоединенеиеЭтран     = Новый COMОбъект("EtranASUGO.EtranASUGO",Константы.ждИмяКомпьютераЭТРАН.Получить());
    СоединенеиеЭтран.Connect(ждАдресСервераЭТРАН,ждПользовательЭТРАН,ждПарольЭТРАН);
    Возврат СоединенеиеЭтран;
КонецФункции // ПолучитьСоединенеиеЭтран()
непосредственно с клиента (машины с VipNet-ом), то все работает. А вот как сделать чтоб запрос с сервера 1С уходил на другой комп с VipNet-ом, там выполнялся и возвращался результат обратно на сервер 1С - не понимаю. Как (чем)запрос можно отредиректить?
82. sir 20 28.09.15 15:32 Сейчас в теме
Не хочет почему то работать :

" Ошибка при вызове метода контекста (send): Произошла исключительная ситуация (msxml3.dll): Системная ошибка: -2146697211." (
83. belchonokh 25 01.10.15 06:24 Сейчас в теме
(82) Скорее всего у вас недоступен адрес, попробуйте в браузере набрать http://ххх.ххх.ххх.ххх:ххххх/EtranServer/EtranLR.dll - даёт скачать ДЛЛ ?
84. sir 20 01.10.15 13:01 Сейчас в теме
(83) belchonokh, похоже, пишет "соединение закрыто удаленным сервером".
85. belchonokh 25 02.10.15 14:47 Сейчас в теме
(84) sir, нужно помнить, что адрес куда цепляется клиент и адрес для АСУ-АСУ - ЭТО РАЗНЫЕ адреса. На сервере клиента скорее всего доступ закрыт. Требуйте адрес для АСУ-АСУ от РЖД, деньги то немалые берут за подключение.
87. milanse 41 11.02.16 12:06 Сейчас в теме
(85) belchonokh, http прокси (free proxy, например) поставил и норм. В принципе сом объект это и делает, объект создается на машине с этраном, а работаешь ты с ним как с локальным объектом.
86. dvim 68 04.02.16 15:21 Сейчас в теме
А вот как сделать чтоб запрос с сервера 1С уходил на другой комп с VipNet-ом, там выполнялся и возвращался

Мы просто поставили на комп с VipNet IIS и сделали прослойку, которая публикует методы Этрана в локальную сеть.
JetBrain; +1 – Ответить
88. admin@gerkules.ru 28.07.17 06:36 Сейчас в теме
Ребята подскажите у кого-нибудь работает система выгрузки данных этрана в 1с?
89. Программе 10 05.12.17 17:49 Сейчас в теме
Добрый день, как можно получить модуль? Как можно узнать на что он на текущий момент способен? Можно ли связаться с разработчиком на прямую? Сколько стоит?
90. milanse 41 08.12.17 17:50 Сейчас в теме
(89) Добрый, на распространение и поддержку не имеется времени.
91. gradi 5 08.12.17 17:59 Сейчас в теме
Данные о дислокации вагонов можно через ЭТРАН получать?
92. milanse 41 08.12.17 18:02 Сейчас в теме
(91) Нет, ЭТРАН для работы с документами и ЭП, сейчас хотят даже получение базовой НСИ о вагонах сделать платным. Дислокацию много кто другой дает получать )
195. пользователь 04.09.21 10:23
Сообщение было скрыто модератором.
...
93. dvim 68 08.12.17 21:15 Сейчас в теме
"у кого-нибудь работает система выгрузки данных этрана в 1с" - работает, только код на C# а не на 1С.
При этом работает не только выгрузка, но и создание накладных на УКП ( на формирование целого поезда)

По дислокации полно предложений. Если платформы постоянные, то 100-200 руб/ мес, либо по 5-8 руб в сутки.
94. milanse 41 08.12.17 21:47 Сейчас в теме
(93) На 1с тоже все прекрасно работает и создание накладных и заявок и подписание эп.
95. user645801_yyyuuu123q 09.01.20 02:14 Сейчас в теме
Ребята подскажите пожалуйста.
Пытаюсь получить ком объект с другова компьютера
Etran = Новый COMОбъект("EtranASUGO.EtranASUGO", "\\trnh-db-02"); ничего не выходить.
Кто как решил проблему? Если она как то решилась, помогите пожалуйста
96. user830227 09.01.20 08:37 Сейчас в теме
(95) бэкслэши лишние во втором параметре. Нужно только имя сервера.
97. dvim 68 09.01.20 09:14 Сейчас в теме
Вопрос - зачем вы в 21 веке ( уже 20й год) все пытаетесь долбить COM обертку?.
У этрана есть возможность работать без нее, через веб сервисы.
(Правда мы реализовали это, просто как работу по http , так как не все биндилось красиво)
Тем самым мы уходим от точки отказа "СОМ"

А, главное, у вас канал асу асу оплачен (именно асушный а не этран)?
98. user645801_yyyuuu123q 09.01.20 09:59 Сейчас в теме
(97) Подскажите как сделать правильно. Буду благодарен бесконечно много раз.
Асушный оплачен)
144. user645801_yyyuuu123q 31.01.20 05:30 Сейчас в теме
(98)
Сделал через вэб, настройкой прокси сделал чтобы с любого компьютера получать доступ к сервисам этран. Может когда нибудь тему напишу да выложу обработку когда закончу)
99. user830227 09.01.20 10:08 Сейчас в теме
(97)
Правда мы реализовали это, просто как работу по http , так как не все биндилось красиво

Вы про вариант, который предлагал (76) ? Там ведь тоже используется COMОбъект.
100. user645801_yyyuuu123q 09.01.20 10:57 Сейчас в теме
(99) Я пробовал через ком, что то не идет через другой комп.
101. user830227 09.01.20 11:05 Сейчас в теме
(100)
Я пробовал через ком, что то не идет через другой комп.

На том другом компе должна стоять компонента ASUGO и Vip.NET. Ну, и, соответственно, доступ к другому компу и компоненте должен быть с первого компа и право использования, хотя обычно оно не ограничено.
104. user645801_yyyuuu123q 09.01.20 15:25 Сейчас в теме
(101)есть сервер, на нем асу но, на нем вип нет и с него все работает если запускаю с клиента.
Есть хотя-бы документация какая нибудь или по подробнее как это все организовать, и компоненту создавал и что только не делал.
Скорее всего делаю что то не так
107. user830227 11.01.20 01:21 Сейчас в теме
(104) делайте через SOAP, так действительно лучше.
102. user830227 09.01.20 12:52 Сейчас в теме
(97)
А, главное, у вас канал асу асу оплачен (именно асушный а не этран)?

А как понять, платим мы за канал или нет? Посмотрел отчет оказанных информационных услуг от ЦФТО, там из интересного только VipNet-подключения. Никаких асушных каналов.
103. milanse 41 09.01.20 14:27 Сейчас в теме
(97) Никакая дополнительная оплата рабочих мест АСУ-АСУ давно не требуется.
user830227; +1 – Ответить
105. dvim 68 09.01.20 16:44 Сейчас в теме
Описание

Просто отправляем http запрос POST «http:// 10.248.35.18:8092/EtranServer/EtranLR.dll/soap»
Адрес уточняем у себя и смотрим ответ.

В описании можно взять пример запроса - и вперед.
106. user830227 11.01.20 01:19 Сейчас в теме
(105) руководство программиста старовато. Актуальное можно скачать с сайта РЖД.
bgazobeton; +1 – Ответить
108. user645801_yyyuuu123q 11.01.20 02:10 Сейчас в теме
(105)а соап подключение разве исправить проблему того что вип нет стоит на одном коспе а подключаюсь с другова?
109. user830227 11.01.20 09:59 Сейчас в теме
(108) не исправит, а добавит :) СОМ-компоненту как раз локально использовать проблематично. Она работает, но периодически отваливается. А удаленно - нет проблем.
А с SOAP-подключением надо что-то придумать. Проксю поднять или веб-сервер.
110. dvim 68 11.01.20 21:45 Сейчас в теме
Мы сделали свой сервер, который пересылает сообщения .
(Плюс еще в режиме заданий работает).
112. user645801_yyyuuu123q 13.01.20 04:00 Сейчас в теме
(110) Ребят Мне бы методику как это делается) чтобы раз сделать и понять. Уже месяц пытаюсь ком завести, а никак.
Через ИИС видел делают, как то еще. Но понимания пока нет. Если что может помочь понять подскажите пожалуйста
111. milanse 41 12.01.20 10:30 Сейчас в теме
FreeProxy решает проблему доступности, сом объект сейчас не содержится в официальной документации на режим АСУ-АСУ. Сервер с очередями навероное круто, но уж больно геморно для небольшой конторы
113. user645801_yyyuuu123q 16.01.20 04:59 Сейчас в теме
Говорил с поддержкой. КОМ не поддерживают уже 6 лет)
Перевел все на соап. Пока не тестировал как будет работать сервера по регламетному заданию. В остальном стало быстрее
114. dvim 68 16.01.20 11:37 Сейчас в теме
Все будет хорошо.
"Сервер с очередями навероное круто, но уж больно геморно для небольшой конторы " - а сервер без очередей ?
Просто чтобы с любых ПК слать запросы и обрабатывать их на сервере, который в "випнет".

Теоретически можно как то "поиграться" с прокси, но наши админы это не освоили.
Мне проще было пару сотен строк на ASP.NET написать
115. user645801_yyyuuu123q 20.01.20 03:57 Сейчас в теме
Может кто подскажет, а SOUP можно раскочегарить через другой компутер? Как бы вернемся к началу. Есть комп где все доступы есть и вип нет и все что угодно. А есть сервак который обрабатывает запросы, но на нем нету вип нета.
Через СОАП можно как нибудь получить соеденение компутера где все есть?
А вообще Я по коду смотрел и у Меня глаза не верили этому. До Меня тут был топ программист ин зэ ворлд так. Тут такого наворотил, виртуальные таблица даже знать не знает что это). Ком соеденение использует которое 6 лет как с поддержки снято. ЗАпросы в цикле, логически не связаные вещи. А опыт программирования 20 лет у человека. Вот пытаюсь по чуть чуть собрать адекватный код. По вопросу может кто что то делал?
116. user645801_yyyuuu123q 22.01.20 07:54 Сейчас в теме
Вроде пишут что можно через прокси раздать подключение вип нет. Кто нибудь делал подобное?
117. user830227 22.01.20 10:18 Сейчас в теме
(116) у нас на сервере с VipNET стоит база, отвечающая за обмен с системами РЖД, в том числе ЭТРАН. Другие базы отправляют запросы в ЭТРАН через нее.
От использования COM тоже отказались, обмен через веб-сервисы реализовать оказалось несложно.
119. user645801_yyyuuu123q 23.01.20 02:48 Сейчас в теме
(117)
COM снят с поддержки. От него отказались, спустя 2 недели общения с поддержкой Мы пришли к пониманию и донесли друг до друга нужную информацию). Я им их ошибки, они Мне как все сделано прям сейчас.
120. user645801_yyyuuu123q 23.01.20 02:49 Сейчас в теме
(117)а как делали? Через IIS или другой прокси? Как обращение идет к серверу с вип нет?
118. user645801_yyyuuu123q 23.01.20 02:42 Сейчас в теме
Так у Меня есть продвижение. В общем научился делать так.
На 1 компе есть вип нет и этран.
На второй этран. Я могу подключаться к Этран с компутера 2 который не имеет вип нета. Обращение идет через 1.
Но http://35.14:8092/EtranServer/EtranLR.dll/soap это все ровно на серваке не заводиться. А с компа своего спокойно обрабатывает) Думаю может на сервере какие то настройки стоят в свойствах обозревателя
121. user645801_yyyuuu123q 23.01.20 07:22 Сейчас в теме
Вроде прослойку сделал. Могу заходить с любого места. А вот все ровно не работает.
Может запрос как то не так делаю?
Если есть пример как ты POST шлешь до Этрана можешь показать)
122. user645801_yyyuuu123q 24.01.20 02:39 Сейчас в теме
ТекстSOAP="<soapenv:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soapenv=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:sys=""SysEtranInt"">
	|   <soapenv:Header/>
	|   <soapenv:Body>
	|	  <sys:GetBlock soapenv:encodingStyle=""http://schemas.xmlsoap.org/soap/encoding/"">
	|		 <Login xsi:type=""xsd:string"">"+EtranUser+"</Login>
	|		 <Password xsi:type=""xsd:string"">"+EtranPass+"</Password>
	|		 <Text xsi:type=""xsd:string"">"+EtranTxt+"</Text>
	|	  </sys:GetBlock>
	|   </soapenv:Body>
	|</soapenv:Envelope>";


	ХттпЗапрос=Новый ComОбъект("WinHttp.WinHttpRequest.5.1");
	ХттпЗапрос.Open("POST", EtranURL, 0); //Ложь -значит ждать ответа (не асинхронный запрос)
	ХттпЗапрос.SetRequestHeader("Content-Type","text/xml;charset=UTF-8");
	ХттпЗапрос.SetRequestHeader("SOAPAction","""urn:SysEtranInt""");
	Попытка
		ХттпЗапрос.Send(ТекстSOAP);
	Исключение 
		Ответ.Вставить("КодОтвета","Ошибка");
		Ответ.Вставить("ТекстОтвета",ОписаниеОшибки());
		Возврат Ответ ;  //Возврат если возникла ошибка
	КонецПопытки;
Показать

Делаю такой запрос. Хочу получить справку по накладажной. Но что то идет не так. Кто нибудь может поправить если понимает что не так
123. user830227 24.01.20 08:38 Сейчас в теме
(122)
ХттпЗапрос=Новый ComОбъект("WinHttp.WinHttpRequest.5.1");

Так и не понял зачем вместо одного COM-объекта использовать другой. Это же веб-сервис.

Я делаю так:
	ТекстЗапроса =
	"<test version=""1.0"">
	|</test>";

	МестоположениеWSDL = АдресПодключения + "?wsdl";
	Определения = Новый WSОпределения(МестоположениеWSDL, Логин, Пароль, , ТаймаутСоединения);

	Сервис = Определения.Сервисы.Получить(0);
	Точка = Сервис.ТочкиПодключения.Получить(0);
	ПодключениеКЭтрану = Новый WSПрокси(Определения, Сервис.URIПространстваИмен, Сервис.Имя, Точка.Имя, , ТаймаутОперации);
	
	ПодключениеКЭтрану.Пользователь = Логин;   // не уверен, что нужно
	ПодключениеКЭтрану.Пароль = Пароль;        // не уверен, что нужно

	ТекстXML = ТекстЗапроса;
	ПодключениеКЭтрану.GetBlock(Логин, Пароль, ТекстXML);
	ТекстОтвета = ТекстXML;
Показать
124. user645801_yyyuuu123q 27.01.20 04:57 Сейчас в теме
(123)
Спасибо думаю поможет. Но Можешь пожалуйста параметры объяснить.
МестоположениеWSDL - Не понял)
Логин, Пароль - Логин пароль для доступа к этрану?
Тайаут понятно

Сервес - Не понял)
Точка тоже)
ПРоще сказать Я понял по параметрах только Таймаут)). Можешь по подробнее описать. Если конечно не сложно. Да и в друг еще кто то столкнуется будет из чего учиться хоть
125. user645801_yyyuuu123q 27.01.20 08:41 Сейчас в теме
(124)
Все разобрался, не сложно было оказывается)))
Скажи пожалуйста по таймаутам, сколько ставил?
171. suhachaa 27.08.20 06:59 Сейчас в теме
(125)
Подскажите, в АдресПодключения что указывете?
126. user645801_yyyuuu123q 28.01.20 09:05 Сейчас в теме
Все сделал все настроил уже. ПРокси есть, доступ с любого компьютера тоже.
А регламентным заданием не работает)

{ОбщийМодуль.Этран.Модуль(156)}: Ошибка при вызове метода контекста (GetBlock)
по причине:

по причине:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {http://tempuri.org/}:IEtranSysservice:GetBlock()
по причине:
При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Ошибка работы с Интернет:   Failure when receiving data from the peer
по причине:
Ошибка работы с Интернет:   Failure when receiving data from the peer
Показать
127. user645801_yyyuuu123q 29.01.20 02:25 Сейчас в теме
(126)
Проблема в том что отправляю большой запрос 2000 + вагонов. Вот и отваливается
128. user645801_yyyuuu123q 29.01.20 09:37 Сейчас в теме
Может кто проталкивал такое количество?)
129. user830227 29.01.20 11:17 Сейчас в теме
(128) а зачем в накладной столько вагонов?
130. user645801_yyyuuu123q 29.01.20 14:59 Сейчас в теме
(129)
Делаю запрос чтобы получить дислокацию вагонов, в данный момент их 2227 или на 100 больше.
Нужна каждые пол часа
131. user830227 29.01.20 15:34 Сейчас в теме
(130) справку АСОУП получаете что ли? Так там есть возможность вести список вагонов на стороне ЭТРАН. В руководстве все описано.
132. user645801_yyyuuu123q 30.01.20 01:13 Сейчас в теме
(131)я так и делаю, отправляю список вагонов. На работу приеду покажу запрос. Но ещё думаю в випнете настройках могут быть проблемы.
133. user645801_yyyuuu123q 30.01.20 02:05 Сейчас в теме
(131)
<GetInform>
<UseGZIPBinary>1</UseGZIPBinary>
<ns0:getReference14ASU xmlns:ns0="http://service.siw.pktbcki.rzd/">
<ns0:Reference14ASURequest>
<idUser>0</idUser>
<idReference>14</idReference>
<vagons>
<vagon>50024900</vagon>
<vagon>50024900</vagon>
И так 2 тысячи
</vagons>
</ns0:Reference14ASURequest>
</ns0:getReference14ASU>
</GetInform>
134. user830227 30.01.20 07:03 Сейчас в теме
(133) это запрос справки. А я имел в виду создание реестра SetInformReestr.
135. user645801_yyyuuu123q 30.01.20 08:38 Сейчас в теме
(134)
SetInformReestr


Подожди а это разве как то поможет пропихнуть больше вагонов?
138. user830227 30.01.20 10:16 Сейчас в теме
(135) конечно. Мне, например, нужно получать справки по 40000 вагонов. Не ставить же мне крест на ЭТРАНе из-за этого.
139. user645801_yyyuuu123q 30.01.20 16:36 Сейчас в теме
(138)
Можешь пожалуйста пример показать как реализовал ты). Очень прошу)
140. user830227 30.01.20 17:43 Сейчас в теме
(139) я еще не научился справки АСОУП получать :) Только рассказываю как планирую сделать.
141. user645801_yyyuuu123q 31.01.20 01:26 Сейчас в теме
(140)
Сегодня попробую разобраться, если реестр на это способен)
Что получится скину сюда
142. user645801_yyyuuu123q 31.01.20 02:19 Сейчас в теме
(141)<SetInformReestr>
<ScrollDateBegin>01.01.1900 00:00:00</ScrollDateBegin>
<ScrollDateEnd>01.01.3000 00:00:00</ScrollDateEnd>
<Inform_ID>14</Inform_ID>
<Doc>
<ScrollDocID>0</ScrollDocID>
<DocDateBegin>01.01.1900 00:00:00</DocDateBegin>
<DocDateEnd>01.01.3000 00:00:00</DocDateEnd>
<Type>vagon</Type>
<Value>500605</Value>
</Doc>
<Doc>
<ScrollDocID>1</ScrollDocID>
<DocDateBegin>01.01.1900 00:00:00</DocDateBegin>
<DocDateEnd>01.01.3000 00:00:00</DocDateEnd>
<Type>vagon</Type>
<Value>500619</Value>
</Doc>
</SetInformReestr>

Запрос работает ошибок нету. Возвращает время дислокации только)
145. user645801_yyyuuu123q 31.01.20 06:39 Сейчас в теме
(142)
С реестром затея тоже не совсем хорошая. Мы отправляем вагоны а в ответ получаем Ид накладных.
По ним может найти наши вагоны. Вот только в обоих случаях Я отправлю 2000+ вагонов))
136. dvim 68 30.01.20 09:18 Сейчас в теме
800 вагонов идет нормально....
2000+ -может есть смысл просто разбивать на несколько запросов ?
137. user645801_yyyuuu123q 30.01.20 09:32 Сейчас в теме
(136)
Да вот пришлось, только хотелось за раз а так 2 отправки. 2 ответа обрабатывать
143. user645801_yyyuuu123q 31.01.20 04:21 Сейчас в теме
(136)
а если у Меня будет 40000 вагонов?) 20 запросов делать?)
146. user645801_yyyuuu123q 04.02.20 03:14 Сейчас в теме
Написал разработчикам, говорят что проблемы у нас а не у них. Попросил требования к отправки файла, ширине канала, все что можно уже. Поддержка упорно все не предоставляет и говорит проблема у провайдера говори с ним). А о чем именно говорить не говорит. Я же не спрошу у провайдера а ширины канала хвать чтобы 2000+ вагонов ?
147. user830227 04.02.20 13:45 Сейчас в теме
(146)
Написал разработчикам, говорят что проблемы у нас а не у них.
Думаю, что так и есть.

Ты пробовал запросом SetInformReestr по одному вагону запихивать, чтобы получить список из двух вагонов? А потом по ним справку получить.
148. user645801_yyyuuu123q 05.02.20 00:58 Сейчас в теме
(147)да, так и сделал и все получилось. Но ничего не поменяется запихав туда 2000 тысячи.
Если проблема на Моей стороне тогда в чем? Не поддержка никто не может Мне сказать требования к запросу и к каналу или вооьще как структурного объяснить.
149. user830227 05.02.20 10:49 Сейчас в теме
(148)
Но ничего не поменяется запихав туда 2000 тысячи
Что не поменяется? Если два вагона получилось запихать, то почему 2000 не получится? Хоть 100500. Какая разница два раза запрос выполнить или 2000 раз?
Ладно, у самого еще руки не дошли подергать запрос, поэтому пока приторможу обсуждение вопроса.
150. user645801_yyyuuu123q 05.02.20 14:23 Сейчас в теме
(149)в моем случае не получится, потому что у Меня проблема с пропихиванем вагонов а не получении. 1500 спокойно, что то больше по таймауту отключает
164. user830227 20.08.20 16:27 Сейчас в теме
(150) 65 тыс. вагонов через SetInformReestr отправил спокойно. Запрос выполнялся чуть меньше минуты.
165. user645801_yyyuuu123q 24.08.20 04:28 Сейчас в теме
(164)
Покажи пожалуйста пример
166. user645801_yyyuuu123q 24.08.20 04:28 Сейчас в теме
(164)
SetInformReestr

Это вроде реестр и сведений о дислокации там нету
167. user645801_yyyuuu123q 24.08.20 04:38 Сейчас в теме
(164) И еще цель того что ты Через SetInformReestr пропихнул 65 тысяч? Результат который получаешь он МНе не подходит совсем.
С таким условием можно вообще справку не получать
168. user830227 24.08.20 17:36 Сейчас в теме
(167) Так ведь SetInformReestr возвращает ID списка, потом справку запрашивать надо через GetInformReestr. Все данные там есть.
169. user645801_yyyuuu123q 25.08.20 09:58 Сейчас в теме
(168)
SetInformReestr

Спасибо, да получилось так как ты и сказал. А Я и не знал. Можешь подсказать что в параметрах ставишь Даты?

		<DocDateBegin>01.01.1900 00:00:00</DocDateBegin>
		<DocDateEnd>01.01.3000 00:00:00</DocDateEnd>


Ставлю так, это последнее значение получаю SrolId получаю все верно?
170. user830227 26.08.20 00:16 Сейчас в теме
(169) я заполняю как в руководстве программиста, там есть пример.
163. user830227 20.08.20 12:48 Сейчас в теме
(148) У меня не получилось изменить список вагонов. Создал список на два вагона. Пытаюсь подсунуть ему еще два, он мне возвращает два первых и все. Как у тебя получилось?
172. user830227 01.09.20 12:46 Сейчас в теме
(163) Получил ответ от ЕСПП. Чтобы добавить вагон в список, нужно не указывать тег ScrollDocID. Проверил, работает.
151. user645801_yyyuuu123q 18.02.20 09:01 Сейчас в теме
Решил разбиением на два запроса. Конечно херня, не должно так делаться но тем не менее
152. user927738 24.03.20 19:54 Сейчас в теме
Дорогие друзья, подскажите мне пожалуйста. Как формируется текст в блоке запроса<Text xsi:type="xsd:string"> </Text> из схемы xsd? Например, есть часть схемы EtranActUslug.xsd:
 <xs:element name="ActUslugStatus">
        <xs:annotation>
            <xs:documentation>Запрос из АСУ ГО в ЭТРАН для получения данных по актам услуг. Рекомендуется запрашивать данные за период не более трех часов. В ответ АС Этран возвращает ActUslugStatusReply</xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element name="fromDate" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Дата начала периода.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:attribute name="value" type="ecat:DateTimeType" use="required"/>
                    </xs:complexType>
                </xs:element>
                <xs:element name="toDate" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>Дата конца периода.</xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:attribute name="value" type="ecat:DateTimeType" use="required"/>
                    </xs:complexType>
                </xs:element>
                <xs:element name="OperId" minOccurs="0" maxOccurs="1">
                    <xs:annotation>
                        <xs:documentation>
                            Идентификатор элемента списка (обычно идентификатор операции в истории электронного документа) начиная с которого производится выборка элементов списка при его сканировании
                        </xs:documentation>
                    </xs:annotation>
                    <xs:complexType>
                        <xs:attribute name="value" type="ecat:IDLongType" use="required"/>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
Показать


первое что пришло на ум:
<ActUslugStatus>
<fromDate> </fromDate>
<toDate></toDate>
<OperId></OperId>
</ActUslugStatus>
, но с таким форматом сервер работать не хочет.
user1514619; +1 – Ответить
154. user830227 25.03.20 12:43 Сейчас в теме
(152) В описании есть атрибут "value", а у вас его нет.
Я бы запрашивал так:
<ActUslugStatus>
	<fromDate value="25.03.2020 10:46:15"/>
</ActUslugStatus>
198. user1514619 25.07.23 00:48 Сейчас в теме
(152) Доброе время суток! Стоит подобная задача. Из информации инструкция Руководство программиста для режима взаимодействия АСУ-АСУ. Мне не понятно где брать адрес сервера? сами схемы?.
199. zba 48 28.07.23 12:39 Сейчас в теме
(198)
Добрый день. Вот у нас в Иркутской области такие данные, все по взаимодействию брали с https://ozd-center.ru/asu_asu
Прикрепленные файлы:
user1514619; +1 – Ответить
153. dvim 68 25.03.20 07:38 Сейчас в теме
А вы еще узнайте, что реализовано.
Просто когда общался в прошлом году с саппортом - реализовано было далеко не все.

А так все параметры обязательны , пустые значения могут быть не приняты
155. user927738 25.03.20 18:39 Сейчас в теме
Спасибо, все работает. Обратился в саппорт - оказалось, что нам не дали доступ к актам оказанных услуг.
156. zba 48 10.06.20 20:08 Сейчас в теме
Подскажите если кто сталкивался, как можно передать данные из 1с в накладную(в статусе заготовка)
пример хочу передать код страны назначения
запрос
<getInvoice version="1.0">
<invoiceID value="1022161457"/>
<invToCountryCode value="158"/>
</getInvoice>
ответ
<?xml version="1.0" encoding="windows-1251"?>
<error>
<errorCode value="3"/>
<errorMessage value="Неизвестный тэг с данными <invToCountryCode>"/>
<errorStatusCode value="406"/>
</error>
157. user830227 10.06.20 20:22 Сейчас в теме
(156) не пробовал, но точно надо использовать один из запросов подачи накладной. Например, invoiceDirectLoad.
158. zba 48 10.06.20 21:18 Сейчас в теме
(157) Спасибо. Только почему то при изменении нескольких полей, запрашивает все обязательные поля для заполнения, хотя они в заготовке уже заполнены.
159. dvim 68 11.06.20 07:38 Сейчас в теме
(158)
Так вы сначала должны загрузить xml накладной, потом дописать свои поля, потом всё выгрузить в этран.

Вариантов сделать запрос на update 1 поля тут нет ....
Вообще это нормально для подобных систем обмена.
160. zba 48 12.06.20 09:54 Сейчас в теме
(159)
Да вы правы все получилось, спасибо. А как хотелось бы попроще (
161. пользователь 12.06.20 19:13
Сообщение было скрыто модератором.
...
162. пользователь 12.06.20 19:14
Сообщение было скрыто модератором.
...
173. dvim 68 01.09.20 17:48 Сейчас в теме
Нашел интересную доку - попробовал работает.
Но - вопрос в платностисправок, если ли информация про это ?

Просто за ответы по тому же натурному листу от слеженцев - платим и не так, чтобы мало.
При запросе через этран запрос тарифицируется или нет ?
Прикрепленные файлы:
Описание входных и выходных параметров информационных справок (для запроса GetInform).doc
bgazobeton; +1 – Ответить
174. milanse 41 01.09.20 18:20 Сейчас в теме
(173) справки бесплатны
176. milanse 41 13.11.20 11:41 Сейчас в теме
(173) Вся актуальная информация есть на портале РЖД в открытом доступе

РЖД
bgazobeton; +1 – Ответить
175. user645801_yyyuuu123q 13.11.20 03:49 Сейчас в теме
Ребат всем привет, а sendblock кто нибудь использовал? Не подклюается важет ошибки. Если кто пробовал отпишитесь вместе по разбираем
177. user645801_yyyuuu123q 18.05.21 10:39 Сейчас в теме
Вышла новая система информирования АСОУП-3 («Единое Окно»). Кто нибудь уже работаЛ?
178. milanse 41 12.06.21 10:47 Сейчас в теме
(177) в тестовом режиме получаем дислокацию в режиме за период, с 16.06 вроде перестанут отдавать в старых режимах, будем переводить на прод.

Ну и нужные нам справки давно используем, активно взаимодействуем по процессу доработки и исправления ошибок.
179. user830227 12.06.21 12:28 Сейчас в теме
(178) то же самое, пообещали отключить дислокацию вагонов в САО с 15 июня. Готовимся. Тестирование завершили.
183. AnRyb 7 24.06.21 18:44 Сейчас в теме
(179) Приведите, пожалуйста, пример текста запроса справки какой-нибудь SPVXXXX. Не могу найти в документации ((. Заранее благодарю!
182. AnRyb 7 24.06.21 18:43 Сейчас в теме
(178) Приведите, пожалуйста, пример текста запроса справки какой-нибудь SPVXXXX. Не могу найти в документации ((. Заранее благодарю!
184. dvim 68 25.06.21 10:52 Сейчас в теме
(182)
Есть xsd - на их базе можно делать запросы
А вот и запрос :

<lns:getReferenceSPV4664 xmlns:lns="http://service.siw.pktbcki.rzd/"><lns:ReferenceSPV4664Request><idUser>0</idUser><vagons><vagon>949­57644</vagon></vagons></lns:ReferenceSPV4664Request></lns:getReferenceSPV4664>
Прикрепленные файлы:
Schemas_28052021.rar
185. AnRyb 7 25.06.21 13:22 Сейчас в теме
(184) Спасибо огромное! Схему я видел, пробовал делать запрос по аналогии с описанным в документации программиста для справки 14, возвращало ошибку.
Ваш запрос проверю уже завтра.
186. AnRyb 7 25.06.21 14:08 Сейчас в теме
(184) Проверил. Всё работает. Спасибо огромное!!!
180. dvim 68 12.06.21 15:35 Сейчас в теме
У них вышло новое описание.
При этом к АСОУП запросам описания не нашел, только xsd схемы
Дислокация по сути осталась - только теперь SPV4664
В схемах еще масса SPV справок - о чем они....
181. user830227 12.06.21 22:14 Сейчас в теме
(180) мы пока тестируем те, которые должны заменить справки САО, которые мы запрашиваем: паспорта, ремонты, пробеги и др. Изучать все справки пока нет возможности.
187. user830227 25.06.21 15:15 Сейчас в теме
Есть кто умеет подписывать накладные ЭЦП? Научите формировать подпись, пожалуйста.

Накладную создаем, получили текст, который надо подписать. Далее пробуем при помощи Крипто-Про через COM подписать файлик, но получаем ошибку:
"(CAdESCOM.CadesSignedData.1): Группа или ресурс не находятся в нужном состоянии для выполнения требуемой операции."

Пробовали руками через Крипто-АРМ, подписывает хорошо.

Код:
CPSigner = Новый COMОбъект("CAdESCOM.CPSigner");
	
	CPSigner.Certificate = получитьСертификат();
	CPSigner.TSAAddress = "http://pkitrans.ru/tspca1_niias/tsp.srf";     
	
	CadesSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
	CadesSignedData.Content = ТекстовоеПредставлениеНакладной;
	
	sSignedData = CadesSignedData.Sign(CPSigner, Истина);
Показать
192. MicroDs 28.07.21 23:27 Сейчас в теме
(187) А как получаете "ТекстовоеПредставлениеНакладной"???

Подпись формирую:
ecp value=
	CADESCOM_BASE64_TO_BINARY = 0; // Входные данные пришли в Base64
	CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME = 0; // Атрибут штампа времени подписи
	CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY = 2;
	
	sTSAAddress = "http://pkitrans.ru/tspca1_niias/tsp.srf"; 	
	
	oSigner = Новый COMОбъект("CAPICOM.Signer");
	// Объект, задающий параметры создания и содержащий информацию об усовершенствованной подписи.
	oSigner.Options = CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY;;
	oSigner.Certificate = Certificate;

//	oSigner.TSAAddress = sTSAAddress;
	
	oSigningTimeAttr = Новый COMОбъект("CAPICOM.Attribute");
	oSigningTimeAttr.Name = CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME;
	oSigningTimeAttr.Value = ТекущаяДата();
	oSigner.AuthenticatedAttributes.Add(oSigningTimeAttr);
//	ТекстДляПодписи = СокрЛП(ТекстДляПодписи);
	
	oSignedData = Новый COMОбъект("CAPICOM.SignedData");
	// Объект CadesSignedData предоставляет свойства и методы для работы с усовершенствованной подписью.
//	oSignedData.ContentEncoding = CADESCOM_BASE64_TO_BINARY;
	oSignedData.Content = ТекстДляПодписи;
//	EncodingType = 0;
//	sSignedMessage = oSignedData.SignCades(oSigner, CADESCOM_CADES_TYPE, bDetached, EncodingType);
	sSignedMessage = oSignedData.Sign(oSigner, bDetached, CADESCOM_BASE64_TO_BINARY);
	
	// Метод добавляет к сообщению усовершенствованную подпись.
	Возврат sSignedMessage; // Подпись в формате Base64

tsp value=
	oStamp = Новый COMОбъект("TSPCOM.TSPStamp");
	oRequest = Новый COMОбъект("TSPCOM.TSPRequest");
	
	oOID = Новый COMОбъект("CAPICOM.OID");
	oOID.Value = "1.2.643.2.2.9";
	
	oRequest.HashAlgorithm2 = oOID;
	UTF8Encoding = Новый COMОбъект("System.Text.UTF8Encoding");
	oRequest.AddData(UTF8Encoding.GetBytes_4(ТекстДляПодписи));
//    oRequest.AddData(ТекстДляПодписи);
	oRequest.TSAAddress  = "http://pkitrans.ru/tspca1_niias/tsp.srf";
	оStamp = oRequest.Send();

	oUtils = Новый COMОбъект("CAPICOM.Utilities");
	sStamp = oUtils.Base64Encode(оStamp.Export());
	
	Возврат sStamp; // Stampa в формате Base64
Показать


Этран выдает ошибку:
<error>
<errorCode value="4"/>
<errorMessage value="Актуальная и подписанная информация о документе не совпадает."/>
<errorStatusCode value="400"
</error>

Техподдержка отписывается:
Переданная информация в поле “textBinary” содержит текстовое представление документа не в XML формате
и в кодировке UTF-8, вместо windows-1251, поэтому сработал
контроль "Актуальная и подписанная информация о документе не совпадает."
194. user830227 09.08.21 15:58 Сейчас в теме
(192)
Как получаете "ТекстовоеПредставлениеНакладной"???


<!-- ******************************************** -->
<!-- ЗАПРОС ПОЛУЧЕНИЯ ИНФОРМАЦИИ О ДОКУМЕНТЕ ДЛЯ ПРОВЕДЕНИЯ ЭЦП: запрос -->
<!-- ******************************************** -->
<getTextForECP version="1.0">
	<!-- идентификатор документа -->
	<!-- * тип данных: целое число --> 
	<docID value=""/>
	<!-- При использовании тега текстовое представление будет получено в base64 -->
	<useBinary/>
</getTextForECP>
Показать


Пробовали с useBinary и без. Если без, надо сохранять переносы строк, как в XML.
188. user830227 28.06.21 10:50 Сейчас в теме
Кто-нибудь может помочь с подписанием накладной? Интересует часть получения самой ЭЦП, которая не зависит от ЭТРАН.
189. user830227 28.06.21 11:37 Сейчас в теме
(188) пытаемся при помощи Крипто-Про через CAdESCOM подписать полученное текстовое представление накладной, получаем ошибку: "Произошла исключительная ситуация (CAdESCOM.CadesSignedData.1): Группа или ресурс не находятся в нужном состоянии для выполнения требуемой операции."

Вручную через Крипто-АРМ подписывается без проблем.

Код взят из документации к Крипто-Про:

	CPSigner = Новый COMОбъект("CAdESCOM.CPSigner");
	
	CPSigner.Certificate = получитьСертификат();
	CPSigner.TSAAddress = "http://pkitrans.ru/tspca1_niias/tsp.srf";     
	
	CadesSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
	CadesSignedData.Content = "test";
	
	sSignedData = CadesSignedData.Sign(CPSigner, Истина); 
Показать
190. user830227 28.06.21 11:46 Сейчас в теме
Код 1С уже нельзя вставлять? Дважды пробовал описать суть проблемы, сообщение пропадает. Первый раз написали, что будет опубликовано после проверки (жду с пятницы), второй раз добавил к код к другому сообщению, оно пропало.
191. user830227 28.06.21 16:51 Сейчас в теме
193. Bukaska 161 30.07.21 17:12 Сейчас в теме
(190)Добрый. Напишите мне с ссылкой на сообщение. Хотя бы на топик
197. MicroDs 24.09.21 11:36 Сейчас в теме
(188) Добрый день. Разобрались с подписью для ЭТРАН в АСУ-АСУ???

Полученные данные из запроса getTextForECP в Base64 подписываю так:

ecp value =
СADESCOM_ENCODE_BASE64 = 1; // Входные данные пришли в Base64
CADESCOM_CADES_TYPE = 1; // Тип усовершенствованной подписи

CPSigner = Новый COMОбъект("CAdESCOM.CPSigner");

CPSigner.Certificate = Certificate;
CPSigner.TSAAddress = "http://qs.cryptopro.ru/tsp/tsp.srf";

CadesSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
CadesSignedData.ContentEncoding = CADESCOM_ENCODE_BASE64;
CadesSignedData.Content = ТекстДляПодписи;

sSignedMessage = CadesSignedData.SignCades(CPSigner,CADESCOM_CADES_TYPE, Истина);

Возврат sSignedMessage;

Как правильно получить штамп времени и на какие именно данные: штамп времени на подпись или на документ????

Формирую штамп времени:

tsp value=
oStamp = Новый COMОбъект("TSPCOM.TSPStamp");
oRequest = Новый COMОбъект("TSPCOM.TSPRequest");

oOID = Новый COMОбъект("CAPICOM.OID");
oOID.Value = "1.2.643.7.1.1.2.2";

oRequest.HashAlgorithm2 = oOID;

UTF8Encoding = Новый COMОбъект("System.Text.UTF8Encoding");

ДвДанныеПодписи1 = UTF8Encoding.GetBytes_4(sSignedMessage);
oRequest.AddData(ДвДанныеПодписи1);

oRequest.TSAAddress = "http://qs.cryptopro.ru/tsp/tsp.srf";

оStamp = oRequest.Send();

oUtils = Новый COMОбъект("CAPICOM.Utilities");
sStamp = oUtils.Base64Encode(оStamp.Export());

Возврат sStamp; // Stampa в формате Base64


Этран возвращает ошибку:

<?xml version="1.0" encoding="windows-1251"?>
<error>
<errorCode value="4"/>
<errorMessage value="Ошибка проверки ЭП:Ошибка проверки подписи в УЦ:Хэш штампа времени не совпадает с хэшем подписи SignHash и TSPHash."/>
<errorStatusCode value="400"/>
</error>
203. farengeit00 23.09.24 15:20 Сейчас в теме
(197) От куда получается Content (ТекстДляПодписи)?
205. MicroDs 24.09.24 06:33 Сейчас в теме
(203) Из запроса получили ответ "textBinary"

<!-- ******************************************** -->
<!-- ЗАПРОС ПОЛУЧЕНИЯ ИНФОРМАЦИИ О ДОКУМЕНТЕ ДЛЯ ПРОВЕДЕНИЯ ЭЦП: запрос -->
<!-- ******************************************** -->
<getTextForECP version="1.0">
	<!-- идентификатор документа -->
	<!-- * тип данных: целое число --> 
	<docID value=""/>
	<!-- При использовании тега текстовое представление будет получено в base64 -->
	<useBinary/>
</getTextForECP>

далее  Подпись_text = ПодписатьТекст(Doc_СтрокаBase64, Certificate, Истина); получаем ЭЦП

Функция ПодписатьТекст(ТекстДляПодписи, Certificate, bDetached)
	
	CADESCOM_ENCODE_BASE64 = 1; // Входные данные пришли в Base64
        CADESCOM_CADES_TYPE = 1; // Тип усовершенствованной подписи	
	
	CPSigner = Новый COMОбъект("CAdESCOM.CPSigner");
	CPSigner.Certificate = Certificate;
	CPSigner.TSAAddress = "http://qs.cryptopro.ru/tsp/tsp.srf"; 
	//CPSigner.TSAAddress = "http://10.248.8.240/tspca1_niias/tsp.srf"; 
 	//CPSigner.TSAAddress = "http://tsp.pki.transtk.ru/tspca1/tsp.srf"; 
	
	CadesSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
	CadesSignedData.ContentEncoding = CADESCOM_ENCODE_BASE64;
	CadesSignedData.Content = ТекстДляПодписи; //ТекстДляПодписи
	
	sSignedMessage = CadesSignedData.SignCades(CPSigner,CADESCOM_CADES_TYPE,bDetached,0);

	Возврат sSignedMessage; // Подпись в формате Base64
	
КонецФункции

и фтамп времени к эцп  Подпись_text_stamp = ShtampТекст(Подпись_text);


Функция ShtampТекст(ТекстДляПодписи)
	
	Cadescom_hash_algorithm_cp_gost_3411_2012_256 = 101;
	
	oStamp = Новый COMОбъект("TSPCOM.TSPStamp");
	oRequest = Новый COMОбъект("TSPCOM.TSPRequest");
	oHash = Новый COMОбъект("CAdESCOM.HashedData");
	
	oHash.Algorithm = Cadescom_hash_algorithm_cp_gost_3411_2012_256;
  	oHash.Hash(ТекстДляПодписи);
	
	oOID = Новый COMОбъект("CAPICOM.OID");
	oOID.Value = "1.2.643.7.1.1.2.2";
	oRequest.HashAlgorithm2 = oOID;
	
	oRequest.Hash = oHash;	

	oRequest.TSAAddress  = "http://qs.cryptopro.ru/tsp/tsp.srf";
	//oRequest.TSAAddress  = "http://pki.skbkontur.ru/tsp2012/tsp.srf";
	//oRequest.TSAAddress  = "http://10.248.8.240/tspca1_niias/tsp.srf";
       //oRequest.TSAAddress  = "http://tsp.pki.transtk.ru/tspca1/tsp.srf";


	оStamp = oRequest.Send();
	
	oUtils = Новый COMОбъект("CAPICOM.Utilities");
	sStamp = oUtils.Base64Encode(оStamp.Export());

	Возврат sStamp; // Stampa в формате Base64

КонецФункции
Показать


и формируем запрос в этран "<setECP version=""1.0"">


ДО июня 2024 все работало хорошо, но после (ЦФТО информирует Вас о том, что в рамках перехода АС ЭТРАН НП на импортонезависимую платформу на базе СУБД Postgres Pro Enteprise будет изменена кодировка подписания документов электронной подписью (далее – ЭП) на UTF-8. Возможность работы с документом, как с бинарными данными реализовна в интерфейсе АСУ ГО АС ЭТРАН в запросах <getTextForECP> и <setECP> (параметр useBinary), в руководстве программиста АСУ ГО обновлено описание веб-сервиса проведения ЭП по документам (п. 5.1.5 «Запрос операции над документом»).
В связи с вышеизложенным, прошу Вас, рассмотреть вопрос о внесении изменений в программное обеспечение АСУ предприятия в части реализации подписания документов ЭП с использованием base64 (параметр useBinary в запросе данных для подписи <getTextForECP> и запросе подписания <setECP>).
Дата перехода на работу с документом, как с бинарными данными будет сообщена дополнительно.) перестало работать подписание...

Возвращается Ошибка:
<error version="1.0">
<errorCode value="4"/>
<errorMessage value="Ошибка проверки подписи в УЦ:COM_TimeStampInfo. Ошибка получения информации о штампе времени. Доп. инфо: Import. Ошибка в tspcom.TSPStamp.1: В ASN1 встречен неожиданный конец данных. Ошибка LE № 0x80004005: Неопознанная ошибка "/>
<errorStatusCode value="400"/>
</error>
user830227; +1 – Ответить
202. farengeit00 23.09.24 09:34 Сейчас в теме
(188) Добрый день. Вы разобрались с программной подписью в этране?
196. пользователь 04.09.21 10:28
Сообщение было скрыто модератором.
...
200. user1514619 03.08.23 13:56 Сейчас в теме
Добрый день! Помогите пожалуйста. Есть запрос
<ActUslugStatus>
<fromDate>03.02.2023 08:00:00</fromDate>
<toDate>03.02.2023 10:00:00</toDate>
<OperId>Идентификатор элемента списка </OperId>
</ActUslugStatus> Как узнать "Идентификатор элемента списка" или что передавать в параметр OperId?
201. user1514619 03.08.23 14:00 Сейчас в теме
Добрый день! Помогите пожалуйста. Есть запрос
<ActUslugStatus>
<fromDate>03.02.2023 08:00:00</fromDate>
<toDate>03.02.2023 10:00:00</toDate>
<OperId>Идентификатор элемента списка </OperId>
</ActUslugStatus>

Как узнать "Идентификатор элемента списка" или что передавать в параметр OperId?
204. MicroDs 24.09.24 06:16 Сейчас в теме
(203) Получаем из запроса в виде base64

<!-- ******************************************** -->
<!-- ЗАПРОС ПОЛУЧЕНИЯ ИНФОРМАЦИИ О ДОКУМЕНТЕ ДЛЯ ПРОВЕДЕНИЯ ЭЦП: запрос -->
<!-- ******************************************** -->
<getTextForECP version="1.0">
<!-- идентификатор документа -->
<!-- * тип данных: целое число -->
<docID value=""/>
<!-- При использовании тега текстовое представление будет получено в base64 -->
<useBinary/>
</getTextForECP>
206. farengeit00 24.09.24 07:55 Сейчас в теме
(204) <!-- ЗАПРОС ПРОВЕДЕНИЯ ЭЦП НАД ДОКУМЕНТОМ: запрос -->
<!-- ******************************************** -->
<setECP version="1.0">
<!-- Идентификатор документа -->
<!-- * тип данных: целое число -->
<docID value=""/>
<!-- Информация о документе для подписания ЭЦП -->
<!-- без использования UseBinary в запросе -->
<!-- * тип данных: строка -->
<text value=""/>
<!-- с использованием UseBinary в запросе -->
<!-- * тип данных: строка -->
<textBinary value=""/>
<!-- ЭЦП документа-->
<!-- * тип данных: строка -->
<ecp value=""/>
<!-- Штамп времени документа(для version = 1 или 2) ->
<!-- * тип данных: строка -->
<tsp value=""/>
<!-- Версия алгоритма формирования ЭЦП(1 – Усиленная неквалифицированная ЭП версия от КриптоПро, 2 – Усиленная неквалифицированная ЭП версия от ТрансТелеком 5- Усиленная квалифицированная ЭП)-->
<!-- * тип данных: строка -->
<version value=""/>
<!-- Используется для подписания документов с текстовым представлением в base64 -->
<useBinary/>
</setECP>

<textBinary value=""/> и <ecp value=""/> одно и то же значение взятое из вашего запроса?
207. MicroDs 24.09.24 12:08 Сейчас в теме
(206) <textBinary value=""/> получаем из запроса <getTextForECP version="1.0">

ТекстДляПодписи = textBinary

и получаем ЭЦП документа из функция ПодписатьТекст(ТекстДляПодписи, Certificate, bDetached)

<ecp value=""/>

Функция ПодписатьТекст(ТекстДляПодписи, Certificate, bDetached)

CADESCOM_ENCODE_BASE64 = 1; // Входные данные пришли в Base64
CADESCOM_CADES_TYPE = 1; // Тип усовершенствованной подписи

CPSigner = Новый COMОбъект("CAdESCOM.CPSigner");
CPSigner.Certificate = Certificate;
CPSigner.TSAAddress = "http://qs.cryptopro.ru/tsp/tsp.srf";
//CPSigner.TSAAddress = "http://10.248.8.240/tspca1_niias/tsp.srf";
//CPSigner.TSAAddress = "http://tsp.pki.transtk.ru/tspca1/tsp.srf";

CadesSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData");
CadesSignedData.ContentEncoding = CADESCOM_ENCODE_BASE64;
CadesSignedData.Content = ТекстДляПодписи; //ТекстДляПодписи

sSignedMessage = CadesSignedData.SignCades(CPSigner,CADESCOM_CADES_TYPE,bDetached,0);

Возврат sSignedMessage; // Подпись в формате Base64

КонецФункции
user830227; +1 – Ответить
208. farengeit00 24.09.24 13:12 Сейчас в теме
(207)
Все сделал как вы сказали, но "Ошибка проверки подписи в УЦ:TSP не в BASE64"
209. MicroDs 24.09.24 14:44 Сейчас в теме
(208) А как штамп времени формируете <tsp value=""/> ????

<tsp value=""/> = Подпись_text_stamp = ShtampТекст(Подпись_text);

ТекстДляПодписи = <ecp value=""/> sSignedMessage; // Подпись в формате Base64

Функция ShtampТекст(ТекстДляПодписи)
	
	Cadescom_hash_algorithm_cp_gost_3411_2012_256 = 101;
	
	oStamp = Новый COMОбъект("TSPCOM.TSPStamp");
	oRequest = Новый COMОбъект("TSPCOM.TSPRequest");
	oHash = Новый COMОбъект("CAdESCOM.HashedData");
	
	oHash.Algorithm = Cadescom_hash_algorithm_cp_gost_3411_2012_256;
  	oHash.Hash(ТекстДляПодписи);
	
	oOID = Новый COMОбъект("CAPICOM.OID");
	oOID.Value = "1.2.643.7.1.1.2.2";
	oRequest.HashAlgorithm2 = oOID;
	
	oRequest.Hash = oHash;	

	oRequest.TSAAddress  = "http://qs.cryptopro.ru/tsp/tsp.srf";
	//oRequest.TSAAddress  = "http://pki.skbkontur.ru/tsp2012/tsp.srf";
	//oRequest.TSAAddress  = "http://10.248.8.240/tspca1_niias/tsp.srf";
       //oRequest.TSAAddress  = "http://tsp.pki.transtk.ru/tspca1/tsp.srf";


	оStamp = oRequest.Send();
	
	oUtils = Новый COMОбъект("CAPICOM.Utilities");
	sStamp = oUtils.Base64Encode(оStamp.Export());

	Возврат sStamp; // Stampa в формате Base64

КонецФункции
Показать
user830227; +1 – Ответить
210. farengeit00 24.09.24 15:49 Сейчас в теме
(207) подскажите, пожалуйста
212. MicroDs 25.09.24 10:17 Сейчас в теме
(210) Все разобрался, подпись и штамп времени заработал в ЭТРАНе.

<textBinary value=""/> получаем из запроса <getTextForECP version="1.0"> ==textBinary

//преобразовывем в двоичные данные
ДвоичныеДанныеСтроки = Base64Значение(textBinary);

получаем <ecp value=""/> == Подпись_text
Подпись_text = ПодписатьТекст_1С(ДвоичныеДанныеСтроки, ОтпечатокЭЦП);

Функция ПодписатьТекст_1С(ТекстДляПодписи, Отпечаток)
	
    МенеджерКриптографии = Новый МенеджерКриптографии("Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider","",80);
	
	Хранилище  = МенеджерКриптографии.ПолучитьХранилищеСертификатов(ТипХранилищаСертификатовКриптографии.ПерсональныеСертификаты);
	Сертификат = Хранилище.НайтиПоОтпечатку(ПолучитьДвоичныеДанныеИзHexСтроки(Отпечаток));	
	
    ДД_Подпись = МенеджерКриптографии.Подписать(ТекстДляПодписи, Сертификат, ТипПодписиКриптографии.CAdESBES);
    sSignedMessage = Base64Строка(ДД_Подпись);

	Возврат sSignedMessage; // Подпись в формате Base64
	
КонецФункции
Показать


получаем <tsp value=""/> == Подпись_text_stamp
Подпись_text_stamp = ShtampТекст(Подпись_text);

	
Функция ShtampТекст(ЭЦП_Подписи)
        ИмяФайлаШтампа = ПолучитьИмяВременногоФайла("tsr");

	oStamp = Новый COMОбъект("TSPCOM.TSPStamp");
	oRequest = Новый COMОбъект("TSPCOM.TSPRequest");
	
	oOID = Новый COMОбъект("CAPICOM.OID");
	oOID.Value = "1.2.643.7.1.1.2.2";
	oRequest.HashAlgorithm2 = oOID;
	
        oRequest.TSAAddress  = "http://tsp.pkitrans.ru/tspca1_niias/tsp.srf";
	
	UTF8Encoding = Новый COMОбъект("System.Text.UTF8Encoding");
	oRequest.AddData(UTF8Encoding.GetBytes_4(ЭЦП_Подписи));

	оStamp = oRequest.Send();

	COMSafeArray = оStamp.Export2();

	оStream = Новый COMОбъект("ADODB.Stream");
	оStream.Mode = 3;
	оStream.Type = 1;
	оStream.Open();
	оStream.Write(COMSafeArray);
	оStream.SaveToFile(ИмяФайлаШтампа, 2);
	оStream.Close();

	ДвоичныеДанныеШтампа = Новый ДвоичныеДанные(ИмяФайлаШтампа);
	sStamp = Base64Строка(ДвоичныеДанныеШтампа);
		
	Возврат sStamp; // Stampa в формате Base64
КонецФункции	
Показать
etran1c; user830227; +2 – Ответить
211. farengeit00 25.09.24 08:55 Сейчас в теме
(207) А штамп времени как получить?
<!-- Штамп времени документа(для version = 1 или 2) ->
<!-- * тип данных: строка -->
<tsp value=""/>
213. MicroDs 25.09.24 10:57 Сейчас в теме
(211) Версия алгоритма формирования ЭП(1 – Усиленная неквалифицированная ЭП версия от КриптоПро, 2 – Усиленная неквалифицированная ЭП версия от ТрансТелеком

выше приведено для 1 – Усиленная неквалифицированная ЭП версия от КриптоПро
214. farengeit00 25.09.24 11:47 Сейчас в теме
(213) Спасибо, Добрый человек! Все Взлетело! Единственное добавил:
oRequest.UseNonce = Истина;
oRequest.PolicyID = "";
oRequest.CertReq = Истина;
user830227; +1 – Ответить
215. пользователь 25.09.24 20:25
Сообщение было скрыто модератором.
...
216. Yaklushin 08.11.24 13:29 Сейчас в теме
Здравствуйте,
Поделитесь пожалуйста опытом.
Данные конкретной накладной я получить могу, а как получить список накладных за период не могу понять.
217. milanse 41 08.11.24 23:36 Сейчас в теме
(216) списка накладных за период нет, есть список изменений накладных за период invoicestatus в документации описано как что.
218. Yaklushin 09.11.24 18:57 Сейчас в теме
(217) Спасибо, натыкался на этот запрос, но как то с ним не совладал, сейчас получилось.
Еще такой вопрос - с этрана можно получать пдф гу27 и СМГС 2015(безномерной). xsd схема EtranPrintForm.xsd
У меня по ней получился такой запрос

<getPrintForm version="1.0">
<Doc_ID value="1553041018"/>
<doctype value="0"/>
</getPrintForm>

Но в ответ приходит
<error version="1.0">
<errorCode value="4"/>
<errorMessage value="java.sql.SQLException: ORA-06550: line 1, column 80:"/>
<errorStatusCode value="400"/>
</error>

Не могу понять что не так.
219. user830227 09.11.24 22:50 Сейчас в теме
(218)
схема EtranPrintForm.xsd

В схеме ни разу не упоминается "value". Зачем оно в запросе?

Спойлер
220. Yaklushin 10.11.24 08:51 Сейчас в теме
221. dvim 68 11.11.24 16:53 Сейчас в теме
Коллеги , РЖД выкинуло очередной фортель ..... кто что делает с "аттестацией к3" ?.
222. zba 48 12.11.24 10:37 Сейчас в теме
(221)Мы позвонили им на горячую линию РЖД сказали что просто собирают данные пока, написали письмо что у нас отсутствует аттестат. Запросили у фирмы которая этим занимается, как сделать аттестат К3 на сервер с 1С вот ответ:
Сроки работ в основном зависят от сроков поставки физических носителей. По городу доставка занимает около 2-ух недель и закладываю неделю до Вас.
После получения нами средств защиты - мы их откроем их и запланируем установку и работы по аттестации. Поставим и направим Вам дистрибутивы.
Эти мероприятия занимают у нас около 10 дней, но в предложении указал - 15.
Итоговая длительность с учетом поставки - 25 дней.

Стоимость аттестации: 70 000 рублей (в этом месяце)
Разработка всей документации - 140 000 рублей
Настройка средств защиты - 15 000 рублей
Итого: 225 000 руб.
Средства защиты - еще 28 847 руб. Дистрибутив VipNet может добавить 1000 руб, если окажется, что флешка это не дистрибутив, а ключи и если не будет документов на имеющуюся лицензию - 9000 руб она стоит.
223. MicroDs 21.11.24 08:04 Сейчас в теме
Добрый день. А подскажите пожалуйста, может кто знает как через АСУ-АСУ программно, каким запросом, в накладных можно отменить последнюю операцию (например: Накладная в состоянии "Погрузка на вагон", а нужно вернуть в состояние "Заготовка")!!???
224. user830227 21.11.24 14:32 Сейчас в теме
(223) В руководстве программиста есть пункт 5.3.6. ЗАПРОС ОТКАЗА ГРУЗООТПРАВИТЕЛЯ ОТ ВИЗЫ (invoiceCancelViza)
По логике должно быть оно. Но у меня не взлетело. Особо не разбирался.
225. MicroDs 22.11.24 06:54 Сейчас в теме
(224) Данный Запрос (invoiceCancelViza) отрабатывается если Накладная на ходится в состоянии "завизировано"!!!

<error version="1.0">
<errorCode value="4"/>
<errorMessage value="Отказ возможен только в состоянии завизировано!"/>
<errorStatusCode value="400"/>
</error>
226. user830227 22.11.24 10:36 Сейчас в теме
(225) Другого ничего нет.
227. Yaklushin 18.04.25 16:51 Сейчас в теме
Здравствуйте. Я с таким вопросом. есть справка 14 по дислокации вагонов.
при попытке ее запросить в ответ приходит - воспользуйтесь getReferenceSPV4664.
Она нормально запрашивается и даже приходит ответ.
В ответе есть поле KOP_VMD (Код операции с вагоном, мне пришел код 51). В расшифровке 14 справке есть еще поле KOP_VMD в котором по идее и говорится что это.
Но в этих справках ничего такого нет. и что за код из какого справочника его тянуть не понятно.
В своих изысканиях дошел до справки getReferenceSPV4723, но она меня послала обратно к getReferenceSPV4664.
В Описание входных и выходных параметров информационных справок (для запроса GetInform) ЕО2020 (30.10.2024)
Наткнулся на АСУОП 3, единое окно и какие то запросы к SQL. Куда и как слать запросы не понял.

В общем кто и как получает данные по дислокации в рамках системы АСУ- АСУ, и как получить расшивку операции над поездом.
Еще такой вопрос - станция оперции с поездом и станция текущей дислокации это одна и та же станция?
если нет как получить станцию текущей дислокации?
Спасибо.
228. user830227 21.04.25 09:08 Сейчас в теме
(227) На сайте РЖД есть Руководство программиста для режима взаимодействия АСУ-АСУ (ЭТРАН). Думаю, там должно быть описание справочника вагонных операций. Если нет, то можно просто загуглить.
А еще в 4664 есть поле KOP_PMD - код операции в поездной модели. Если вам нужен код поездной операции, то оно будет более поезным.
STAN_OP - это станция операции.
229. Yaklushin 22.04.25 07:46 Сейчас в теме
(228) До того как написать вопрос руководство программиста я прошерстил (как мне кажется)
в результате действительно помог гуглинг "описание справочника вагонных операций".
Спасибо.

Типы операций с вагонами/Контейнерами https://cargolk.rzd.ru/catalogs/systems
Операции с поездом https://online.freicon.ru/info/train-operations (На сайте ржд этого не нашел)
С запросам GetInformNSI из руководства не разобрался.
Запрос из примера
<GetInformNSI>
<getTN_DOR_ADM>
<TN_DOR_ADMRequest>
<kodAdm>1</kodAdm>
</TN_DOR_ADMRequest>
</getTN_DOR_ADM>
</GetInformNSI>
вернул "Сервер АСОУП вернул ошибку! Обратитесь в АСОУП."
Если все же ктото знает как получить эту же информацию силами АСУ-АСУ - прошу ткнуть носом чуть конкретнее чем во все руководство разработчика.
230. MicroDs 23.04.26 09:29 Сейчас в теме
231. MicroDs 23.04.26 11:32 Сейчас в теме
(230) Работа со справочниками АСОУП:
<GetInformNSI>
<ns0:getTN_EO_DIC_OBJECTS xmlns:ns0="http://service.siw.pktbcki.rzd/">
<ns0:TN_EO_DIC_OBJECTSRequest>
<classId>2086</classId>
</ns0:TN_EO_DIC_OBJECTSRequest>
</ns0:getTN_EO_DIC_OBJECTS>
</GetInformNSI>

, пример где
• ID_CLASS = 2084 - Грузовые операции с вагонами
• ID_CLASS = 2083 - Операции с поездами
• ID_CLASS = 2086 - Операции с контейнерами
user830227; +1 – Ответить
Для отправки сообщения требуется регистрация/авторизация