Общие модули.ОбщегоНазначения - Каминсофт

Общие модули.ОбщегоНазначения

21 июнь 2018 07:45 #1
от Руслан
Доброго времени суток. Не могли бы Вы пояснить следующий момент в коде:
Есть две процедуры:
1)
// Процедура записывает класс условий труда в движение
	// Параметры: п_Движение - движение в регистр
	//            п_ВидыСубконто - вид субконто
	//            п_СтруктураДляПоискаУсловий - структура с объектом проверки
	//            п_ВыборкаКлассыУсловийТруда - ыборка значений классных чинов
	//            п_Подразделение - подразделение проверки
	//            п_Должность - должность проверки.
	Процедура ЗаполнитьКлассУсловийТрудаВЗаписи(п_Движение,п_ВыборкаКлассыУсловийТруда,п_Подразделение,п_Должность,п_СтруктураДляПоискаУсловий) Экспорт 
		п_СтруктураДляПоискаУсловий.Объект = п_Подразделение;
		п_ВыборкаКлассыУсловийТруда.Сбросить();
		Если Год(п_Движение.Период) < 2016 Тогда
			Если п_ВыборкаКлассыУсловийТруда.НайтиСледующий(п_СтруктураДляПоискаУсловий) <> Неопределено и ЗначениеЗаполнено(п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда) Тогда 
				п_Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.КлассУсловийТруда] = п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда;
			Иначе
				Если п_Должность <> Неопределено Тогда
					п_СтруктураДляПоискаУсловий.Объект = п_Должность;
					п_ВыборкаКлассыУсловийТруда.Сбросить();
					Если п_ВыборкаКлассыУсловийТруда.НайтиСледующий(п_СтруктураДляПоискаУсловий) <> Неопределено и ЗначениеЗаполнено(п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда) Тогда 
						п_Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.КлассУсловийТруда] = п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда;
					КонецЕсли;  
				КонецЕсли;   
			КонецЕсли;   
		Иначе
			Если п_ВыборкаКлассыУсловийТруда.НайтиСледующий(п_СтруктураДляПоискаУсловий) <> Неопределено и ЗначениеЗаполнено(п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда) Тогда 
				п_Движение.КлассУсловийТруда = п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда;
			Иначе
				Если п_Должность <> Неопределено Тогда
					п_СтруктураДляПоискаУсловий.Объект = п_Должность;
					п_ВыборкаКлассыУсловийТруда.Сбросить();
					Если п_ВыборкаКлассыУсловийТруда.НайтиСледующий(п_СтруктураДляПоискаУсловий) <> Неопределено и ЗначениеЗаполнено(п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда) Тогда 
						п_Движение.КлассУсловийТруда = п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда;
					КонецЕсли;  
				КонецЕсли;   
			КонецЕсли;   
		КонецЕсли; 	
	КонецПроцедуры
2) Экспортная процедура
Процедура ЗаполнитьКлассУсловийТрудаВЗаписиБазаДляЕСН(п_Движение,п_ВыборкаКлассыУсловийТруда,п_Подразделение,п_Должность,п_СтруктураДляПоискаУсловий) Экспорт 
		п_СтруктураДляПоискаУсловий.Объект = п_Подразделение;
		п_ВыборкаКлассыУсловийТруда.Сбросить();
		Если п_ВыборкаКлассыУсловийТруда.НайтиСледующий(п_СтруктураДляПоискаУсловий) <> Неопределено и ЗначениеЗаполнено(п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда) Тогда 
			п_Движение.КлассУсловийТруда = п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда;
		Иначе
			Если п_Должность <> Неопределено Тогда
				п_СтруктураДляПоискаУсловий.Объект = п_Должность;
				п_ВыборкаКлассыУсловийТруда.Сбросить();
				Если п_ВыборкаКлассыУсловийТруда.НайтиСледующий(п_СтруктураДляПоискаУсловий) <> Неопределено и ЗначениеЗаполнено(п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда) Тогда 
					п_Движение.КлассУсловийТруда = п_ВыборкаКлассыУсловийТруда.КлассУсловийТруда;
				КонецЕсли;  
			КонецЕсли;   
		КонецЕсли;   
	КонецПроцедуры

Вторая процедура дублирует часть первой, для каких задач она добавлена?
Тема закрыта.

Опрос
Всего 3 простых вопроса

Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie и пользовательских данных в целях функционирования сайта, проведения ретаргетинга и статистических исследований, обзоров. Если вы не хотите, чтобы ваши данные обрабатывались, покиньте сайт.

Принять