Добавление документа о начислениях
Добавление документа о начислениях Для того чтобы иметь возможность регистрировать в базе данных начисления, производимые сотрудникам ООО «На все руки мастер», нам понадобится специальный документ. В режиме «Конфигуратор» Откроем конфигуратор и добавим новый объект конфигурации Документ. Назовем его НачисленияСотрудникам. Зададим представ- ление объекта как Начисление сотрудникам. На закладке Нумерация установим: Тип номера – Число, Длина номера – 5 (рис. 18. 1). На закладке Подсистемы укажем, что документ будет отображаться в подсистеме РасчетЗарплаты. На закладке Данные укажем, что этот документ будет иметь табличную часть Начисления, содержащую следующие реквизиты: Сотрудник, тип СправочникСсылка. Сотрудники; ГрафикРаботы, тип СправочникСсылка. ВидыГрафиковРаботы; ДатаНачала, тип Дата; ДатаОкончания, тип Дата; ВидРасчета, тип ПланВидовРасчетаСсылка. ОсновныеНачисления; Начислено, Число, длина 15, точность 2.
Рис. 18. 1. Нумерация документа
Реквизиты ДатаНачала и ДатаОкончания понадобятся нам для того, чтобы задавать период, в котором должна действовать запись расчета. На закладке Движения запретим оперативное проведение документа. Отметим, что документ будет создавать движения по регистру расчета Начисления, и запустим конструктор движений (рис. 18. 2). В окне конструктора выберем табличную часть Начисления и нажмем Заполнить выражения. Для реквизитов ПериодДействияКонец и БазовыйПериодКонец укажем выражение КонецДня(ТекСтрокаНачисления. ДатаОкончания). Для поля ПериодРегистрации укажем выражение Дата.
Реквизиту ИсходныеДанные поставим в соответствие реквизит табличной части Начислено, а для ресурса Результат оставим пустое выражение, так как мы будем его потом рассчитывать (рис. 18. 3).
Рис. 18. 3. Движения документа «НачисленияСотрудникам» по регистру расчета
Нажмем OK и посмотрим текст обработчика, созданный конструк- тором (листинг 18. 1). листинг 18. 1. Текст обработчика, созданный конструктором движений Занятие 18
Движения. Начисления. Записывать = Истина; // Регистр Начисления Для Каждого ТекСтрокаНачисления Из Начисления Цикл Движение = Движения. Начисления. Добавить(); Движение. Сторно = Ложь; Движение. ВидРасчета = ТекСтрокаНачисления. ВидРасчета; Движение. ПериодДействияНачало = ТекСтрокаНачисления. ДатаНачала; Движение. ПериодДействияКонец = КонецДня(ТекСтрокаНачисления. ДатаОкончания); Движение. ПериодРегистрации = Дата; Движение. БазовыйПериодНачало = ТекСтрокаНачисления. ДатаНачала; Движение. БазовыйПериодКонец = КонецДня(ТекСтрокаНачисления. ДатаОкончания); Движение. Сотрудник = ТекСтрокаНачисления. Сотрудник; Движение. ГрафикРаботы = ТекСтрокаНачисления. ГрафикРаботы; Движение. ИсходныеДанные = ТекСтрокаНачисления. Начислено; КонецЦикла; //}} КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ КонецПроцедуры Прокомментируем этот код. В целом в нем нет ничего принципиально нового по сравнению с прежними обработчиками проведения документов, создающими движения регистров. Напомним лишь, что Начисления – имя регистра расчета, и в выра- жениях Движения. Начисления. Записывать() и Движения. Начисле- ния. Добавить() мы обращаемся к методам набора записей этого регистра. В строке Для Каждого ТекСтрокаНачисления Из Начисления Цикл мы обращаемся по имени (Начисления) к табличной части нашего документа и организуем цикл обхода этой табличной части. В цикле мы добавляем к движениям новую запись и присваиваем ее полям значения из табличной части документа.
Для присвоения значений полям ПериодДействияКонец, БазовыйПе- риодКонец мы используем функцию КонецДня(). Аналогичным образом мы поступали при создании отчетов, чтобы последний день периода попал в отчет. В заключение отредактируем командный интерфейс, чтобы в разделе Расчет зарплаты была доступна команда создания новых документов. Для этого в дереве объектов конфигурации выделим подсистему РасчетЗарплаты, вызовем контекстное меню и выполним команду Открыть командный интерфейс. В группе Панель действий. Создать включим видимость у команды Начисление сотрудникам: создать (рис. 18. 4).
Рис. 18. 4. Редактирование командного интерфейса подсистемы
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|