5.
e-lexa
164
23.07.12 19:15
Сейчас в теме
Спасибо, отчет полезный, скачал пользуюсь. Но есть небольшой баг если есть несколько сотрудников с одинаковой датой рождения в список попадает лишь один из них, надеюсь автор исправит. Для себя проблему решил таким образом (добавлением трех строк):
###############################
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
ДатаФормироавания=ТекущаяДата();
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ДатаФормироавания по ДатаФормироавания;
|ОбрабатыватьДокументы все;
|Сотрудники = Справочник.Сотрудники.ТекущийЭлемент;
|ДатаРождения = Справочник.Сотрудники.ДатаРождения;
|Подразделение = Справочник.Сотрудники.Подразделение;
|Физлицо = Справочник.Сотрудники.СостояниеФизлица;
|Группировка ДатаРождения;
|Группировка Сотрудники; //Добавлена Строка
|Условие(Подразделение в ВыборПодразделения);";
Если ТолькоШтатные = 0 Тогда
Иначе
ТекстЗапроса=ТекстЗапроса+"
|Условие(ПустоеЗначение(Физлицо)=0);";
КонецЕсли;
ТекстЗапроса=ТекстЗапроса+"
|Условие(ПустоеЗначение(ДатаРождения)=0);
|"//}}ЗАПРОС
;
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
ТЗ= СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("ФИО");
ТЗ.НоваяКолонка("ДатаРождения");
ТЗ.НоваяКолонка("ДеньРождения");
ТЗ.НоваяКолонка("МесяцРождения");
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл //Добавлена Строка
ТЗ.НоваяСтрока();
ТЗ.ФИО = Запрос.Сотрудники;
ТЗ.ДатаРождения = Запрос.ДатаРождения;
ТЗ.ДеньРождения = ДатаЧисло(Запрос.ДатаРождения);
ТЗ.МесяцРождения = ДатаМесяц(Запрос.ДатаРождения);
КонецЦикла; //Добавлена Строка
КонецЦикла;
ТЗ.Свернуть("ФИО","ДатаРождения,ДеньРождения,МесяцРождения");
################################
ЕСЛИ ПРИГОДИТСЯ КОМУ НЕ СОЧТИТЕ ЗА ТРУД ПОСТАВИТЬ ПЛЮС