// @strict-types
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	Объект.ДатаНачала = НачалоМесяца(ТекущаяДатаСеанса());
	Объект.ДатаОкончания = КонецМесяца(ТекущаяДатаСеанса());
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ЗаполнитьОсновныхМенеджеров(Команда)
	ЗаполнитьОсновныхМенеджеровНаСервере();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ЗаполнитьОсновныхМенеджеровНаСервере()
	ВыборкаДетальныеЗаписи = ПартнерыИИхМенеджеры();
	ПартнерИзПрошлойСтроки = Справочники.Партнеры.ПустаяСсылка();
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Если ВыборкаДетальныеЗаписи.Партнер <> ПартнерИзПрошлойСтроки Тогда
			ПартнерДляЗаполненияОсновногоМенеджера = ВыборкаДетальныеЗаписи.Партнер.ПолучитьОбъект();
			ПартнерДляЗаполненияОсновногоМенеджера.ОсновнойМенеджер = ВыборкаДетальныеЗаписи.Менеджер;
			ПартнерДляЗаполненияОсновногоМенеджера.Записать();
			ПартнерИзПрошлойСтроки = ВыборкаДетальныеЗаписи.Партнер;
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = СтрШаблон("Клиенту ""%1"" установлен основной менеджер - %2",ВыборкаДетальныеЗаписи.Партнер, ВыборкаДетальныеЗаписи.Менеджер);
			Сообщение.Сообщить();
		КонецЕсли;
	КонецЦикла;
КонецПроцедуры
// Получаем партнеров и их менеджеров.
// 
// Возвращаемое значение:
//  ВыборкаИзРезультатаЗапроса:
// * Менеджер - СправочникСсылка.Пользователи
// * Партнер - СправочникСсылка.Партнеры
// * Дата - Дата
&НаСервере
Функция ПартнерыИИхМенеджеры()
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1000
	|	РеализацияТоваровУслуг.Менеджер КАК Менеджер,
	|	РеализацияТоваровУслуг.Партнер КАК Партнер,
	|	РеализацияТоваровУслуг.Дата КАК Дата
	|ИЗ
	|	Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
	|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
	|		ПО РеализацияТоваровУслуг.Партнер = Партнеры.Ссылка
	|ГДЕ
	|	Партнеры.ОсновнойМенеджер = ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
	|	И РеализацияТоваровУслуг.Дата < &ДатаОкончания
	|	И РеализацияТоваровУслуг.Дата > &ДатаНачала
	|
	|УПОРЯДОЧИТЬ ПО
	|	Партнер,
	|	Дата УБЫВ";
	Запрос.УстановитьПараметр("ДатаНачала", Объект.ДатаНачала);
	Запрос.УстановитьПараметр("ДатаОкончания", Объект.ДатаОкончания);
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	Возврат ВыборкаДетальныеЗаписи
КонецФункции
#КонецОбласти