ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - 1Cv7 ВСД в ГИС Меркурий - КБ99 Redmine

Проект

Общее

Профиль

ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату.

Добавил(а) Алтай Сергей больше 6 лет назад

Эта ошибка порождается при нажатии кнопки "Получить товары" на закладке "Партии" в обработке Меркурий_Обмен_2.ert. Ее возможным источником, по моему предположению, является использование идентификатора площадки вместо идентификатора предприятия в процедуре "Функция ПолучитьПартии2_ТекстЗапросаXML(Отправитель_Площадка, Смещение=0) Экспорт" класса "Меркурий_ГлобальныйМодуль2.ert":

    Запрос = "    
    |<SOAP-ENV:Envelope 
    |xmlns:dt='http://api.vetrf.ru/schema/cdm/dictionary/v2' 
    |xmlns:bs='http://api.vetrf.ru/schema/cdm/base' 
    |xmlns:merc='http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2' 
    |xmlns:apldef='http://api.vetrf.ru/schema/cdm/application/ws-definitions' 
    |xmlns:apl='http://api.vetrf.ru/schema/cdm/application' 
    |xmlns:vd='http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2' 
    |xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>
    |  <SOAP-ENV:Header/>
    |  <SOAP-ENV:Body>
    |    <apldef:submitApplicationRequest>
    |      <apldef:apiKey>"+ГМ.СписокКонстант.Получить("param_api_key")+"</apldef:apiKey>
    |      <apl:application>
    |        <apl:serviceId>mercury-g2b.service:2.0</apl:serviceId>
    |        <apl:issuerId>"+ГМ.СписокКонстант.Получить("param_issuer_id")+"</apl:issuerId>
    |        <apl:issueDate>"+ ГМ.ДатаXML(ТекущаяДата(), "T00:00:00") +"</apl:issueDate>
    |        <apl:data>
    |          <merc:getStockEntryListRequest>
    |            <merc:localTransactionId>[GUID]</merc:localTransactionId>
    |            <merc:initiator>
    |              <vd:login>"+ГМ.СписокКонстант.Получить("param_intiator_login")+"</vd:login>
    |            </merc:initiator>
    |            <bs:listOptions>
    |              <bs:count>1000</bs:count>
    |              <bs:offset>" + Смещение + "</bs:offset>
    |            </bs:listOptions>
    |            <dt:enterpriseGuid>"+СокрЛП(Отправитель_Площадка.GUID)+"</dt:enterpriseGuid>    // <- вот здесь
    |          </merc:getStockEntryListRequest>
    |        </apl:data>
    |      </apl:application>
    |    </apldef:submitApplicationRequest>
    |  </SOAP-ENV:Body>
    |</SOAP-ENV:Envelope>
    |";    

Если я все-таки ошибаюсь, то что может быть источником этой ошибки?


Ответы (22)

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Алтай Сергей больше 6 лет назад

Я попробовал переопределить функцию ПолучитьПартии2_ТекстЗапросаXML(Отправитель_Площадка, Смещение=0), чтобы проверить предположения о неправильном заполнении параметров в запросе, и вот какие сообщения об ошибках получил:

Выполняется переопределение функции <ПолучитьПартии2_ТекстЗапросаXML> 
Меркурий_ГлобальныйМодуль::ПереопределитьФункцию(Строка ИмяФункции=ПолучитьПартии2_ТекстЗапросаXML, МеркурийИнтеграция Объект=) : Поле агрегатного объекта не обнаружено

{E:\DB_1C77\sklad_2006\ExtForms\classes\Vetis\Меркурий_ГлобальныйМодуль.ert(0) }

МеркурийИнтеграция::Инициализация(Меркурий_ГлобальныйМодуль модульМеркурий=) : Меркурий_ГлобальныйМодуль::ПереопределитьФункцию(Строка ИмяФункции=ПолучитьПартии2_ТекстЗапросаXML, МеркурийИнтеграция Объект=) : Поле агрегатного объекта не обнаружено

{E:\DB_1C77\sklad_2006\ExtForms\classes\Vetis\Меркурий_ГлобальныйМодуль.ert(0) }

Меркурий.ПереопределитьФункцию("ПолучитьПартии2_ТекстЗапросаXML",Сам());
{E:\DB_1C77\sklad_2006\ExtForms\classes\Vetis\Меркурий_Интеграция.ert(24) }

