Функция СформироватьХозСубъект(Контрагент,фабрика)
ХозСубъект = Фабрика.Создать(Фабрика.Тип( ПространствоИмен(),"ХозяйствующийСубъект"));
ХозСубъект.Наименование = Контрагент.Наименование;
ХозСубъект.НаименованиеПолное = Контрагент.НаименованиеПолное;
Если Контрагент.Ссылка.Метаданные().Реквизиты.Найти("ЮридическоеФизическоеЛицо")=Неопределено Тогда //#1
ЮрФизЛицо = "Физ";
Иначе
Если Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда //#1
ЮрФизЛицо = "Юр";
ИначеЕсли Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда //#1
ЮрФизЛицо = "ИП";
КонецЕсли;
КонецЕсли;
ХозСубъект.ЮрФизЛицо = ЮрФизЛицо;
ХозСубъект.ИНН = Контрагент.ИНН; // Метаданные.Справочники.Контрагенты.Реквизиты.Найти("ИНН")<>Неопределено
//ХозСубъект.ОГРН = "";
ХозСубъект.Комментарий = "перенесено через XDTO";
// Обычные формы //#2
ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Юридический");
Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда
Сообщить("Необходимо заполнить юридический адрес контрагента: " + Контрагент);
Возврат Неопределено;
КонецЕсли;
//ХозСубъект.Организация = Истина; // Указывается, если выхружаемый Хоз. субъект является организацией
Возврат ХозСубъект;
КонецФункции
#1 Заполнение поля ЮрФизЛицо
В зависимости от учетной системы, правовая форма контрагента может хранится в различных реквизитах.
// Из поля ЮридическоеФизическоеЛицо
ПолучитьТипХС(Ссылка)
Если Ссылка.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда
Возврат Юр";
ИначеЕсли Ссылка.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда
Возврат "ИП";
КонецЕсли;
Возврат Неопределено;
КонецФункции
// Из поля ЮрФизЛицо
ПолучитьТипХС(Ссылка)
Если Ссылка.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда
Возврат "Юр";
ИначеЕсли Ссылка.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
Возврат "ИП";
КонецЕсли;
Возврат Неопределено;
КонецФункции
#2 Заполнение адреса
На управляемых формах адрес Хоз. субъекта можно получить следующим способом
Если Контрагент.КонтактнаяИнформация.Количество() > 0 Тогда
Для Каждого Инф Из Контрагент.КонтактнаяИнформация Цикл
Если Инф.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И Инф.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда //Инф.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента
ХозСубъект.Адрес = Инф.Представление;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
Возврат Строка(Контрагент.Наименование)+": необходимо заполнить контактную информацию.";
КонецЕсли;
Для обычных форм это может быть:
ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Юридический");
Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда
Сообщить("Необходимо заполнить юридический адрес контрагента: " + Контрагент);
Возврат Неопределено;
КонецЕсли;
или
ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Фактический");
Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда
Сообщить("Необходимо заполнить фактическийадрес контрагента: " + Контрагент);
Возврат Неопределено;
КонецЕсли;