Как через конвертацию данных выгрузить только созданное физическое лицо, а не все физические лица?

1. user1202776 24.01.20 17:03 Сейчас в теме
В базе ЗУП 3.1 создается физическое лицо, на форме есть кнопка, при нажатии которой это новое физическое лицо должен перенестись в базу УТ 10.3. Как сделать это через конвертацию данных? Как сделать так,чтобы именно это новое физическое лицо выгрузился, а не все физические лица?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Nikifforoff96 24.01.20 17:23 Сейчас в теме
Можно через КД 2 написать правило обмена. В обработчике Перед выгрузкой прописать условие (если Объект.Ссылка <> Параметры.ФизическоеЛицо Тогда Отказ; КонецЕсли). И добавить параметр соответствующий.
Или ты через КД 3 хочешь?

Зачем вообще делать это через КД?
3. user1202776 24.01.20 17:28 Сейчас в теме
(2) через КД 2.1.
Через что лучше сделать?
4. Nikifforoff96 24.01.20 17:31 Сейчас в теме
(3) Пока не понятно, для чего ты хочешь это делать - не понятно, через что лучше это будет делаться.
Через КД 2.1 можно сделать так, как я написал выше.
В правиле обмена будет Параметр "ФизическоеЛицо".
В обработке для выгрузки будешь указывать ссылку на нужное физ лицо и оно будет выгружаться.
Создашь ПКО для справочник "ФизическиеЛица", Параметр "ФизическоеЛицо", в ПКО в "ПередВыгрузкой" добавишь код (условие)
6. user1202776 24.01.20 17:36 Сейчас в теме
(4)в УТ нужны паспортные данные из ЗУП. Паспортные данные заполняются только в ЗУП-е. И при создании нового пользователя в ЗУП, нужно сделать так, чтобы пользователь нажимал там кнопку и этот новый пользователь с паспортными данными создавался в УТ
5. dakork 33 24.01.20 17:31 Сейчас в теме
Почитай тут https://infostart.ru/public/86109/. Ну и в дополнение используй Запрос в ком-соединении, при необходимости
8. user1202776 24.01.20 17:40 Сейчас в теме
(5) лучше через обработку "Универсальный обмен данными в формате XML" сделать или лучше через ком-соединение сделать?
9. dakork 33 24.01.20 17:56 Сейчас в теме
(8)сперва подключаешься по com затем используешь "Универсальный обмен данными в формате XML"

СтрокаПодключения =  //тут твоя строка подключения
	
	Попытка
		//Создаем COM Объект
		V83COMConnector= Новый COMОбъект("V83.COMConnector");
		//Выполняем подключение к информационной базе
		База = V83COMConnector.Connect(СтрокаПодключения);
	Исключение
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;
	
	Попытка
		
		Обработка = База.Обработки.УниверсальныйОбменДаннымиXML.Создать();
Показать

