Номера ГТД / Модуль менеджера

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
	
#Область ПрограммныйИнтерфейс

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

// Возвращает дату принятия декларации на товары.
// Если номер таможенной декларации указан некорректно или декларация была выдана 
// не российским таможенным органом - будет возвращена пустая дата.
//
// Параметры:
//    НомерТаможеннойДекларации - Строка - Номер таможенной декларации или регистрационный номер таможенной декларации.
//
// Возвращаемое значение:
//    Дата - Дата принятия декларации на товары, зашифрованная во втором разряде
//                                            номера таможенной декларации.
Функция ДатаПринятияДекларацииНаТовары(НомерТаможеннойДекларации) Экспорт
	
	ДатаПринятияДекларацииНаТовары = '00010101';
	
	Если НЕ ЗначениеЗаполнено(НомерТаможеннойДекларации) Тогда
		Возврат ДатаПринятияДекларацииНаТовары;
	КонецЕсли;
	
	СтруктураНомера = УчетНДСКлиентСерверЛокализация.ПроверитьКорректностьНомераТаможеннойДекларации(НомерТаможеннойДекларации);
	
	Если НЕ ЗначениеЗаполнено(СтруктураНомера.РегистрационныйНомер) Тогда
		Возврат ДатаПринятияДекларацииНаТовары;
	КонецЕсли;
	
	МассивТД = СтрРазделить(СтруктураНомера.РегистрационныйНомер, "/");
	РазрядДатаПринятияДекларацииНаТовары = МассивТД[1];
	
	Возврат СтроковыеФункцииКлиентСервер.СтрокаВДату(РазрядДатаПринятияДекларацииНаТовары)
	
КонецФункции

// Инициализирует структуру параметров для передачи данных в обработчик заполнения элемента справочника НомераГТД.
//
// Параметры:
//	НомерТаможеннойДекларации - Строка - номер таможенной декларации или регистрационный номер таможенной декларации.
//	СтранаПроисхождения - Неопределено, СправочникСсылка.СтраныМира - Необязательный, страна происхождения товара
//																		по таможенной декларации.
//
// Возвращаемое значение:
//	Структура - параметры заполнения элемента справочника НомераГТД, включающие следующие свойства:
//		* Код - Строка - Полный номер грузовой таможенной декларации.
//		* СтранаПроисхождения - СправочникСсылка.СтраныМира, Неопределено - Страна происхождения товара по таможенной
//																			декларации.
//		* РегистрационныйНомер - Строка - Номер таможенной декларации.
//		* Номенклатура - СправочникСсылка.Номенклатура - требуется для учета прослеживаемых товаров.
//		* НаименованиеТовара - Строка - требуется для учета прослеживаемых товаров.
//		* СуммаПоРНПТ - Число - требуется для учета прослеживаемых товаров.
//		* ПорядковыйНомерТовара - Строка - Порядковый номер товара (значение поля №32 таможенной декларации).
//		* ТипНомераГТД - ПеречислениеСсылка.ТипыНомеровГТД - тип номера ГТД. Значение по умолчанию "НомерГТД".
//		* ЗаполнитьПорядковыйНомерТовараАвтоматически - Булево - Признак, что ПорядковыйНомерТовара будет вычисляться
//																	непосредственно из свойства Код.
//		* СтранаВвозаНеРФ - Булево - Признак, что товар декларировался не в РФ.
//
Функция ПараметрыДляЗаполненияЭлемента(НомерТаможеннойДекларации, СтранаПроисхождения = Неопределено) Экспорт
	
	ПараметрыЗаполнения = Новый Структура;
	ПараметрыЗаполнения.Вставить("Код",						НомерТаможеннойДекларации);
	ПараметрыЗаполнения.Вставить("СтранаПроисхождения",		?(ЗначениеЗаполнено(СтранаПроисхождения),
																СтранаПроисхождения,
																Справочники.СтраныМира.ПустаяСсылка()));
	ПараметрыЗаполнения.Вставить("РегистрационныйНомер",	"");
	ПараметрыЗаполнения.Вставить("Номенклатура",			"");
	ПараметрыЗаполнения.Вставить("НаименованиеТовара",		"");
	ПараметрыЗаполнения.Вставить("СуммаПоРНПТ",				0);
	ПараметрыЗаполнения.Вставить("ПорядковыйНомерТовара",	"");
	ПараметрыЗаполнения.Вставить("ТипНомераГТД",			Перечисления.ТипыНомеровГТД.НомерГТД);
	ПараметрыЗаполнения.Вставить("ЗаполнитьПорядковыйНомерТовараАвтоматически", Ложь);
	ПараметрыЗаполнения.Вставить("СтранаВвозаНеРФ",			Ложь);
	
	Возврат ПараметрыЗаполнения;
	
КонецФункции

// Возвращает имена блокируемых реквизитов для механизма блокирования реквизитов БСП.
//
// Возвращаемое значение:
//	Массив Из Строка- имена блокируемых реквизитов.
//
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
	
	БлокируемыеРеквизиты = Новый Массив;
	БлокируемыеРеквизиты.Добавить("Код");
	БлокируемыеРеквизиты.Добавить("ТипНомераГТД");
	БлокируемыеРеквизиты.Добавить("СтранаПроисхождения");
	БлокируемыеРеквизиты.Добавить("Номенклатура");
	БлокируемыеРеквизиты.Добавить("НаименованиеТовара");
	БлокируемыеРеквизиты.Добавить("ЕдиницаИзмерения");
	БлокируемыеРеквизиты.Добавить("СуммаПоРНПТ");
	БлокируемыеРеквизиты.Добавить("ПрослеживаемыеКомплектующие");
	
	Возврат БлокируемыеРеквизиты;
	
КонецФункции

#КонецОбласти

#КонецЕсли

#Область ОбработчикиСобытий

Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	Поля.Добавить("Код");
	Поля.Добавить("ТипНомераГТД");
	Поля.Добавить("КоличествоКомплектующих");
	
КонецПроцедуры

Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)
	
	Если Данные.ТипНомераГТД <> ПредопределенноеЗначение("Перечисление.ТипыНомеровГТД.НомерРНПТКомплекта") Тогда
		Возврат;
	Иначе
		ЗакупкиВызовСервера.НомераГТДОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка);
	КонецЕсли;
	
КонецПроцедуры

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)
	
	ЗакупкиВызовСервера.НомераГТДОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка);
	
КонецПроцедуры

#КонецЕсли

#КонецОбласти

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область СлужебныеПроцедурыИФункции

#Область Прочее

// Возвращает порядковый номер товара из полного номера таможенной декларации,  для России это 4 группа символов,
// найденных по разделителю "\".
//
// Параметры:
//	НомерТаможеннойДекларации - Строка - Полный номер таможенной декларации.
//
// Возвращаемое значение:
//	Строка - Порядковый номер товара (значение поля №32 таможенной декларации).
//
Функция ПорядковыйНомерТовараИзНомераТаможеннойДекларации(НомерТаможеннойДекларации) Экспорт
	
	ПорядковыйНомерТовара	= "";
	ДанныеНомераГТД			= СтрРазделить(НомерТаможеннойДекларации, "/");
	
	Если ДанныеНомераГТД.Количество() = 4 Тогда
		ПорядковыйНомерТовара = ДанныеНомераГТД[3];
	КонецЕсли;
	
	Возврат ПорядковыйНомерТовара;
	
КонецФункции

#КонецОбласти

#КонецОбласти

#КонецЕсли

Связанные материалы