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

 

См. также

1С:Документооборот - цена на лицензии КОРП, ПРОФ и ДГУ

Документооборот и делопроизводство (СЭД) Типовые Платформа 1С v8.3 Управленческий учет Платные (руб)

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

42500 руб.

19.02.2016    106998    103    5    

84

Перенос данных из Парус 8 в ЗГУ 3

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

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

84000 руб.

19.08.2020    22447    19    1    

22

Перенос данных из Парус 10 в ЗГУ ред.3

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

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

60000 руб.

05.10.2022    9208    9    8    

10

Таймлист (1С:Совещание, Таймлист Лайт)

Документооборот и делопроизводство (СЭД) Конфигурации 1cv8

«Таймлист» – экосистема сервисов («Таймлист Лайт», «1C:Совещание», «Таймлист Recorder»), основанная на искусственном интеллекте Таймлист, который позволяет эффективно работать с легкими поручениями за счет фиксации всех важных идей при расшифровке и последующем формировании автопротокола встречи. Сервисы, в которые интегрирован ИИ, позволяют работать с задачами (поручениями), полученными из автопротокола.

10000 руб.

06.12.2023    1260    0    0    

5

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    101374    296    173    

312

1С:Архив

Документооборот и делопроизводство (СЭД) Платформа 1С v8.3 Платные (руб)

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

90000 руб.

24.10.2022    4859    4    1    

4

Перенос данных из Парус 7.хх в ЗГУ ред.3

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

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

24000 руб.

24.04.2017    48700    97    163    

86

Легкий документооборот (+чат-бот для Telegram)

Документооборот и делопроизводство (СЭД) Мессенджеры и боты Учет документов Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 Платные (руб)

Расширение для согласования справочников и документов в конфигурациях "1С: Бухгалтерия 3.0", "Управление нашей фирмой", "1С ERP Управление предприятием", "Бухгалтерия государственного учреждения". Ролевая адресация, условная маршрутизация, последовательное и параллельное согласование, уведомление о новых задачах на почту, блокировка объектов в зависимости от статуса, запрет проведения в зависимости от статуса, автозапуск процессов согласования, отчеты по исполнительской дисциплине. Не требуется снятие конфигурации с поддержки. Настройка без программирования. Версия для 1cfresh.com. Сертификат 1С-Совместимо.

14900 руб.

15.11.2018    27793    25    48    

57
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 38 09.01.20 14:27 Сейчас в теме
(97) Никакая дополнительная оплата рабочих мест АСУ-АСУ давно не требуется.
user830227; +1 Ответить
105. dvim 65 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 65 11.01.20 21:45 Сейчас в теме
Мы сделали свой сервер, который пересылает сообщения .
(Плюс еще в режиме заданий работает).
112. user645801_yyyuuu123q 13.01.20 04:00 Сейчас в теме
(110) Ребят Мне бы методику как это делается) чтобы раз сделать и понять. Уже месяц пытаюсь ком завести, а никак.
Через ИИС видел делают, как то еще. Но понимания пока нет. Если что может помочь понять подскажите пожалуйста
111. milanse 38 12.01.20 10:30 Сейчас в теме
FreeProxy решает проблему доступности, сом объект сейчас не содержится в официальной документации на режим АСУ-АСУ. Сервер с очередями навероное круто, но уж больно геморно для небольшой конторы
113. user645801_yyyuuu123q 16.01.20 04:59 Сейчас в теме
Говорил с поддержкой. КОМ не поддерживают уже 6 лет)
Перевел все на соап. Пока не тестировал как будет работать сервера по регламетному заданию. В остальном стало быстрее
114. dvim 65 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 65 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 65 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 65 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 65 01.09.20 17:48 Сейчас в теме
Нашел интересную доку - попробовал работает.
Но - вопрос в платностисправок, если ли информация про это ?

Просто за ответы по тому же натурному листу от слеженцев - платим и не так, чтобы мало.
При запросе через этран запрос тарифицируется или нет ?
Прикрепленные файлы:
Описание входных и выходных параметров информационных справок (для запроса GetInform).doc
bgazobeton; +1 Ответить
174. milanse 38 01.09.20 18:20 Сейчас в теме
176. milanse 38 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 38 12.06.21 10:47 Сейчас в теме
(177) в тестовом режиме получаем дислокацию в режиме за период, с 16.06 вроде перестанут отдавать в старых режимах, будем переводить на прод.

Ну и нужные нам справки давно используем, активно взаимодействуем по процессу доработки и исправления ошибок.
179. user830227 12.06.21 12:28 Сейчас в теме
(178) то же самое, пообещали отключить дислокацию вагонов в САО с 15 июня. Готовимся. Тестирование завершили.
183. AnRyb 6 24.06.21 18:44 Сейчас в теме
(179) Приведите, пожалуйста, пример текста запроса справки какой-нибудь SPVXXXX. Не могу найти в документации ((. Заранее благодарю!
182. AnRyb 6 24.06.21 18:43 Сейчас в теме
(178) Приведите, пожалуйста, пример текста запроса справки какой-нибудь SPVXXXX. Не могу найти в документации ((. Заранее благодарю!
184. dvim 65 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 6 25.06.21 13:22 Сейчас в теме
(184) Спасибо огромное! Схему я видел, пробовал делать запрос по аналогии с описанным в документации программиста для справки 14, возвращало ошибку.
Ваш запрос проверю уже завтра.
186. AnRyb 6 25.06.21 14:08 Сейчас в теме
(184) Проверил. Всё работает. Спасибо огромное!!!
180. dvim 65 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 140 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>
196. пользователь 04.09.21 10:28
Сообщение было скрыто модератором.
...
Оставьте свое сообщение