Сформировать хоз субъект: различия между версиями

Материал из База знаний АО АСП
Перейти к навигации Перейти к поиску
Новая страница: «====== Пример формирования хозяйствующего субъекта для выгрузки в АСП.Шлюз ====== <1c> Функция СформироватьХозСубъект(Контрагент,фабрика) ХозСубъект = Фабрика.Создать(Фабрика.Тип( ПространствоИмен(),"ХозяйствующийСубъект")); ХозСубъект.Наименование = Ко...»
 
Нет описания правки
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
====== Пример формирования хозяйствующего субъекта для выгрузки в АСП.Шлюз ======
====== Пример формирования хозяйствующего субъекта для выгрузки в АСП.Шлюз ======


<1c>
<syntaxhighlight lang='1c'>
Функция СформироватьХозСубъект(Контрагент,фабрика)
Функция СформироватьХозСубъект(Контрагент,фабрика)
Строка 12: Строка 12:
Иначе
Иначе
Если Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда //#1  
Если Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда //#1  
ЮрФизЛицо = "Юр";                                                
ЮрФизЛицо = "Юр";
ИначеЕсли Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда //#1  
ИначеЕсли Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда //#1  
ЮрФизЛицо = "ИП";
ЮрФизЛицо = "ИП";
Строка 39: Строка 39:
Возврат ХозСубъект;
Возврат ХозСубъект;
КонецФункции
КонецФункции
</1c>
</syntaxhighlight>
|
|
++++#1 Заполнение поля ЮрФизЛицо
#1 Заполнение поля ЮрФизЛицо
|
|
В зависимости от учетной системы, правовая форма контрагента может хранится в различных реквизитах.
В зависимости от учетной системы, правовая форма контрагента может хранится в различных реквизитах.
|
|
<1c>
<syntaxhighlight lang='1c'>
// Из поля ЮридическоеФизическоеЛицо  
// Из поля ЮридическоеФизическоеЛицо  
ПолучитьТипХС(Ссылка)
ПолучитьТипХС(Ссылка)
  Если Ссылка.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда
Если Ссылка.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда
      Возврат Юр";                                                
Возврат Юр";
  ИначеЕсли Ссылка.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда  
ИначеЕсли Ссылка.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда  
      Возврат "ИП";
Возврат "ИП";
  КонецЕсли;
КонецЕсли;
  Возврат Неопределено;
Возврат Неопределено;
КонецФункции
КонецФункции
</1c>
</syntaxhighlight>
<1c>
<syntaxhighlight lang='1c'>
// Из поля ЮрФизЛицо  
// Из поля ЮрФизЛицо  
ПолучитьТипХС(Ссылка)
ПолучитьТипХС(Ссылка)
    Если Ссылка.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда
Если Ссылка.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда
        Возврат "Юр";                                                
Возврат "Юр";
    ИначеЕсли Ссылка.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
ИначеЕсли Ссылка.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
        Возврат "ИП";
Возврат "ИП";
    КонецЕсли;
КонецЕсли;
    Возврат Неопределено;
Возврат Неопределено;
КонецФункции
КонецФункции
</1c>
</syntaxhighlight>
++++


++++#2 Заполнение адреса
 
#2 Заполнение адреса
|
|
На управляемых формах адрес Хоз. субъекта можно получить следующим способом  
На управляемых формах адрес Хоз. субъекта можно получить следующим способом  
<1c>
<syntaxhighlight lang='1c'>
Если Контрагент.КонтактнаяИнформация.Количество() > 0 Тогда
Если Контрагент.КонтактнаяИнформация.Количество() > 0 Тогда
Для Каждого Инф Из Контрагент.КонтактнаяИнформация Цикл  
Для Каждого Инф Из Контрагент.КонтактнаяИнформация Цикл  
Если Инф.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И Инф.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда //Инф.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента
Если Инф.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И Инф.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда //Инф.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента
          ХозСубъект.Адрес = Инф.Представление;
