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