Сформировать поднадзорного: различия между версиями

Материал из База знаний АО АСП
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
 
Строка 1: Строка 1:
====== Пример формирования поднадзорного объекта для выгрузки в АСП.Шлюз ======
= Пример формирования поднадзорного объекта для выгрузки в АСП.Шлюз =
В примере используются следующие функции: [[шлюз_выгрузка:сформировать_хоз_субъект|СформироватьХозСубъект]]
 
В примере используется функция: [[сформировать_хоз_субъект|СформироватьХозСубъект]]
 
<syntaxhighlight lang='1c'>
<syntaxhighlight lang='1c'>
Функция СформироватьПоднадзорного(Партнер, Контрагент, Фабрика)
Функция СформироватьПоднадзорного(Партнер, Контрагент, Фабрика)
ПоднадзорныйОбъект = Фабрика.Создать(Фабрика.Тип( ПространствоИмен(),"ПоднадзорныйОбъект"));
ПоднадзорныйОбъект = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(), "ПоднадзорныйОбъект"));
ПоднадзорныйОбъект.Наименование = Партнер.Наименование;
ПоднадзорныйОбъект.Наименование = Партнер.Наименование;
ПоднадзорныйОбъект.НаименованиеПолное = Партнер.Наименование; //#1
ПоднадзорныйОбъект.НаименованиеПолное = Партнер.Наименование; // #1
ПоднадзорныйОбъект.Тип = 1; //#2
ПоднадзорныйОбъект.Тип = 1; // #2
<syntaxhighlight lang='bash'>
ПоднадзорныйОбъект.Комментарий = ""; // Партнер.ДополнительнаяИнформация;
ПоднадзорныйОбъект.Комментарий = "";
</syntaxhighlight>Партнер.ДополнительнаяИнформация;
ПоднадзорныйОбъект.Код = Партнер.Код;
ПоднадзорныйОбъект.Код = Партнер.Код;
Результат = СформироватьХозСубъект(Контрагент,фабрика);
Результат = СформироватьХозСубъект(Контрагент, Фабрика);
Если ТипЗнч(Результат)= Тип("Строка") Тогда
Если ТипЗнч(Результат) = Тип("Строка") Тогда
Возврат Результат;
Возврат Результат;
Иначе
Иначе
Строка 21: Строка 21:
КонецЕсли;
КонецЕсли;
<syntaxhighlight lang='bash'>
// Обычные формы #3
Обычные формы  
</syntaxhighlight>#3
ПоднадзорныйОбъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Фактический");
ПоднадзорныйОбъект.Адрес = УправлениеКонтактнойИнформацией.ПолучитьАдресИзКонтактнойИнформации(Контрагент, "Фактический");
Если НЕ ЗначениеЗаполнено(ПоднадзорныйОбъект.Адрес) Тогда
Если НЕ ЗначениеЗаполнено(ПоднадзорныйОбъект.Адрес) Тогда
Строка 33: Строка 31:
КонецФункции
КонецФункции
</syntaxhighlight>
</syntaxhighlight>
|
 
#1 Заполнение полного наименования
== Примечания ==
|
 
В данное поле заполняется наименование для печати. Возможное варианты:
=== Заполнение полного наименования ===
|
 
В данное поле заполняется наименование для печати. Возможные варианты:
 
<syntaxhighlight lang='1c'>
<syntaxhighlight lang='1c'>
ПоднадзорныйОбъект.НаименованиеПолное = Партнер.Наименование;
ПоднадзорныйОбъект.НаименованиеПолное = Партнер.Наименование;
</syntaxhighlight>
</syntaxhighlight>
<syntaxhighlight lang='1c'>
<syntaxhighlight lang='1c'>
ПоднадзорныйОбъект.НаименованиеПолное = Партнер.НаименованиеПолное;
ПоднадзорныйОбъект.НаименованиеПолное = Партнер.НаименованиеПолное;
</syntaxhighlight>
</syntaxhighlight>
или любое другое поле, отвечающее за наименование поднадзорного объекта.


Или любое другое поле, отвечающее за наименование поднадзорного объекта.
=== Заполнение типа поднадзорного ===


#2 Заполнение типа поднадзорного
|
Существуют следующие типы поднадзорных:
Существуют следующие типы поднадзорных:
* 1 - предприятие
* '''1''' - предприятие
* 2 - рынок
* '''2''' - рынок
* 3 - СББЖ
* '''3''' - СББЖ
* 4 - судно
* '''4''' - судно


=== Заполнение адреса ===
На управляемых формах адрес можно получить следующим способом:


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

Текущая версия от 08:02, 16 октября 2025

Пример формирования поднадзорного объекта для выгрузки в АСП.Шлюз

В примере используется функция: СформироватьХозСубъект

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

Примечания

Заполнение полного наименования

В данное поле заполняется наименование для печати. Возможные варианты:

ПоднадзорныйОбъект.НаименованиеПолное = Партнер.Наименование;
ПоднадзорныйОбъект.НаименованиеПолное = Партнер.НаименованиеПолное;

Или любое другое поле, отвечающее за наименование поднадзорного объекта.

Заполнение типа поднадзорного

Существуют следующие типы поднадзорных:

  • 1 - предприятие
  • 2 - рынок
  • 3 - СББЖ
  • 4 - судно

Заполнение адреса

На управляемых формах адрес можно получить следующим способом:

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

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

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

Или:

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