Интеграция УХ и Документооборота. Поставить запрет тестовым базам

1. hoyo 14.09.20 17:42 Сейчас в теме
Доброго всем дня.
Есть такая штука - бесшовная интеграция с 1С:Документооборот. У нас она настроена, из базы УХ летят в ДО договоры. И некоторое время назад начали ещё и организации со старыми названиями прилетать, явно откуда-то из копии, но копий много, откуда это - найти не можем. Появилась идея воткнуть в ДО проверку в веб-сервисе, что пакет XDTO прилетел из рабочей базы. Если у кого-то есть идеи, как это сделать с минимальным допиливанием конфы, прошу высказать. Я пришёл к варианту, что надо в УХ при создании объекта XDTO добавить ему ещё одно свойство и пихать туда название базы. И вот тут проблемы. Потому что XDTO-пакет создаётся через прокси с ДО. Вот код стандартной функции:

Функция СоздатьОбъект(Прокси, ТипОбъекта) Экспорт
	
	Если Прокси = Неопределено Тогда
		ВызватьИсключение НСтр("ru = 'Интеграция с 1С:Документооборотом не настроена, или сервис
			|1С:Документооборота недоступен. Обратитесь к администратору.'");
	КонецЕсли;
	
	НовыйОбъект = Прокси.ФабрикаXDTO.Создать(Прокси.ФабрикаXDTO.Тип("http://www.1c.ru/dm", ТипОбъекта));
	Если СвойствоСуществует(НовыйОбъект, "dataBaseId") Тогда
		НовыйОбъект.dataBaseId = ИнтеграцияС1СДокументооборотПовтИсп.ИдентификаторБазыДанных();
	КонецЕсли;
	
	Возврат НовыйОбъект;
		
КонецФункции
Показать


Я добавляю перед Возвратом две строки:

ЗначениеАтрибута = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), Прав(СтрокаСоединенияИнформационнойБазы(),5));
	
НовыйОбъект.Добавить(ФормаXML.Элемент, "http://www.w3.org/2001/XMLSchema", "DataBaseName", ЗначениеАтрибута);


И получаю ошибку:
Несоответствие типов XDTO:
Тип '{http://www.1c.ru/dm}DMRetrieveRequest' не найден
Тип объекта не является открытым


Как я понимаю, проблема в том, что объект создаётся через прокси с ДО, а в УХ такого типа нет и 1С не знает, как работать с этим типом. Как это обойти с минимальным вмешательством в конфу?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. sergioevans 14.09.20 23:00 Сейчас в теме
На старой работе было как раз для множества вебсервисов сделано.
Система самоидентификации базы. В регистре были перечислены имена серверов, а при запуске база проверяла свое имя и то ли в константу, то ли в регистр писалось определенное имя, которое потом использовалось при обменах - добавлялось в адрес запускаемого вебсервиса. То есть контроль даже не на принимающей стороне, а прям здесь же. И если самоидентификация вдруг не прошла (например подняли копию базы в совсем незнакомом месте), то обмены просто отключались.

Правда архитектура тестовых серверов была строгая - на одном условном сервере (назовём их Марс,Венера,Юпитер,Уран...) было только по одной тестовой базе каждого типа: 1 БП, 1 ЗУП, 1 УТ, 1 ДО, по одной наших самописных баз. Но благодаря самоидентификации, например копия рабочей базы УТ, поднятая из бэкапа в базу на сервере Уран, автоматически начинала обмениваться с другими базами на том же Уране, про своё происхождение "забывала". И ничего не приходилось отключать или перенастраивать, а. вебсервисов работало довольно много.

Если интересно, опишу подробнее.
3. comptr 31 15.09.20 12:24 Сейчас в теме
Можно попробовать сменить имя узла обмена в копиях.
4. SkrAn 1 18.09.20 21:57 Сейчас в теме
Можно просто ограничиться правами доступа)
Если авторизация доменная то разнести сервера приложение прода и теста по разным пользователям, тогда тестовые базы не смогут авторизоваться, если анонимная то еще проще. поменять пароль входа для регламентного пользователя.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот