Автозаполнение Ответственного за правильность оформления факта хозяйственной жизни БП 2.0

Программирование - Практика программирования

Автозаполнение ответственного за правильность оформления факта хозяйственной жизни в УПД Бухгалтерия 2.0

ОбщийМодульОбщего назначения меняем

Функция ОтветственныеЛица(Организация, ДатаСреза, Подразделение = Неопределено) Экспорт
	
	СобиратьПоОрганизации = Истина;
	Результат = Новый Структура("Руководитель, РуководительДолжность, РуководительФИО, РуководительПредставление, 
								|ГлавныйБухгалтер, ГлавныйБухгалтерДолжность, ГлавныйБухгалтерФИО, ГлавныйБухгалтерПредставление, 
								|Кассир, КассирДолжность, КассирФИО, КассирПредставление,  
								|УПД, УПДДолжность, УПДФИО, УПДПредставление,
								|ОтветственныйЗаРегистры, ОтветственныйЗаРегистрыДолжность, ОтветственныйЗаРегистрыФИО, ОтветственныйЗаРегистрыПредставление");

	Если Организация <> Неопределено тогда

		ЗапросПоЛицам = Новый Запрос();
		ЗапросПоЛицам.УстановитьПараметр("ДатаСреза",   ДатаСреза);
		ЗапросПоЛицам.УстановитьПараметр("Организация", Организация);
		ЗапросПоЛицам.УстановитьПараметр("ПризнакФизЛица",   Перечисления.ЮрФизЛицо.ФизЛицо);
		
		ЗапросПоЛицам.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
		                      |	ФИОФизЛицСрезПоследних.Фамилия,
		                      |	ФИОФизЛицСрезПоследних.Имя,
		                      |	ФИОФизЛицСрезПоследних.Отчество,
		                      |	ФИОФизЛицСрезПоследних.ФизЛицо КАК ФизическоеЛицо
		                      |ИЗ
		                      |	РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаСреза, ) КАК ФИОФизЛицСрезПоследних
		                      |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
		                      |		ПО ФИОФизЛицСрезПоследних.ФизЛицо = Организации.ИндивидуальныйПредприниматель
		                      |			И (Организации.Ссылка = &Организация)
		                      |			И (Организации.ЮрФизЛицо = &ПризнакФизЛица)";
		
		Руководители = ЗапросПоЛицам.Выполнить().Выбрать();
		
		Пока Руководители.Следующий() Цикл
			
			ФИО = Новый Структура("Фамилия, Имя, Отчество, Представление");
			Если НЕ (НЕ ЗначениеЗаполнено(Руководители.Фамилия) или Руководители.Фамилия = NULL) Тогда
				ФИО.Фамилия = Руководители.Фамилия;
			КонецЕсли;
			Если НЕ (НЕ ЗначениеЗаполнено(Руководители.Имя) или Руководители.Имя = NULL) Тогда
				ФИО.Имя = Руководители.Имя;
			КонецЕсли;
			Если НЕ (НЕ ЗначениеЗаполнено(Руководители.Отчество) или Руководители.Отчество = NULL) Тогда
				ФИО.Отчество = Руководители.Отчество;
			КонецЕсли;
			Представление = ПолучитьФамилиюИмяОтчество(ФИО.Фамилия, ФИО.Имя, ФИО.Отчество);
			
			Результат.Руководитель               = Руководители.ФизическоеЛицо;
			Результат.РуководительДолжность      = "";
			Результат.РуководительФИО            = ФИО;
			Результат.РуководительПредставление  = Представление;
			
		КонецЦикла;
		
		Если СобиратьПоОрганизации Тогда
			
			ЗапросПоЛицам.Текст = 
			"ВЫБРАТЬ РАЗРЕШЕННЫЕ
			|	ОтветственныеЛицаОрганизацийСрезПоследних.ОтветственноеЛицо,
			|	ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо,
			|	ОтветственныеЛицаОрганизацийСрезПоследних.Должность,
			|	ФИОФизЛицСрезПоследних.Фамилия,
			|	ФИОФизЛицСрезПоследних.Имя,
			|	ФИОФизЛицСрезПоследних.Отчество
			|ИЗ
			|	РегистрСведений.ОтветственныеЛицаОрганизаций.СрезПоследних(&ДатаСреза, СтруктурнаяЕдиница = &Организация) КАК ОтветственныеЛицаОрганизацийСрезПоследних
			|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц.СрезПоследних(&ДатаСреза, ФизЛицо ССЫЛКА Справочник.ФизическиеЛица) КАК ФИОФизЛицСрезПоследних
			|		ПО ОтветственныеЛицаОрганизацийСрезПоследних.ФизическоеЛицо = ФИОФизЛицСрезПоследних.ФизЛицо";
			Руководители = ЗапросПоЛицам.Выполнить().Выбрать();
		КонецЕсли;

		Пока Руководители.Следующий() Цикл

			ФИО = Новый Структура("Фамилия, Имя, Отчество, Представление");
			Если НЕ (НЕ ЗначениеЗаполнено(Руководители.Фамилия) или Руководители.Фамилия = NULL) Тогда
				ФИО.Фамилия = Руководители.Фамилия;
			КонецЕсли;
			Если НЕ (НЕ ЗначениеЗаполнено(Руководители.Имя) или Руководители.Имя = NULL) Тогда
				ФИО.Имя = Руководители.Имя;
			КонецЕсли;
			Если НЕ (НЕ ЗначениеЗаполнено(Руководители.Отчество) или Руководители.Отчество = NULL) Тогда
				ФИО.Отчество = Руководители.Отчество;
			КонецЕсли;
			Представление = ПолучитьФамилиюИмяОтчество(ФИО.Фамилия, ФИО.Имя, ФИО.Отчество);
			
			Если Руководители.ОтветственноеЛицо      = Перечисления.ОтветственныеЛицаОрганизаций.Руководитель Тогда
				Результат.Руководитель               = Руководители.ФизическоеЛицо;
				Результат.РуководительДолжность      = Руководители.Должность;
				Результат.РуководительФИО            = ФИО;
				Результат.РуководительПредставление  = Представление;

			ИначеЕсли Руководители.ОтветственноеЛицо = Перечисления.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер Тогда
				Результат.ГлавныйБухгалтер           = Руководители.ФизическоеЛицо;
				Результат.ГлавныйБухгалтерДолжность  = Руководители.Должность;
                Результат.ГлавныйБухгалтерФИО        = ФИО;
				Результат.ГлавныйБухгалтерПредставление  = Представление;
				
			ИначеЕсли Руководители.ОтветственноеЛицо = Перечисления.ОтветственныеЛицаОрганизаций.Кассир Тогда
				Результат.Кассир                     = Руководители.ФизическоеЛицо;
				Результат.КассирДолжность      		 = Руководители.Должность;
                Результат.КассирФИО            		 = ФИО;
				Результат.КассирПредставление  = Представление;
				
			ИначеЕсли Руководители.ОтветственноеЛицо = Перечисления.ОтветственныеЛицаОрганизаций.УПД Тогда
				Результат.УПД                     = Руководители.ФизическоеЛицо;
				Результат.УПДДолжность      		 = Руководители.Должность;
                Результат.УПДФИО            		 = ФИО;
				Результат.УПДПредставление  = Представление;

				
			ИначеЕсли Руководители.ОтветственноеЛицо = Перечисления.ОтветственныеЛицаОрганизаций.ОтветственныйЗаНалоговыеРегистры Тогда
				Результат.ОтветственныйЗаРегистры    = Руководители.ФизическоеЛицо;
				Результат.ОтветственныйЗаРегистрыДолжность      = Руководители.Должность;
				Результат.ОтветственныйЗаРегистрыФИО = ФИО;
				Результат.ОтветственныйЗаРегистрыПредставление  = Представление;

			КонецЕсли;

		КонецЦикла;

	КонецЕсли;

	Возврат Результат;

