Главная » 1С Предприятие » ПОРЯДОК ЗАПОЛНЕНИЯ ТАБЕЛЯ

0

На  предприятии  табель  это  документ, учитывающий отработанное время.  Изначально  табель  сотрудника  может  формироваться  на бумажном носителе.  Далее  данные переносятся  в  документ  1С,  которому  мы  также  дадим  имя  Табель.  В  дальнейшем, употребляя это  имя, мы  будем  иметь в виду документ  1С.

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

Алгоритм  учета рабочего времени  за месяц  (для  одного  сотрудника):

1.             Начало.

2.                Выбрать  сотрудника.

3.                Заполнить, используя календарь сотрудника, табель

4.                Внести при необходимости в табель  коррективы.

5.                Вычислить суммарное отработанное время. Результат разместить в столбце  Всего часов.

6.                Провести документ. Результатом его проведения является добавление в ЖЗ расчетов с Оклад_2, НДФЛ_2 и ВБанк_2.

Расчет  регистрируется в текущем расчетном периоде.

7.                Конец.

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

Предоставим пользователю следующие возможности по заполнению табеля:

1.      Добавление в  табель  (его  табличную  часть)  по  одному  сотруднику.  Производится при  помощи  метода  модуля  формы ОткрытьПодбор и предопределенной процедуры модуля  формы ОбработкаПодбора;  существующие записи сохраняются.

2.       Заполнение табличной  части для сотрудников  выбранного подразделения;  существующие записи  удаляются.

3.       Занесение  в табличную  часть  всех сотрудников  предприятия;  существующие  записи удаляются.

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

Также  предусмотрим  в  интерфейсе документа  удаление  одной   выбранной  записи

табличной  части или всех ее записей.

При  каждом сохранении документа будем  выполнять  его перепроведение.

Позаботимся о том, чтобы  в  документ один и  тот же сотрудник  не  попал дважды. Однако если  по  какой-либо причине данные о сотруднике  введены  дважды  в  разные табели,  то проведение любого  из этих табелей  должно  приводить  к обновлению  соответствующих ему расчетов  в ЖЗ.

Замечание.   Имеющийся  в   1С  документ  ВводОтработанногоВремени  весьма  сложен, так  как  рассчитан  на многие случаи жизни. Внушителен  и объем кода, сопровождающий   этот   документ.  Так,  модуль   формы  документа  содержит  около   600  строк  плотного кода.  Поскольку наш  алгоритм  ввода рабочего времени  и последующей про-

водки  документа гораздо   проще, то  имеет смысл   взамен  существующего   в   1С  документа создать и использовать свой, более простой и эффективный. Так и поступим.

7.6.1.   РЕКВИЗИТЫ И ДИАЛОГ  ТАБЕЛЯ

Перечисленные  требования  к  табелю  позволяют  определиться   относительно  состава диалога документа и  его реквизитов (табл. 7.9).

Реквизиты документа Табель

Таблица 7.9

Реквизиты

Описание

Тип (разновидность типа)

/Длина.Точность

кто

Способ заполнения  табличной части документа. Используется как идентификатор радиокнопок диалога формы списка документа. Если кто = 1, то подбор  выполняется по одному  сотруднику; если кто = 2, то в табличную часть документа заносятся  сотрудники выбранного подразделения, и если кто = 3, в табличную часть заносят ся сотрудники всего предприятия. Используется при открытии проведенного документа

Числовой/  1.0

текСтрока

Номер выбранной строки в списке подразделе • ний сПодр. Используется при открытии проведенного документа для верного позиционирования списка подразделений

Числовой/3.0

ДатаДок

Дата документа (реквизит задан по умолчанию)

Дата

НомерДок

Номер документа (реквизит задан по умолчанию)

Числовой /5.0

Сотрудник

Сотрудник, табель которого вводится

Справочник.

Сотрудники  2

ч1-ч31

чi, число фактически отработанных часов в день

i,i=1,2,  ..,31

Числовой/4.1

Создавая  документ,  попутно,  пользуясь услугами  конструктора  (рис.  7.39),  добавим  в  конфигурацию  журнал   Табель,  в   котором  и  будут  размещаться  формируемые пользователями  документы  учета отработанного  времени.

Рис. 7.39. Новый журнал для документа Табель

Задавая свойства документа Табель  (рис. 7.40), не забудем активизировать  флажок Расчет.

Рис. 7.40. Свойства и реквизиты документа Табель

Диалог формы табеля  оформим, следуя  рис. 7.41.

Замечания:

Рис. 7.41. Диалог формы табеля

1.      Чтобы   просмотреть  неотображенные  столбцы  табличной   части   формы,   следует воспользоваться  стрелками  горизонтальной полосы  прокрутки.

2.       Элемент диалога сПодр является  списком  значений.  Он  заполняется в  предопределенной  процедуре  ПриОткрытии,   которая,  используя   справочник  Сотрудики_2, заносит в  сПодр список подразделений предприятия.

Нажав   для   проверки   диалога   Ctrl+R,  обнаружим   некоторое   несоответствие в  расположении   граф    1-31,  а   также   дополнительную   неименованную    графу   32 (рис. 7.42).

Рис.  7.42. Расположение граф 1-32

Графа  32 введена с целью  симметричного размещения  столбцов  1-16 и  17-31, что и получилось на рис. 7.42. Для достижения такого  результата  необходимо ячейки  1-32 сделать   одной   ширины.  К  сожалению, простого  средства  выравнивания ширины столбцов табличной части в 1С нет.

кто

Проследить()

Управляет доступностью элемента диалога сПодр. Если кто = 1 (активна радиокнопка Сотрудник) или кто = 3, то элемент сПодр недоступен; если кто = 2, то доступен

сПодр

ОтобразитьСПодр()

Отображает имя выбранного в списке сПодр подразделения и запоминает значение текущей  строки списка текСтрока

Заполнить

Заполнить( )

Заполняет табличную часть для сотрудников выбранного подразделения, если кто = 2, или всего предприятия,

если кто = 3. Открывает форму подбора сотрудников, если кто = 1

Удалить

УдалитьЗап(1)

Удаляет текущую строку табличной части. Удалению предшествует запрос  о  необходимости удаления. Доступен, если в табличной части есть хотя бы одна запись

Очистить

УдалитьЗап(2)

Удаляет все строки табличной части. Удалению предшествует запрос  о необходимости удаления. Доступен, если в табличной части есть хотя бы одна запись

ФормаТ-13

Т13()

Распечатывает, если не пуста табличная часть, табель по форме Т-13, которая предоставляется 1С

Действия

глДействия(, сДейст)

Открывает документ в журнале (если он в нем есть). Переменная модуля сДейст (список значений) заполняется в процедуре ПриОткрытии формы документа значением  "Открыть  в журнале".  Процедура глДействия расположена в глобальном модуле и поставляется с 1С

Провести

#Провести

Выполняет проведение (перепроведение) документа Табель, то есть заносит в ЖЗ расчеты с ВР Оклад_2, НДФЛ_2 и ВБанк_2

ОК

#3аписать Провести Закрыть

Проводит (перепроводит) и сохраняет документ в журнале документов Табель

Закрыть

#3акрыть

Закрывает документ

Теперь у нас есть достаточно информации, чтобы перейти к созданию кода модуля формы  документа  и   самого   документа.  Напомним,  что  в   модуле  документа  можно  разместить  его  предопределенные процедуры  ОбработкаПроведения и/или Обрабо  ткаУдаленияПроведения.

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии