В базе ЗУП 3.1 создается физическое лицо, на форме есть кнопка, при нажатии которой это новое физическое лицо должен перенестись в базу УТ 10.3. Как сделать это через конвертацию данных? Как сделать так,чтобы именно это новое физическое лицо выгрузился, а не все физические лица?
Можно через КД 2 написать правило обмена. В обработчике Перед выгрузкой прописать условие (если Объект.Ссылка <> Параметры.ФизическоеЛицо Тогда Отказ; КонецЕсли). И добавить параметр соответствующий.
Или ты через КД 3 хочешь?
(3) Пока не понятно, для чего ты хочешь это делать - не понятно, через что лучше это будет делаться.
Через КД 2.1 можно сделать так, как я написал выше.
В правиле обмена будет Параметр "ФизическоеЛицо".
В обработке для выгрузки будешь указывать ссылку на нужное физ лицо и оно будет выгружаться.
Создашь ПКО для справочник "ФизическиеЛица", Параметр "ФизическоеЛицо", в ПКО в "ПередВыгрузкой" добавишь код (условие)
(4)в УТ нужны паспортные данные из ЗУП. Паспортные данные заполняются только в ЗУП-е. И при создании нового пользователя в ЗУП, нужно сделать так, чтобы пользователь нажимал там кнопку и этот новый пользователь с паспортными данными создавался в УТ
(8)сперва подключаешься по com затем используешь "Универсальный обмен данными в формате XML"
СтрокаПодключения = //тут твоя строка подключения
Попытка
//Создаем COM Объект
V83COMConnector= Новый COMОбъект("V83.COMConnector");
//Выполняем подключение к информационной базе
База = V83COMConnector.Connect(СтрокаПодключения);
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;
Попытка
Обработка = База.Обработки.УниверсальныйОбменДаннымиXML.Создать();
(11) в заголовке этой статьи написано "V82.COMConnector", а у вас в примере (9) написано "V83.COMConnector". Для "V83.COMConnector" тоже эта статья актуальна?
(11)зарегистрировал.теперь выдает ошибку : "Несоответствие версий клиента и сервера 1С:Предприятия Различаются версии клиента и сервера (8.3.16.1063 - 8.3.12.1714), клиентское приложение: COM-соединение"
Можно исправить эту ошибку не обновляя версию?
В расширение:
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.Создать();
Обработка.ИмяФайлаОбмена = ИмяВременногоФайлаОбмена;
Обработка.РежимОбмена = "Загрузка";
Обработка.ЗаписыватьРегистрыНаборамиЗаписей = Истина;
Обработка.ЗаписыватьВИнформационнуюБазуТолькоИзмененныеОбъекты = Истина;
Обработка.ЗагружатьДанныеВРежимеОбмена = Истина;
Обработка.ВыполнитьЗагрузку();
УдалитьФайлы(ИмяВременногоФайлаОбмена);
УдалитьФайлы(ИмяВременногоФайлаПравилОбмена);
//
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Ошибка выгрузки данных по причине " + ОписаниеОшибки());
База = Неопределено;
Возврат ОписаниеОшибки();
//ВызватьИсключение ОписаниеОшибки();
КонецПопытки;
Возврат "";
База = Неопределено;
КонецФункции