КонецЕсли;

                       Дат = Дат + ЧислоСекундВСутках;

               КонецЕсли;

       КонецЦикла;

       Набор. Записать();

       

       Пока Дат <= ДатаОкончания Цикл

               Запись = Набор. Добавить();

               Запись. Дата = Дат;

               Запись. ГрафикРаботы = График;

               Запись. Подразделение = Подразделение;

               Если Найти(ВыходныеДни, Строка(ДеньНедели(Дат))) Тогда

                       Запись. Значение = 0;

               Иначе        

                       Запись. Значение = 8;

               КонецЕсли;

               Дат = Дат + ЧислоСекундВСутках;

       КонецЦикла;

       Набор. Записать();

КонецПроцедуры

ПВР «ОсновныеНачисления»

ПВР «ДополнительныеНачисления»

НЕ нашли? Не то? Что вы ищете?

РС «ГрафикиРаботы» (непериод, независ)

РС «НачальнаяСтавка» (секунда, независ)

РР «ОсновныеНачисления»

Измерения и реквизиты связать с графиком

РР «ДополнительныеНачисления»

Измерения и реквизиты связать с графиком


Вид расчета

Формула

Вытесн

Базовые

Ведущие

Тип

Оклад

БО*факт/норму(час)

-

-

-

Основное

Премия

Оклад*%

-

Оклад

Оклад

Дополнительное


Управляемые формы

С помощью регламентного задания необходимо по расписанию каждый день формировать задачи сотрудникам на создание отчет о проделанной работе. Задача должна порождаться для тех сотрудников, которые числятся в регистре сведений «Сведения о сотрудниках» на момент формирования задачи. По мере возникновения этих задач у пользователя должна автоматически открываться форма каждой невыполненной его задачи. Внешний вид формы изображен ниже.

На рабочем столе необходимо отобразить список невыполненных задач текущего пользователя. Кроме того, пользователь должен иметь возможность видеть полный список задач.

1) ПараметрыСеанса: ТекущийПользователь

В модуле Сеанса:

Процедура УстановкаПараметровСеанса(ТребуемыеПараметры)

       

       Исполнитель = Справочники. ФизическиеЛица. НайтиПоНаименованию(ИмяПользователя(),Истина);        

       Если НЕ ЗначениеЗаполнено(Исполнитель) Тогда

               НовыйЭлемент = Справочники. ФизическиеЛица. СоздатьЭлемент();

               НовыйЭлемент. Наименование = ИмяПользователя();

               НовыйЭлемент. Код = ИмяПользователя();

               НовыйЭлемент. Записать();

               Исполнитель = НовыйЭлемент. Ссылка;

       КонецЕсли;

               

       ПараметрыСеанса. ТекущийПользователь = Исполнитель;

       

КонецПроцедуры

2) Роль: ПолныеПрава

Добавить разрешение на все объекты

3) Добавляем пользователя

указываем роль полные права

4) РС «РегистрАдресации»

5) Создаем Задачу «ФормированиеОтчетаОПроделаннойРаботе»

РеквАдр: Исполнитель

Рекв:ПереченьРабот(строка(0), многострочный), НапоминатьОЗадаче(булево)

Создаем ФормуСписка:

Для списка меняем таблицу: «ПоИсполнителю»

Заходим в «Настройку Списка», для отбора «Выполнена» устанавливаем галку «Включать в пользовательские настройки»

6) Создаем ОбщийМодуль «ДляЗадач»: Сервер, ВызовСервера

Процедура СформороватьЗадачуСотрудникам () Экспорт

       

       Запрос = Новый Запрос;

       Запрос. Текст =

               "ВЫБРАТЬ

               |        СведенияОСотрудниках. Сотрудник

               |ИЗ

               |        РегистрСведений. СведенияОСотрудниках КАК СведенияОСотрудниках";

       

       РезультатЗапроса = Запрос. Выполнить();

       

       ВыборкаДетальныеЗаписи = РезультатЗапроса. Выбрать();

       

       Пока ВыборкаДетальныеЗаписи. Следующий() Цикл

               НЗ = Задачи. ФормированиеОтчетаОПроделаннойРаботе. СоздатьЗадачу();

               НЗ. Наименование = "Отчет о проделанной работе";

               НЗ. Дата = ТекущаяДата();

               НЗ. НапоминатьОЗадаче = Истина;

               НЗ. Исполнитель = ВыборкаДетальныеЗаписи. Сотрудник;

               НЗ. Записать();

       КонецЦикла;

КонецПроцедуры

Функция ПолучитьМассивНевыполненныхЗадач() Экспорт

       МЗ = Новый Массив;

       

       Запрос = Новый Запрос;

       Запрос. Текст =

               "ВЫБРАТЬ

               |        ФормированиеОтчетаОПроделаннойРаботеЗадачиПоИсполнителю. Ссылка

               |ИЗ

               |        Задача. ФормированиеОтчетаОПроделаннойРаботе. ЗадачиПоИсполнителю(

               |                        &Исполнитель,

               |                        НЕ Выполнена

               |                                И НапоминатьОЗадаче) КАК ФормированиеОтчетаОПроделаннойРаботеЗадачиПоИсполнителю";

       

       Запрос. УстановитьПараметр("Исполнитель", ПараметрыСеанса. ТекущийПользователь);

       

       РезультатЗапроса = Запрос. Выполнить();

       

       ВыборкаДетальныеЗаписи = РезультатЗапроса. Выбрать();

       

       Пока ВыборкаДетальныеЗаписи. Следующий() Цикл

               МЗ. Добавить(ВыборкаДетальныеЗаписи. Ссылка);

       КонецЦикла;

       

       Возврат МЗ;

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

6) Создадим РегЗадание: «ФормированиеЗадач», настраиваем

7) В модуле Управл приложения ПриНачалеРаботыСистемы создаем ОбработчикОжидания() Экспорт

       В обработчике вызываем Проц ОткрытьНевыполненныеЗадачи(), в которой получаем невЗадачи (в общем модуле), открываем формы

Процедура ПриНачалеРаботыСистемы()

       Полчаса = 10*60*30;

       ПодключитьОбработчикОжидания("ОбработчикОжидания",Полчаса);

КонецПроцедуры

Процедура ОбработчикОжидания() Экспорт

       ОткрытьНевыполненныеЗадачи()

КонецПроцедуры

Процедура ОткрытьНевыполненныеЗадачи()

       МассивЗадач = ДляЗадач. ПолучитьМассивНевыполненныхЗадач();

       

       Для Каждого ЭМ из МассивЗадач Цикл

               Задача = ЭМ. ПолучитьОбъект();

               Задача. НапоминатьОЗадаче = Ложь;

               Задача. Записать();

               Форма = ПолучитьФорму("Задача. ФормированиеОтчетаОПроделаннойРаботе. ФормаОбъекта",Новый Структура("Ключ",ЭМ));

               Форма. Открыть();

       КонецЦикла;

КонецПроцедуры

8)Выносим ФормуСписка на рабочую область начальной страницы

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10