КонецФункции

 

 

Документ Реализация товаров и услуг меняем

Процедура УстановитьРуководителяИГлавногоБухгалтера()
	
	Организация = ЭтотОбъект.Организация;
	Если Организация = Справочники.Организации.ПустаяСсылка() Тогда 
		Возврат;
	КонецЕсли;
	
	ДанныеУполномоченногоЛица = ОбщегоНазначения.ПолучитьДанныеУполномоченногоЛица(Организация, ЭтотОбъект.Ответственный);
	ОтветственныеЛица = ОбщегоНазначения.ОтветственныеЛица(Организация, ЭтотОбъект.Дата);
	
	Если ДанныеУполномоченногоЛица = Неопределено Тогда 
		ЭтотОбъект.Руководитель = ОтветственныеЛица.Руководитель;
		ЭтотОбъект.ГлавныйБухгалтер = ОтветственныеЛица.ГлавныйБухгалтер;
		ЭтотОбъект.ОтветственныйЗаОформление = ОтветственныеЛица.УПД ;
		ЭтотОбъект.ЗаРуководителяПоПриказу = "";
		ЭтотОбъект.ЗаГлавногоБухгалтераПоПриказу = "";
	Иначе
		ЭтотОбъект.Руководитель = ?(ДанныеУполномоченногоЛица.Руководитель=Неопределено,ОтветственныеЛица.Руководитель,ДанныеУполномоченногоЛица.Руководитель);
		ЭтотОбъект.ОтветственныйЗаОформление = ?(ДанныеУполномоченногоЛица.УПД=Неопределено,ОтветственныеЛица.УПД,ДанныеУполномоченногоЛица.УПД);
		ЭтотОбъект.ГлавныйБухгалтер = ?(ДанныеУполномоченногоЛица.ГлавныйБухгалтер=Неопределено,ОтветственныеЛица.ГлавныйБухгалтер,ДанныеУполномоченногоЛица.ГлавныйБухгалтер);
		ЭтотОбъект.ЗаРуководителяПоПриказу = ?(ДанныеУполномоченногоЛица.Руководитель=Неопределено,"",ДанныеУполномоченногоЛица.ПриказРуководитель);
		ЭтотОбъект.ЗаГлавногоБухгалтераПоПриказу = ?(ДанныеУполномоченногоЛица.ГлавныйБухгалтер=Неопределено,"",ДанныеУполномоченногоЛица.ПриказГлавныйБухгалтер);
	КонецЕсли;
	
КонецПроцедуры

 

См. также

В этой теме еще нет сообщений.
Оставьте свое сообщение