Меркурий_ГлобальныйМодуль::Инициализация(ГрупповойКонтекст КонтекстДокумента=) : МеркурийИнтеграция::Инициализация(Меркурий_ГлобальныйМодуль модульМеркурий=) : Меркурий_ГлобальныйМодуль::ПереопределитьФункцию(Строка ИмяФункции=ПолучитьПартии2_ТекстЗапросаXML, МеркурийИнтеграция Объект=) : Поле агрегатного объекта не обнаружено

{E:\DB_1C77\sklad_2006\ExtForms\classes\Vetis\Меркурий_ГлобальныйМодуль.ert(0) }

Меркурий.ПереопределитьФункцию("ПолучитьПартии2_ТекстЗапросаXML",Сам());
{E:\DB_1C77\sklad_2006\ExtForms\classes\Vetis\Меркурий_Интеграция.ert(24) }

глМеркурийИнтеграция.Инициализация(Сам());  
{E:\DB_1C77\sklad_2006\ExtForms\classes\Vetis\Меркурий_ГлобальныйМодуль.ert(6413) }

ГМ.Инициализация(Контекст);        
{E:\DB_1C77\SKLAD_2006\EXTFORMS\VETIS\МЕРКУРИЙ_ОБМЕН_2.ERT(620)}: Меркурий_ГлобальныйМодуль::Инициализация(ГрупповойКонтекст КонтекстДокумента=) : МеркурийИнтеграция::Инициализация(Меркурий_ГлобальныйМодуль модульМеркурий=) : Меркурий_ГлобальныйМодуль::ПереопределитьФункцию(Строка ИмяФункции=ПолучитьПартии2_ТекстЗапросаXML, МеркурийИнтеграция Объект=) : Поле агрегатного объекта не обнаружено

{E:\DB_1C77\sklad_2006\ExtForms\classes\Vetis\Меркурий_ГлобальныйМодуль.ert(0) }

Возможно, что или механизм переопределения функций в модуле Меркурий_Интеграция.ert не работает, или я сделал что-то не так:
Функция Инициализация(модульМеркурий) Экспорт

    Меркурий = модульМеркурий;

    //Здесь описываются все функции которые будут переопределены
    //Меркурий.ПереопределитьФункцию("ПолучитьИНН"                    ,Сам());
    Меркурий.ПереопределитьФункцию("ПолучитьПартии2_ТекстЗапросаXML",Сам());

КонецФункции // Инициализация

Функция ПолучитьПартии2_ТекстЗапросаXML(Отправитель_Площадка, Смещение=0) Экспорт
    //проверим наличие GUID ХозСубъекта у площадки    
    Если ПустоеЗначение(Отправитель_Площадка.GuidХозСубъекта)=1 Тогда 
        Сообщить("В выбранной Площадке пустой GUID ХозСубъекта");
        Возврат "REJECTED";
    КонецЕсли;

    //выражение [GUID] будет заменено на новый Guid в формате: d82d83f7-944b-45e9-88dc-67892eae1e3e
    Запрос = "    
    |<SOAP-ENV:Envelope 
    |xmlns:dt='http://api.vetrf.ru/schema/cdm/dictionary/v2' 
    |xmlns:bs='http://api.vetrf.ru/schema/cdm/base' 
    |xmlns:merc='http://api.vetrf.ru/schema/cdm/mercury/g2b/applications/v2' 
    |xmlns:apldef='http://api.vetrf.ru/schema/cdm/application/ws-definitions' 
    |xmlns:apl='http://api.vetrf.ru/schema/cdm/application' 
    |xmlns:vd='http://api.vetrf.ru/schema/cdm/mercury/vet-document/v2' 
    |xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'>
    |  <SOAP-ENV:Header/>
    |  <SOAP-ENV:Body>
    |    <apldef:submitApplicationRequest>
    |      <apldef:apiKey>"+Меркурий.СписокКонстант.Получить("param_api_key")+"</apldef:apiKey>
    |      <apl:application>
    |        <apl:serviceId>mercury-g2b.service:2.0</apl:serviceId>
    |        <apl:issuerId>"+Меркурий.СписокКонстант.Получить("param_issuer_id")+"</apl:issuerId>
    |        <apl:issueDate>"+ Меркурий.ДатаXML(ТекущаяДата(), "T00:00:00") +"</apl:issueDate>
    |        <apl:data>
    |          <merc:getStockEntryListRequest>
    |            <merc:localTransactionId>[GUID]</merc:localTransactionId>
    |            <merc:initiator>
    |              <vd:login>"+Меркурий.СписокКонстант.Получить("param_intiator_login")+"</vd:login>
    |            </merc:initiator>
    |            <bs:listOptions>
    |              <bs:count>1000</bs:count>
    |              <bs:offset>" + Смещение + "</bs:offset>
    |            </bs:listOptions>
    |            <dt:enterpriseGuid>"+СокрЛП(Отправитель_Площадка.GuidХозСубъекта)+"</dt:enterpriseGuid>
    |          </merc:getStockEntryListRequest>
    |        </apl:data>
    |      </apl:application>
    |    </apldef:submitApplicationRequest>
    |  </SOAP-ENV:Body>
    |</SOAP-ENV:Envelope>
    |";    

    Возврат Запрос;
