644 документа
← К списку

В режиме "Конфигуратор"

страница

В режиме «Конфигуратор»

Откроем конфигуратор и добавим новый объект конфигурации Документ. Назовем его НачисленияСотрудникам. Зададим представление объекта как Начисление сотрудникам. На закладке Нумерация установим:

  • Тип номера — Число,
  • Длина номера — 5 (рис. 18.1).

Рис. 18.1. Нумерация документа

На закладке Подсистемы укажем, что документ будет отображаться в подсистеме РасчетЗарплаты.

На закладке Данные укажем, что этот документ будет иметь табличную часть Начисления, содержащую следующие реквизиты:

  • Сотрудник, тип СправочникСсылка.Сотрудники;
  • ГрафикРаботы, тип СправочникСсылка.ВидыГрафиковРаботы;
  • ДатаНачала, тип Дата;
  • ДатаОкончания, тип Дата;
  • ВидРасчета, тип ПланВидовРасчетаСсылка.ОсновныеНачисления;
  • Начислено, Число, длина 15, точность 2.

Реквизиты ДатаНачала и ДатаОкончания понадобятся нам для того, чтобы задавать период, в котором должна действовать запись расчета.

На закладке Движения запретим оперативное проведение документа.

Отметим, что документ будет создавать движения по регистру расчета Начисления, и запустим конструктор движений (рис. 18.2).

Рис. 18.2. Движения документа

В окне конструктора выберем табличную часть Начисления и нажмем Заполнить выражения.

Для реквизитов ПериодДействияКонец и БазовыйПериодКонец укажем выражение КонецДня(ТекСтрокаНачисления.ДатаОкончания).

Для поля ПериодРегистрации укажем выражение Дата.

Реквизиту ИсходныеДанные поставим в соответствие реквизит табличной части Начислено, а для ресурса Результат оставим пустое выражение, так как мы будем его потом рассчитывать (рис. 18.3).

Рис. 18.3. Движения документа «НачисленияСотрудникам» по регистру расчета

Нажмем OK и посмотрим текст обработчика, созданный конструктором (листинг 18.1).

Листинг 18.1. Текст обработчика, созданный конструктором движений

Процедура ОбработкаПроведения(Отказ, Режим)

 

//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

// Данный фрагмент построен конструктором

// При повторном использовании конструктора

// внесенные вручную изменения будут утеряны!!!

Движения.Начисления.Записывать = Истина;

 

// Регистр Начисления

Для Каждого ТекСтрокаНачисления Из Начисления Цикл

 

Движение = Движения.Начисления.Добавить();

Движение.Сторно = Ложь;

Движение.ВидРасчета = ТекСтрокаНачисления.ВидРасчета;

Движение.ПериодДействияНачало = ТекСтрокаНачисления.ДатаНачала;

Движение.ПериодДействияКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);

Движение.ПериодРегистрации = Дата;

Движение.БазовыйПериодНачало = ТекСтрокаНачисления.ДатаНачала;

Движение.БазовыйПериодКонец = КонецДня(ТекСтрокаНачисления.ДатаОкончания);

Движение.Сотрудник = ТекСтрокаНачисления.Сотрудник;

Движение.ГрафикРаботы = ТекСтрокаНачисления.ГрафикРаботы;

Движение.ИсходныеДанные = ТекСтрокаНачисления.Начислено;

 

КонецЦикла;

//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ

 

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

Прокомментируем этот код.

В целом в нем нет ничего принципиально нового по сравнению с прежними обработчиками проведения документов, создающими движения регистров.

Напомним лишь, что Начисления — имя регистра расчета, и в выражениях Движения.Начисления.Записывать() и Движения.Начисления.Добавить() мы обращаемся к методам набора записей этого регистра.

В строке Для Каждого ТекСтрокаНачисления Из Начисления Цикл мы обращаемся по имени (Начисления) к табличной части нашего документа и организуем цикл обхода этой табличной части.

В цикле мы добавляем к движениям новую запись и присваиваем ее полям значения из табличной части документа.

Для присвоения значений полям ПериодДействияКонец, БазовыйПериодКонец мы используем функцию КонецДня(). Аналогичным образом мы поступали при создании отчетов, чтобы последний день периода попал в отчет.

В заключение отредактируем командный интерфейс, чтобы в разделе Расчет зарплаты была доступна команда создания новых документов.

Для этого в дереве объектов конфигурации выделим подсистему РасчетЗарплаты, вызовем контекстное меню и выполним команду Открыть командный интерфейс.

В группе Панель действий.Создать включим видимость у команды Начисление сотрудникам: создать (рис. 18.4).

Рис. 18.4. Редактирование командного интерфейса подсистемы