и т.д.
10. user1202776 29.01.20 15:17 Сейчас в теме
(9) не подключается к базе. Выдает ошибку:
-2147221164(0x80040154): Класс не зарегистрирован
11. dakork 33 29.01.20 17:18 Сейчас в теме
(10)надо зарегистрировать com-компоненту. Это к вашим сис-админам https://infostart.ru/public/197627/
13. user1202776 29.01.20 18:27 Сейчас в теме
(11)com-компоненту нужно регистрировать и на сервере, где и стоит база-источник, и на сервере, где стоит база-приемник?
15. user1202776 30.01.20 10:24 Сейчас в теме
(11) в заголовке этой статьи написано "V82.COMConnector", а у вас в примере (9) написано "V83.COMConnector". Для "V83.COMConnector" тоже эта статья актуальна?
16. dakork 33 30.01.20 14:07 Сейчас в теме
17. user1202776 30.01.20 14:34 Сейчас в теме
(16)но только нужно регистрировать не ""V82.COMConnector"", а ""V83.COMConnector",да?
19. dakork 33 30.01.20 17:22 Сейчас в теме
18. user1202776 30.01.20 17:00 Сейчас в теме
(11)зарегистрировал.теперь выдает ошибку : "Несоответствие версий клиента и сервера 1С:Предприятия Различаются версии клиента и сервера (8.3.16.1063 - 8.3.12.1714), клиентское приложение: COM-соединение"
Можно исправить эту ошибку не обновляя версию?
20. dakork 33 30.01.20 17:23 Сейчас в теме
(18)Это к сис-админам. У вас различаются версии клиента и сервера. Надо чтобы на клиенте была та же версия. Почему не хотите обновлять версию клиента?
12. dakork 33 29.01.20 17:39 Сейчас в теме
(10) Кстати ниже привожу мой рабочий код (за основу взято https://infostart.ru/public/86109/.). Может что отсюда тебе пригодится.

У меня реализовано ввиде расширения.

В расширение:
1. Добавил документы и справочники, которые мне нужно переносить.
2. Создал общую группу команд "Перенести" (Категория :Командная панель формы)
3. Создал также общую команду, где указал Группу - Командная панель формы.Перенести, Тип параметра - (все мои документы и справочники для переноса).

ПравилаОбмена написал в КД 2.1 и поместил ввиде двоичных данных в ОбщийМакет "ПравилаОбмена" в редактируемой базе, куда подключаюсь.

&НаСервере
Функция ПоместитьНаСервере(ДопПараметры)
	    
	База = ПолучитьПодключениеКСервернойБД(ДопПараметры.ПараметрыПодключения);
	
	Если База = "" Тогда
		Возврат "...Ошибка подключения...";   
	КонецЕсли;
		
	ПравилаОбмена 		= База.ПолучитьОбщийМакет("ПравилаОбменаЗУП");
	ОбъектМетаданных 	= ДопПараметры.Источник.Метаданные(); 
	
	Попытка
		
		Обработка = Обработки.УниверсальныйОбменДаннымиXML.Создать();
		
		НаименованиеИсточника 	= ДопПараметры.Источник.Метаданные().Имя; 
		//если документ, то будем брать дату документа иначе текущую дату
		Если ОбщегоНазначения.ЭтоДокумент(ОбъектМетаданных) Тогда
			
			НаименованиеИсточникаДляОтбора = "Документ_"+НаименованиеИсточника;
			Обработка.ДатаНачала 	= НачалоДня(ДопПараметры.Источник.Дата);
			Обработка.ДатаОкончания = КонецДня(ДопПараметры.Источник.Дата);
						
		ИначеЕсли ОбщегоНазначения.ЭтоСправочник(ОбъектМетаданных) Тогда //сюда должны попасть справочники
			
			НаименованиеИсточникаДляОтбора = "Справочник_"+НаименованиеИсточника;
			Обработка.ДатаНачала 	= НачалоДня(ТекущаяДата());
			Обработка.ДатаОкончания = КонецДня(ТекущаяДата());
						
		Иначе //у нас больше ничего не должно попасть
			Возврат "...Ошибка источника (данный тип объекта не должен переноситься)...";			
		КонецЕсли;
		
		УникальныйИдентификатор = Новый УникальныйИдентификатор();
		ИмяВременногоФайлаПравилОбмена = КаталогВременныхФайлов() + УникальныйИдентификатор + ".xml";
		ПравилаОбмена.Записать(ИмяВременногоФайлаПравилОбмена);
		
		Обработка.ИмяФайлаПравилОбмена = ИмяВременногоФайлаПравилОбмена;
		
		УникальныйИдентификатор = Новый УникальныйИдентификатор();
		ИмяВременногоФайлаОбмена = КаталогВременныхФайлов() + УникальныйИдентификатор + ".xml";
		Обработка.ИмяФайлаОбмена = ИмяВременногоФайлаОбмена;
		
		Обработка.ЗагрузитьПравилаОбмена(); 
		
		нВременнаяТаблицаПравил = Обработка.ТаблицаПравилВыгрузки.Скопировать();
		
		////эксперимент
		Для n=0 По нВременнаяТаблицаПравил.Строки.Количество()-1 Цикл
			
			Для Каждого СтрокаУровня2 Из нВременнаяТаблицаПравил.Rows.Получить(n).Rows Цикл
				
				Наименование = СтрокаУровня2.Имя;
				
				Если Наименование = НаименованиеИсточника Тогда
					СтрокаУровня2.Включить = 1;
				Иначе
					СтрокаУровня2.Включить = 0;
				КонецЕсли;
				
			КонецЦикла;
			
		КонецЦикла; 
		
		Для n=0 По нВременнаяТаблицаПравил.Строки.Количество()-1 Цикл
			Для Каждого СтрокаУровня2 Из нВременнаяТаблицаПравил.Rows.Получить(n).Rows Цикл
				Наименование = СтрокаУровня2.Имя;
				//Если Наименование = "ПоступлениеНаРасчетныйСчет" Тогда
				Если Наименование = НаименованиеИсточника Тогда	
					ТекущееПВД = СтрокаУровня2;
					
					Построитель =  Новый ПостроительОтчета;
					Если ТекущееПВД.ИмяОбъектаДляЗапроса <> Неопределено Тогда
						
						Построитель.Текст =
						"ВЫБРАТЬ Разрешенные _.* ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _
						|
						|
						|{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}";
					КонецЕсли;
					
					Отбор = Построитель.Отбор;
					
					Если Отбор.Найти(НаименованиеИсточникаДляОтбора) = Неопределено Тогда
						Отбор.Добавить(НаименованиеИсточникаДляОтбора);
					КонецЕсли;
					
					Отбор[НаименованиеИсточникаДляОтбора].Использование = Истина;
					Отбор[НаименованиеИсточникаДляОтбора].Значение 		= ДопПараметры.Источник;
					Отбор[НаименованиеИсточникаДляОтбора].ВидСравнения 	= ВидСравнения.Равно;
					
					Если Построитель.Отбор.Количество() > 0 Тогда
						ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
						ТекущееПВД.ИспользоватьОтбор    = ИСТИНА;
					КонецЕсли;
					Перейти ~ВыходИзДвойногоЦикла;
				КонецЕсли;
			КонецЦикла;
		КонецЦикла;	
		~ВыходИзДвойногоЦикла:
		////
					
		Обработка.ТаблицаПравилВыгрузки = нВременнаяТаблицаПравил.Скопировать();
		
		Обработка.ВыполнитьВыгрузку();
						
			//теперь загрузим
			Обработка  = База.Обработки.УниверсальныйОбменДаннымиXML.Создать();
			Обработка.ИмяФайлаОбмена = ИмяВременногоФайлаОбмена;
			Обработка.РежимОбмена    = "Загрузка";
			Обработка.ЗаписыватьРегистрыНаборамиЗаписей = Истина;
			Обработка.ЗаписыватьВИнформационнуюБазуТолькоИзмененныеОбъекты = Истина;
			Обработка.ЗагружатьДанныеВРежимеОбмена = Истина;
			Обработка.ВыполнитьЗагрузку();
			УдалитьФайлы(ИмяВременногоФайлаОбмена);
			УдалитьФайлы(ИмяВременногоФайлаПравилОбмена);
			// 
			
		Исключение
			
			ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка выгрузки данных по причине " + ОписаниеОшибки());
			База = Неопределено;
			Возврат ОписаниеОшибки();
			//ВызватьИсключение ОписаниеОшибки();
			
		КонецПопытки; 
		
		Возврат "";
		База = Неопределено;
		
КонецФункции
Показать
14. user1202776 29.01.20 18:27 Сейчас в теме
7. user1202776 24.01.20 17:38 Сейчас в теме
УТ с поддержки снят , а ЗУП нельзя снимать с поддержки
Оставьте свое сообщение

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