КонецФункции

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Жуков Дмитрий больше 6 лет назад

Вероятно вы все же пытаетесь получить партии, а не товары. -> Кнопка Получить партии v2 Запрос.
Если уверены, что все параметры заполнены правильно - отправьте письмо в ТП Ветис со вложенными XML с запроса и ответа от Меркурия на .

По поводу использования идентификатора ХС вместо Площадки вы ошибаетесь :
http://help.vetrf.ru/wiki/GetStockEntryListOperation_v2.0

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Алтай Сергей больше 6 лет назад

Мы, в общем-то, нашли источник проблемы: оказалось, что при регистрации площадок в системе Цербер произошла путаница: оказалось, что у нас две площадки с одним и тем же адресом, при этом для площадки, которая привязана к хозсубъекту, указан статус "Не подтвержден", а площадка со статусом "Подтвержден" не привязана к хозсубъекту. Т.е., дело не в обработке и даже не в правильности или неправильности выставленных параметров, а в путанице, допущенной при регистрации в самой системе Меркурий.
Отсюда, кстати, вывод: при столкновении с подобной ошибкой, в самую первую очередь надо зайти в Цербер и проверить статусы и привязки площадок. И только затем начинать искать другие причины этой ошибки.

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Алтай Сергей больше 6 лет назад

Добрый день!

К сожалению, я поторопился с ответом. Даже после исправления регистрации площадок, ошибка "ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату" (<error code="MERC05180">Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату.</error>;) воспроизводится для любого запроса, содержащего ссылку на guid площадки в своих параметрах. Притом, что запросы, например, на получение списка площадок для хозсубъекта работают без ошибок. Честно сказать, я уже не понимаю, что означает эта ошибка. Может быть Вы сможете подсказать, в каком направлении искать ответ?

С уважением, Дмитрий Донченко,
ИТ-специалист ООО "КТМ" ,
тел. +7 (905) 904 67 47

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Алтай Сергей больше 6 лет назад

Пример запросов и ответов - попытка выполнить запрос на создание связи площадки с ХС (по кнопке "Создать связь Площадки с ХозСубъектом - запрос" в обработке "Меркурий_Обмен_2.ert") , - результатом выполнения которых становится "ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату".

Реальный apiKey заменен на ***.

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Алтай Сергей больше 6 лет назад

Я, в общем-то, понял причину описанных проблем. Спасибо техподдержке Ветиса, к которым с трудом, но удалось-таки дозвониться, и программе SoapUI, с помощью которой наконец-то удалось увидеть источник наших проблем: просто при регистрации наших ХС и площадок "накосячили" специалисты ТП Меркурия. Так что будем работать с ними, пока все ошибки не исправят. Так что Ваша обработка здесь вроде как не причем.

С уважением, Дмитрий Донченко,
ИТ-специалист ООО "КТМ" ,
тел. +7 (905) 904 67 47

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Алтай Сергей больше 6 лет назад

Проблема с "ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату" решена и закрыта.

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Крым Корниенко Ирина больше 6 лет назад

эта же ошибка возникает в тестовом контуре в обработке Меркурий_Обмен_2.ert по кнопке "Создать площадку запрос". Подскажите куда копать. Или нас не правильно зарегистрировали в тестовом контуре? В продуктивном такого нет, все площадки подгрузились без проблем.

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Алтай Сергей больше 6 лет назад

В тестовом контуре просто создайте нужные площадки сами! Дело в том, что площадки из продуктивного контура никакого отношения к тестовому не имеют. Поэтому в вашем тестовом контуре список площадок пуст, а попытка подключиться к нему используя GUID из продуктивного, как раз и выдаст такую ошибку. Поэтому, просто создайте нужное количество площадок сами, и ничего не бойтесь, т.к. тестовый контур - это действительно тестовый контур, в котором можно делать что угодно.

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Алтай Сергей больше 6 лет назад