ХозСубъект.Адрес = Инф.Представление;
Прервать;
Прервать;
КонецЕсли;
КонецЕсли;
Строка 85: Строка 85:
Возврат Строка(Контрагент.Наименование)+": необходимо заполнить контактную информацию.";
Возврат Строка(Контрагент.Наименование)+": необходимо заполнить контактную информацию.";
КонецЕсли;
КонецЕсли;
</1c>
</syntaxhighlight>
Для обычных форм это может быть:
Для обычных форм это может быть:
<1c>
<syntaxhighlight lang='1c'>
ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Юридический");
ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Юридический");
Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда
Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда
Строка 93: Строка 93:
Возврат Неопределено;
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
</1c>
</syntaxhighlight>
или
или
<1c>
<syntaxhighlight lang='1c'>
ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Фактический");
ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Фактический");
Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда
Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда
Строка 101: Строка 101:
Возврат Неопределено;
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
</1c>
</syntaxhighlight>
++++
 
[[Category:Асп.шлюз выгрузка]]
 
<vote type=1 />

Текущая версия от 13:03, 23 мая 2025

Пример формирования хозяйствующего субъекта для выгрузки в АСП.Шлюз
Функция СформироватьХозСубъект(Контрагент,фабрика)
	
	ХозСубъект	= Фабрика.Создать(Фабрика.Тип( ПространствоИмен(),"ХозяйствующийСубъект"));
	
	ХозСубъект.Наименование 		= Контрагент.Наименование;
	ХозСубъект.НаименованиеПолное 	= Контрагент.НаименованиеПолное;
	Если Контрагент.Ссылка.Метаданные().Реквизиты.Найти("ЮридическоеФизическоеЛицо")=Неопределено Тогда //#1
		ЮрФизЛицо = "Физ";
	Иначе
		Если Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда //#1 
			ЮрФизЛицо = "Юр";	
		ИначеЕсли Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда //#1 
			ЮрФизЛицо = "ИП";
		КонецЕсли;
	КонецЕсли;
	
	ХозСубъект.ЮрФизЛицо = ЮрФизЛицо;
	ХозСубъект.ИНН = Контрагент.ИНН; // Метаданные.Справочники.Контрагенты.Реквизиты.Найти("ИНН")<>Неопределено
	//ХозСубъект.ОГРН = "";
	ХозСубъект.Комментарий = "перенесено через XDTO";
	
	
	
	<syntaxhighlight lang='bash'>
Обычные формы

#2

ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Юридический"); Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда Сообщить("Необходимо заполнить юридический адрес контрагента: " + Контрагент); Возврат Неопределено; КонецЕсли;

ХозСубъект.Организация = Истина;

Указывается, если выхружаемый Хоз. субъект является организацией

Возврат ХозСубъект; КонецФункции </syntaxhighlight> |

  1. 1 Заполнение поля ЮрФизЛицо

| В зависимости от учетной системы, правовая форма контрагента может хранится в различных реквизитах. |

// Из поля ЮридическоеФизическоеЛицо 
ПолучитьТипХС(Ссылка)
Если Ссылка.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда
Возврат Юр";	
ИначеЕсли Ссылка.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда 
Возврат "ИП";
КонецЕсли;
							
Возврат Неопределено;
КонецФункции
// Из поля ЮрФизЛицо 
ПолучитьТипХС(Ссылка)
Если Ссылка.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда
Возврат "Юр";	
ИначеЕсли Ссылка.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ФизЛицо Тогда
Возврат "ИП";
КонецЕсли;
							
Возврат Неопределено;
КонецФункции


  1. 2 Заполнение адреса

| На управляемых формах адрес Хоз. субъекта можно получить следующим способом

Если Контрагент.КонтактнаяИнформация.Количество() > 0 Тогда
	Для Каждого Инф Из Контрагент.КонтактнаяИнформация Цикл 
		Если Инф.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес И Инф.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда //Инф.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента
ХозСубъект.Адрес = Инф.Представление;
			Прервать;
		КонецЕсли;
	КонецЦикла;
Иначе
	Возврат Строка(Контрагент.Наименование)+": необходимо заполнить контактную информацию.";
КонецЕсли;

Для обычных форм это может быть:

ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Юридический");
Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда
	Сообщить("Необходимо заполнить юридический адрес контрагента: " + Контрагент); 
	Возврат Неопределено;
КонецЕсли;

или

ХозСубъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Фактический");
Если НЕ ЗначениеЗаполнено(ХозСубъект.Адрес) Тогда
	Сообщить("Необходимо заполнить фактическийадрес контрагента: " + Контрагент); 
	Возврат Неопределено;
КонецЕсли;
0.00
(0 голосов)