Данные по контрагентам контролируемых сделок / Модуль менеджера

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

#Область ПрограммныйИнтерфейс

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

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

#КонецЕсли

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