ВыслатьКвитанциюПередачиФайла (БСП)

Автор: 1С
ОбщийМодуль.РаспределенноеВыполнениеКоманд
БСП

Выслать квитанцию передачи файла. Отправляет области-получателю сообщение-квитанцию о получении (завершении обработки,

// Отправляет области-получателю сообщение-квитанцию о получении (завершении обработки,
// и так далее) ранее полученного файла.
// Важно! Если какой-либо из параметров передан некорректно, вызывается исключение.
//
// Параметры:
//	ИдентификаторВызова - УникальныйИдентификатор - ранее выданный функцией ВыполнитьПередачуФайлаПриложению
//	КодПолучателя - Число - код области данных, куда нужно передать квитанцию.
//	БыстраяПередача - Булево - указывает, что необходимо использовать быстрые сообщения для передачи файла. 
//	ПараметрыВызова - Структура - дополнительные параметры вызова,
//						*Код (Число), *Тело (Строка).
//
//
Процедура ВыслатьКвитанциюПередачиФайла(ИдентификаторВызова, КодПолучателя, БыстраяПередача = Ложь, ПараметрыВызова = Неопределено) Экспорт

	Локаль = ОбщегоНазначенияКлиентСервер.КодОсновногоЯзыка();
		
	// Проверяем входящие параметры.
	
	Если НЕ ЗначениеЗаполнено(ИдентификаторВызова) ИЛИ НЕ ТипЗнч(ИдентификаторВызова) = Тип("УникальныйИдентификатор") Тогда
		Комментарий = НСтр("ru = 'Параметр ИдентификаторВызова не содержит валидный идентификатор.'", Локаль); 
		ВызватьИсключение Комментарий;
	КонецЕсли; 
	
	Если НЕ ЗначениеЗаполнено(КодПолучателя) И НЕ ТипЗнч(КодПолучателя) = Тип("Число") Тогда
		Комментарий = НСтр("ru = 'Параметр КодПолучателя не содержит валидный код области данных.'", Локаль); 
		ВызватьИсключение Комментарий;
	КонецЕсли; 
	
	// Формируем и отправляем сообщение.
	
	УстановитьПривилегированныйРежим(Истина);
	
	ТипСообщения = СообщенияРаспределенноеВыполнениеКомандИнтерфейс.ТипПередачаФайлаОтвет();
	Сообщение = СообщенияВМоделиСервиса.НовоеСообщение(ТипСообщения);
	Сообщение.Body.Zone = РаботаВМоделиСервиса.ЗначениеРазделителяСеанса();
	Сообщение.Body.Call_ID = ИдентификаторВызова;
	Сообщение.Body.Sender = Сообщение.Body.Zone;
	Сообщение.Body.Recipient = КодПолучателя;
	Сообщение.Body.Error = Ложь;
	Сообщение.Body.RapidTransfer = БыстраяПередача;
	
	Если НЕ ПараметрыВызова = Неопределено И ТипЗнч(ПараметрыВызова) = Тип("Структура") Тогда
		
		Если ПараметрыВызова.Свойство("Код") Тогда
			Сообщение.Body.CallCode = ПараметрыВызова.Код;
		КонецЕсли; 
		
		Если ПараметрыВызова.Свойство("Тело") Тогда
			Сообщение.Body.CallBody = ПараметрыВызова.Тело;
		КонецЕсли; 
		
	КонецЕсли; 
	
	// Высылаем сообщение МС.
	
	НачатьТранзакцию();
	Попытка
		Получатель = РаботаВМоделиСервисаПовтИсп.КонечнаяТочкаМенеджераСервиса();
		СообщенияВМоделиСервиса.ОтправитьСообщение(Сообщение, Получатель, БыстраяПередача);
		ЗафиксироватьТранзакцию();
	Исключение
		ОтменитьТранзакцию();
		ВызватьИсключение;
	КонецПопытки;
	
	УстановитьПривилегированныйРежим(Ложь);

КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

ОбработатьОтветНаПередачуФайла (БСП)

ОтработатьКвитанциюПередачиФайла (БСП)

ОбработатьОшибкуПередачиФайла (БСП)

ПолучитьРазмерБлокаПередачиФайла (БСП)

ВыполнитьПередачуФайлаПриложению (БСП)

ОбработатьЗапросНаПередачуФайла (БСП)

СобытиеЖурналаРегистрацииВыгрузкаДанныхВСервисПередачиФайлов (БСП)

СобытиеЖурналаРегистрацииЗагрузкаДанныхИзСервисаПередачиФайлов (БСП)

ВыполнитьВыгрузкуДляУзлаИнформационнойБазыВСервисПередачиФайлов (БСП)

1С Менеджер конфигураций