Лучше всего через обработку Меркурий_Обмен_2.ert - как Вы и пытались сделать. Жмете кнопку с плюсиком (справа от поля, в котором выбираются площадки из справочника) - создаете запись в справочнике. Она же у Вас должна сама выбраться в поле. Если нет, то выбираете ее вручную из справочника. Затем жмете кнопку "Создать площадку - запрос" - регистрируете площадку в Меркурии. Если ничего не выходит, обращаетесь в техподдержку Ветиса.

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Крым Корниенко Ирина больше 6 лет назад

Может эта ошибка быть связана с тем, что в обработке Меркурий_Обмен_2.ert нажимаю "Получить GUID хозсубъекта", GUID загружается от рабочего контура, а не от тестового. все параметры указаны от тестового контура в том числе и IssuerID ? В Ветис написала, пока тишина. Как исправить? Пробовала принудительно ставить тестовый GUID (=IssuerID) в карточку ХС и площадки, все равно при регистрации площадки ошибка та же. Видео посмотрела, все делаю так же.

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Алтай Сергей больше 6 лет назад

А флажок "Тестовый режим" на форме Меркурий_Параметры.ert стоит? Проверьте внимательно! Его надо не просто установить, а еще и нажать кнопку "Сохранить", чтобы значение параметра записалось в cfg-файл. В том, что значение записалось, убедиться очень просто: закрываете и заново открываете форму параметров, если при открытии флажок "Тестовый режим" установился сам, значит его значение записалось в файл. Если флажок все-таки стоит, то так же может быть вариант как было у нас: сотрудники территориального подразделения Ветиса умудрились каким-то немыслимым образом ввести в тестовый контур точно такие же данные на площадки (вплоть до GUID и UUID), что и для площадок рабочего контура. Тогда Вам придется разбираться с ними... Наши исправляли свои косяки несколько дней!

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Крым Корниенко Ирина больше 6 лет назад

Да, флаг "тестовый режим" установлен при открытии, заголовок формы обработки тоже "Меркурий-Тестовая версия". Единственное, что у меня на одном компе зарегистрированы обе SoapDLL тестовая и рабочая. Но база под тестовую отдельная. Побегу к нашим местным ветеринарам, спрошу.

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Жуков Дмитрий больше 6 лет назад

Крым Корниенко Ирина писал(а):

Да, флаг "тестовый режим" установлен при открытии, заголовок формы обработки тоже "Меркурий-Тестовая версия". Единственное, что у меня на одном компе зарегистрированы обе SoapDLL тестовая и рабочая. Но база под тестовую отдельная. Побегу к нашим местным ветеринарам, спрошу.

Наличие зарегистрированных одновременно рабочей и тестовой библиотек это нормально.
Внимательнее с параметрами.
В тестовую не может грузиться ГУИД рабочей, если только, как писали выше, они каким-то образом совпадают...

Попробуйте переполучить ГУИД ХС через Обмен

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Жуков Дмитрий больше 6 лет назад

В Продуктиве много косяков с ХС и Площадками - ошибочно вносили, потом объединяли и исправляли.
ГУИДы "нормальных" удавалось получить от ТП

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) Крым Корниенко Ирина больше 6 лет назад

Дозвонилась до техподдержки, поменяли мне тестовый ГУИД, и теперь от СОВПАДАЕТ с рабочим. Сказали что "это нормально". Но теперь из обработки Меркурий_Обмен_2.ert хочу получить ГУИД хозсубъекта по инн выдает следующее: Запрос GetBusinessEntityByINN [ МойИНН ]
Загрузка XML-файла: D:\1c\Simfer-меркур тест\logs\cdef3402-6a96-4d83-a134-38bd51fb3f4f_result.xml
Получен пустой ответ GetBusinessEntityByINN
Плохой тип переменной

RE: ОШИБКА: Предприятие с указанным идентификатором не найдено в реестре РСХН, либо идентификатор не соответствует установленному формату. - Добавил(а) кб99 Синявский Филипп больше 6 лет назад

значит в ХозСубъекте не указан ваш ИНН, обратитесь в техподдержку для исправления вашего ХозСубъекта

для получения ХС по GUID можете воспользоваться функцией ЗагрузитьХСПоGUID

Функция ЗагрузитьХСПоGUID(GUID) Экспорт
    (1-22/22)