Файл: Разработка конфигурации «Ежедневный складской учет» в среде 1С:Предприятие 8.3 (Выбор комплекса задач автоматизации).pdf
Добавлен: 28.03.2023
Просмотров: 1190
Скачиваний: 6
СОДЕРЖАНИЕ
1.1 Выбор комплекса задач автоматизации
1.2 Характеристика документооборота, возникающего при решении задачи
1.3 Обоснование проектных решений по информационному обеспечению
2.2 Характеристика разработанных экранных форм документов в среде 1С:Предприятие
2.2.2 Описание разработанных форм отчетов, необходимых для отражения результатов решения задачи
2.4 Описание созданной / откорректированной карты маршрута бизнес-процесса в среде 1С:Предприятие
2.5 Описание разработанных подсистем в среде 1С:Предприятие
2.7 Контрольный пример реализации проекта в среде 1С:Предприятие и его описание
Конфигурирование и настройка АРМ менеджера
Организации, входящие в состав предприятия
Магазины, склады и кассы торгового предприятия
Сотрудники торгового предприятия
Установка начальных сведений о предприятии
Пользователь, интерфейс, команда
Структура командного интерфейса
Формирование состава командного интерфейса
Редактирование командного интерфейса
Редактирование командного интерфейса
Автоматическое размещение и видимость команд
Поддержка основных бизнес процессов ресурсами информационной системы
Приложение А - Структура дорабатываемой информационной системы
На данной закладке можно выбрать те Виды расчета которые вытесняют данный Вид расчета, т.е. это такие Виды расчета которые не могут одновременно быть.
Например, для Вида расчета Оклад – вытесняющим Видом расчета является Больничный и Отпуск. Для Отпуска – только Больничный. Оклад не может вытеснять ни Отпуск, ни Больничный.
Закладка «Ведущие» доступна всем Видам расчета.
На данной закладке можно выбрать те Виды расчета при изменении которых нужно пересчитать данный Вид расчета.
Есть негласное правило, что Ведущими должны быть как минимум все базовые и вытесняющие Виды расчета, т.к. от их изменений – напрямую зависит текущий Вид расчета.
Следует отметить, что на закладке «Ведущие» должны быть выбраны и косвенные Виды расчета – влияющие не напрямую на данный Вид расчета, а на Вид расчета который влияет на данный Вид расчета.
Например, для Вида расчета Оклад – ведущим Видом расчета является и Больничный и Отпуск. Для Отпуска – также является и Оклад и Больничный, поскольку при изменении оклада в базовом периоде нужно пересчитать и оклад. Больничный также зависит и от Оклада и от Отпуска.
Исходя из вышесказанного можно сделать следующий вывод.
Для реализации вышеперечисленных Видов расчета нужно выполнить следующие действия:
Вначале лучше выполнить самим, а потом сравнить с приведенным решением.
1. Создать три ПВР (Рис. 3)
- Основные виды начислений
Использует период действия, Зависимость от базы: Зависит по периоду действия
Рис. 3 ПВР Основные начисления
- Дополнительные виды начислений (Рис. 4)
Зависимость от базы: Зависит по периоду действия
Рис. 4 ПВР Дополнительные начисления
После добавления Дополнительного начисления нужно не забыть установить его в качестве базы в - Основных начислениях. (Рис. 3)
- Удержания (Рис. 5)
Зависимость от базы: Зависит по периоду регистрации
Рис. 5 ПВР Удержания
2. В Основные виды начисления добавить Виды расчета
- Оклад (Рис. 6)
Базовые – нет
Вытесняющие – Отпуск и Больничный
Ведущие – Отпуск и Больничный
Рис. 6 Вид расчета Оклд, закладки - "Вытесняющие" и "Ведущие"
- Отпуск (Рис. 7)
Базовые – Оклад, Больничный, Премия процентом, Премия суммой
Вытесняющие – Больничный
Ведущие – Оклад, Больничный, Премия процентом, Премия суммой
Рис. 7 Вид расчета Отпуск, закладки - "Базовые", "Вытесняющие" и "Ведущие"
- Больничный (Рис. 8)
Базовые – Оклад, Отпуск, Премия процентом, Премия суммой
Вытесняющие – нет
Ведущие – Оклад, Отпуск, Премия процентом, Премия суммой
Рис. 8 Вид расчета Больничный, закладки - "Базовые" и "Ведущие"
3. В Дополнительные виды начисления добавить Виды расчета
- Премия процентом (Рис. 9)
Базовые – Оклад, Отпуск, Больничный, Премия суммой
Ведущие – Оклад, Отпуск, Больничный, Премия суммой
Рис. 9 Вид расчета Премия процентом, закладки - "Базовые" и "Ведущие"
- Премия суммой
Базовые – нет
Ведущие – нет
4. В Удержания добавить Вид расчета
- Алименты (Рис. 10)
Базовые – Оклад, Отпуск, Больничный, Премия процентом, Премия суммой
Ведущие – Оклад, Отпуск, Больничный, Премия процентом, Премия суммой
Рис. 10 Вид расчета Алименты, закладки - "Базовые" и "Ведущие"
Регистр расчета – это своеобразная таблица (на самом деле несколько взаимосвязанных таблиц) в которой хранятся все записи движений. Т.е. в нем хранятся все данные о начисленной ЗП (фактически заработанной) и плановые данные – сколько должно было быть начислено. Регистр расчета в отличие от других регистров (накопления и бухгалтерии) не хранит итоги. Как и в других регистрах есть Измерения, Ресурсы и Реквизиты.
Сами по себе Регистры расчета не могут существовать, они обязательно должны быть связаны с Планами видов расчета. Связь возможна Один ко многим, т.е. одному ПВР может соответствовать несколько Регистров расчета, но на практике обычно одному ПВР соответствует один Регистр расчета.
На закладке «Основные» настраивается связь Регистра расчета с ПВР и Графиком (Рис. 11). Обычно имя Регистра расчета совпадает с именем ПВР. Свойство Период действия устанавливается, если в ПВР установлено свойство – Использует период действия. При установленном свойстве Период действия обязательно нужно установить связь с Графиком (регистром сведений).
В поле Значение графика – выбирается ресурс Графика, оно нужно для определения плановых отработанных дней при определении базы. Т.е. на сколько рабочих дней нужно разделить сумму полученную в базовом периоде, для определения среднедневной ЗП – например при расчете Отпуска.
В поле Дата графика – выбирается измерение Графика, отвечающее за хранимые даты.
В поле Периодичность – выбирается Периодичность с которой будет рассчитываться ЗП, обычно Месяц.
Рис. 11 Связи Регистра расчета Основные начисления и ПВР Основные начисления
У Регистра расчета есть обязательное свойство – ПериодРегистрации, это дата которая при записи в базу всегда приводится к началу периода кратного периодичности. Если Периодичность месяц, тогда Период регистрации всегда будет – начало месяца.
На закладке «Данные» - задаются (Рис. 12):
· Измерения
- Сотрудник (справочник) – для хранения данных в разрезе сотрудников
- Подразделение (справочник) – для хранения данных в разрезе подразделений
· Ресурсы
- Результат – для хранения рассчитанной суммы
· Реквизиты
- Размер тип число – для хранения планового размера ЗП
- График (измерение РС) – именно здесь настраивается связь для каждой записи, в разрезе какого именно Графика хранить данные. В свойствах реквизита – обязательно нужно указать Связь с графиком.
График можно указать и в Измерении, но если не нужно хранить данные в разрезе каждого Графика – связь лучше настроить в реквизитах.
Рис. 12 Регистр расчета Основные начисления - структура данных
Также следует отметить такую особенность Регистра расчета – как вытеснение Видов расчетов по периоду действия, т.е. один Вид расчета автоматически вытесняется другим Видом расчета – указанным на закладке «Вытесняющие» ПВР.
Например, если в текущем месяце задан Оклад с 1 по 31 и Больничный с 10 по 15 – Больничный автоматически вытеснит Оклад с 10 по 15. Оклад разобьется на две части с 1 по 9 и с 16 по 31. Все это произойдет при записи в базу – автоматически.
Таким образом все настройки устанавливаются в ПВР, а используются в Регистрах расчета.
Добавим еще два Регистра расчета, для Дополнительных начислений и Удержаний.
План видов расчета – Дополнительные начисления и Удержания, соответственно.
Измерения и Ресурсы аналогичны Основным начислениям, в качестве реквизита – только Размер (нет периода действия, поэтому График не нужен) (Рис. 13).
Рис. 13 Регистр расчета Дополнительные начисления - структура данных
Для реализации расчета ЗП нужно создать Документ – Расчет ЗП.
Оперативное проведение нужно установить в – запретить (Рис. 15), для того чтоб можно было рассчитывать ЗП будущим числом, например предстоящую Командировку.
В качестве реквизита можно добавить одно значение – ПериодРегистрации типа Дата, может отличаться от даты документа (Рис. 14).
Добавим три ТЧ (Рис. 14):
· Основные начисления
- Сотрудник (справочник)
- Подразделение (справочник)
- Вид расчета (ПВР Основные начисления)
- График (справочник)
- ДатаНачала (Дата) – дата начала периода действия, т.е. с какой даты рассчитывать данные
- ДатаОкончания (Дата) – дата окончания периода действия, т.е. по какую дату рассчитывать данные
- БПНачало (Дата) – дата начала базового периода, т.е. с какой даты выбирать данные
- БПОкончание (Дата) – дата окончания базового периода, т.е. по какую дату выбирать данные
- Размер (число) – плановое значение
- Сторно (булево) – у каждой записи Регистра расчета есть признак сторно
· Дополнительные начисления
- Сотрудник (справочник)
- Подразделение (справочник)
- Вид расчета (ПВР Дополнительные начисления)
- БПНачало (Дата) – дата начала базового периода, т.е. с какой даты выбирать данные
- БПОкончание (Дата) – дата окончания базового периода, т.е. по какую дату выбирать данные
- Размер (число) – плановое значение
- Сторно (булево) – у каждой записи Регистра расчета есть признак сторно
· Удержания.
- Сотрудник (справочник)
- Подразделение (справочник)
- Вид расчета (ПВР Удержания)
- БПНачало (Дата) – дата начала базового периода, т.е. с какой даты выбирать данные
- БПОкончание (Дата) – дата окончания базового периода, т.е. по какую дату выбирать данные
- Размер (число) – плановое значение
- Сторно (булево) – у каждой записи Регистра расчета есть признак сторно
Рис. 14 Документ Расчет ЗП - структура данных
На закладке «Движения» выберем регистры – Основные начисления, Дополнительные начисления и Удержания (Рис 15).
Рис. 15 Документ Расчет ЗП - установка запрета опертивного проведния и выбор подчиненных Регистров расчета
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
// регистр ОсновныеНачисления
Движения.ОсновныеНачисления.Записывать = Истина;
Для Каждого ТекСтрокаОсновныеНачисления Из ОсновныеНачисления Цикл
Движение = Движения.ОсновныеНачисления.Добавить();
Движение.Сторно = Ложь;
Движение.ВидРасчета = ТекСтрокаОсновныеНачисления.ВидРасчета;
Движение.ПериодДействияНачало = ТекСтрокаОсновныеНачисления.ДатаНачала;
Движение.ПериодДействияКонец = ТекСтрокаОсновныеНачисления.ДатаОкончания;
Движение.ПериодРегистрации = ПериодРегистрации;
Движение.БазовыйПериодНачало = ТекСтрокаОсновныеНачисления.БПНачало;
Движение.БазовыйПериодКонец = ТекСтрокаОсновныеНачисления.ДатаОкончания;
Движение.Сотрудник = ТекСтрокаОсновныеНачисления.Сотрудник;
Движение.Подразделение = ТекСтрокаОсновныеНачисления.Подразделение;
Движение.Размер = ТекСтрокаОсновныеНачисления.Размер;
Движение.График = ТекСтрокаОсновныеНачисления.График;
КонецЦикла;
// регистр ДополнительныеНачисления
Движения.ДополнительныеНачисления.Записывать = Истина;
Для Каждого ТекСтрокаДополнительныеНачисления Из ДополнительныеНачисления Цикл
Движение = Движения.ДополнительныеНачисления.Добавить();
Движение.Сторно = Ложь;
Движение.ВидРасчета = ТекСтрокаДополнительныеНачисления.ВидРасчета;
Движение.ПериодРегистрации = ПериодРегистрации;
Движение.БазовыйПериодНачало = ТекСтрокаДополнительныеНачисления.БПНачало;
Движение.БазовыйПериодКонец = ТекСтрокаДополнительныеНачисления.БПОкончание;
Движение.Сотрудник = ТекСтрокаДополнительныеНачисления.Сотрудник;
Движение.Подразделение = ТекСтрокаДополнительныеНачисления.Подразделение;
Движение.Размер = ТекСтрокаДополнительныеНачисления.Размер;
КонецЦикла;
// регистр Удержания
Движения.Удержания.Записывать = Истина;
Для Каждого ТекСтрокаУдержания Из Удержания Цикл
Движение = Движения.Удержания.Добавить();
Движение.Сторно = Ложь;
Движение.ВидРасчета = ТекСтрокаУдержания.ВидРасчета;
Движение.ПериодРегистрации = ПериодРегистрации;
Движение.БазовыйПериодНачало = ТекСтрокаУдержания.БПНачало;
Движение.БазовыйПериодКонец = ТекСтрокаУдержания.БПОкончание;
Движение.Сотрудник = ТекСтрокаУдержания.Сотрудник;
Движение.Подразделение = ТекСтрокаУдержания.Подразделение;
Движение.Размер = ТекСтрокаУдержания.Размер;
КонецЦикла;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
Движения.Записать();
КонецПроцедуры
В конце процедуры явно запишем все движения – это нужно для определения плановых значений и фактического периода действия. Именно при записи происходит вытеснение одних Видов расчета другими. Также при записи движений в регистр записываются плановые значения – Размер.
При первой записи движений – формируются рабочие записи в Регистре движений в которых и хранятся плановые значения и Фактический период действия.
Дальше происходит обращение к рабочим записям регистра и рассчитывается непосредственно – результат ЗП.
2.4 Описание созданной / откорректированной карты маршрута бизнес-процесса в среде 1С:Предприятие
Добавим в бизнес-процесс макет, типа Графическая карта.
В нем рисуем схематический процесс так, как он должен быть виден менеджеру.
Создавая карту для конкретного пользователя оставим список только те связи и задачи, про которые данный пользователь должен знать. В итоге из спрута на рисунке 1
мы получаем простенькую схемку рисунка 2,
с которой под силу справиться даже самому отъявленному продажнику
.
Ключевое условие - имена элементов задач и вложенных бизнес-процессов на двух картах должны совпадать.
Заголовки элементов можете оставить такими же как на основном процессе или изменить. После этого вставляем следующий блок:
Функция СформироватьКартуМаршрута(БизнесПроцесс, ИмяМакетаКарты)
Макет=БизнесПроцессы[БизнесПроцесс.Метаданные().Имя].ПолучитьМакет(ИмяМакетаКарты);
СписокТекущихТочекМаршрута=ПолучитьСписокТекущихТочекМаршрута(БизнесПроцесс);
Для Каждого Точка Из СписокТекущихТочекМаршрута Цикл
Попытка
Макет.ЭлементыГрафическойСхемы[Точка.Имя].ЦветРамки=WebЦвета.Черный;
Макет.ЭлементыГрафическойСхемы[Точка.Имя].Рамка=Новый Линия(ТипСоединительнойЛинии.Пунктир, 2);
Исключение
КонецПопытки;
КонецЦикла;
Возврат Макет;
КонецФункции
Функция ПолучитьСписокТекущихТочекМаршрута(БизнесПроцесс)
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЗадачиОбработки.ТочкаМаршрута
|ИЗ
| Задача.ЗадачиОбработки КАК ЗадачиОбработки
|ГДЕ
| (НЕ ЗадачиОбработки.Выполнена)
| И ЗадачиОбработки.БизнесПроцесс = &БизнесПроцесс
|
|СГРУППИРОВАТЬ ПО
| ЗадачиОбработки.ТочкаМаршрута";
Запрос.УстановитьПараметр("БизнесПроцесс", БизнесПроцесс);
Возврат Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("ТочкаМаршрута");
КонецФункции