Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

«Разработка приложения для управления салоном красоты на платформе 1С»

Содержание

Введение 4

1. Обзор рынка систем управления салонами красоты 6

2. Разработка технического задания на разработку 9

2.1. Описание бизнеса салона красоты 9

2.2. Функции системы управления салоном 11

2.3. Пользователи системы и их основные функции 12

2.4. Обеспечение безопасности и бесперебойности работы 12

2.5. Требования к информационным структурам и методам решения 12

2.6. Требования к сопровождению и развитию системы 12

2.7. Описание бизнес-процессов 13

2.8. Структура данных 17

3. Разработка решения 20

3.1. Интерфейс конфигурации 20

3.2. Разработка структуры конфигурации 21

3.4. Подсистемы конфигурации 25

3.5. Подсистема Оказание услуг 25

3.6. Подсистема Бухгалтерия 26

3.8. Подсистема Администрирование 27

3.10. Подсистема Справочная информация 28

4. Описание работы системы 29

4.1. Вход в систему 29

4.2. Запись 30

4.3. Учет товаров 32

4.4. Учет работы сотрудников 32

4.5. Расчет зарплаты 34

4.7. Отчетность 37

5. Заключение 39

6. Список литературы 41

7. Приложение № 1 42

Введение

Под салоном красоты обычно понимают заведение, которое предоставляет услуги по косметическому обслуживанию посетителей. Также к данной категории относятся являющиеся гораздо более многочисленные парикмахерские и салоны spa.

Сегодня в 90 крупнейших городах России в настоящее время работает около 72,5 тысяч парикмахерских и студий загара [1]. Такое количество салонов неизбежно влечет за собой острую конкуренцию между ними.

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

Целью данной курсовой работы является формирование у автора общепрофессиональных компетенций и способностей к исследовательской работе, позволяющих:

  • осуществлять поиск и использование информации (в том числе справочной, нормативной и правовой), сбор данных с применением современных информационных технологий, необходимых для решения профессиональных задач;
  • выбирать инструментальные средства для обработки данных в соответствии с поставленной задачей, применяя современные программные продукты;
  • анализировать результаты расчетов, используя современные методы интерпретации данных, обосновывать полученные выводы.

В ходе выполнения работы будут выполнены следующие задачи:

  • систематизированы и конкретизированы теоретические знания по соответствующим циклам дисциплин;
  • приобретены навыки ведения самостоятельной исследовательской работы, включая поиск и анализ необходимой информации;
  • сформировано системное мышление через определение целей и постановку задач работы и навыки ведения научно-исследовательской работы;
  • исследованы актуальные вопросы отраслей;
  • развиты логическое мышление и умение аргументировано излагать мысли при анализе теоретических проблем и практических примеров, умение формулировать выводы и предложения.

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

В практической части работы будет описан процесс разработки и реализации версии типовой конфигурации системы управления салоном красоты с учетом полученных в теоретической части знаний и ограничений учебной версии платформы «1С:Предприятие 8».

В заключительной части будут размещены снимки экранов интерфейса тестовой версии, демонстрирующие работу системы.

Результатом работы будет рабочая версия решения для автоматизации ключевых бизнес-процессов салона красоты.

Обзор рынка систем управления салонами красоты

Основная функция всех систем управления салонами красоты и других служб оказания услуг в офисах (медицинские центры, массажные салоны и др.) – организация учета клиентов и запись их к мастерам.

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

Этот метод имеет свои преимущества:

  • Не требует дорогостоящего громоздкого компьютерного оборудования;
  • Прост в освоении и требует минимальных знаний и навыков;

Но он также имеет недостатки:

  • Сложно получать аналитическую информацию о клиентах и работе мастеров;
  • Сложно экспортировать данные;
  • Трудно обеспечить сохранность данных.

В связи с этими соображениями было принято решение о переходе на более сложную систему с использованием базы данных.

Существует около полутора десятка таких программ, предназначенных для управления предприятием индустрии красоты. Самые распространенные среди них – это «1С: Комильфо», «Юниверс-софт», «Арника», «1С: Салон красоты» «SycretSaloon», «BeautyPro» [2]. Все они схожи по функционалу и делятся на локальные (те, что устанавливаются на компьютер, то есть коробочные сервисы) и онлайн-сервисы (те, что работают непосредственно в интернете, без установки на компьютер).

Наряду с программами по учету и автоматизации работы для салонов красоты существуют так называемые сервисы по онлайн-бронированию услуг: sonline, мой кабинет, expanet, gbooking, забронируй.com, план-тайм [3]. Основной проблемой распространения таких сервисов является необходимость интеграции с локальными программными системами, установленными в салонах красоты.

Готовые системы и сервисы обладают рядом преимуществ:

  • В них реализованы практически все типовые бизнес-процессы и учтена отраслевая специфика;
  • Большинство систем могут масштабироваться практически неограниченно;
  • В системах реализованы все необходимые механизмы обеспечения надежности и сохранности данных.

Недостатками готовых систем являются:

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

На основании изложенного, а также в связи с небольшим функциональным наполнением было принято решение о разработке собственного решения.

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

Были рассмотрены две платформы:

Microsoft Access . Данная платформа входит в состав офисного пакета программ компании, используемого в настоящее время. Платформа состоит из базы данных и системы управления базой данных [4].

Достоинства платформы:

  • Возможность реализовать запрошенный функционал;
  • Низкая стоимость;
  • Широкое распространение;
  • Невысоки требования к оборудованию.

Платформа обладает и серьезными ограничениями для поставленной задачи:

  • Платформа не обладает предопределенными функциями, в связи с этим необходимо выполнять разработку функционала с «нуля», что потребует времени на разработку и тестирование, как следствие – стоимость работ программиста;
  • Новый пользовательский интерфейс потребует времени на освоение персоналом;
  • Могут возникнуть сложности с сопровождением и развитием системы из-за эксклюзивности конфигурации.

Широко распространенной альтернативой офисной платформе Microsoft Access для целей управления салоном красоты является система программ «1С:Предприятие 8».

Система программ «1С:Предприятие 8» включает в себя платформу и прикладные решения, разработанные на ее основе, для автоматизации деятельности организаций и частных лиц. Сама платформа не является программным продуктом для использования конечными пользователями, которые обычно работают с одним из многих прикладных решений (конфигураций), разработанных на данной платформе. Такой подход позволяет автоматизировать различные виды деятельности, используя единую технологическую платформу [5].

На основании изложенного платформа «1С:Предприятие 8» для курсового проектирования была выбрана по следующим причинам:

  • Широкое распространение;
  • Возможность использовать предопределенные разработчиком функции;
  • Удобный интуитивно понятный интерфейс;
  • Приемлемая стоимость;
  • Возможность развития решения.

Разработка технического задания на разработку

Описание бизнеса салона красоты

Салон красоты, как правило, расположен в центре «спального» района города.

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

Коммерческие показатели салона приведены в Таблице 1

Таблица 1.

Показатель

Измерение

Годовой оборот

10 000 000 руб.

Число посещений в год

14600

Число мастеров

7

Структура салона представлена на Рис. 1.

Изображение выглядит как визитка

Описание создано автоматически

Рис. 1 Организационная структура салона красоты

Администратор выполняет следующие функции:

  1. Ведет запись клиентов на услуги;
  2. Ведет учет персональных данных клиентов;
  3. Организует работу мастеров согласно записи.

Мастера выполняют основную работу – обслуживают клиентов.

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

Уборщица поддерживает чистоту в помещении салона.

Для обслуживания новой информационной системы предполагается наем внештатного системного администратора.

Юридически салоны красоты, управляемые индивидуальными предпринимателями без образования юридического лица могут не применять контрольно-кассовую технику и не вести полноценный бухгалтерский документооборот [6].

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

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

Салон красоты оказывает следующие виды услуг:

  1. Мужские стрижки различных моделей;
  2. Женские стрижки различных моделей;
  3. Детские стрижки;
  4. Окрашивание волос;
  5. Мытье головы;
  6. Укладка волос;
  7. Маникюр;
  8. Педикюр;
  9. СПА-процедуры.

В салоне есть несколько комнат, которые условно называются залы:

  1. Мужской зал;
  2. Женский зал;
  3. СПА-зал, там же оказывают услуги маникюра и педикюра.

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

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

Функции системы управления салоном

Система должна выполнять следующие функции:

Основные функции:

  1. Работа с клиентами:
    1. Ведение базы клиентов;
    2. Предварительная запись к мастерам;
  2. Работа с персоналом:
    1. Планирование графика работы мастеров;
    2. Отражение фактически отработанного времени работы мастеров;
    3. Расчет зарплаты;
    4. Отчеты по сотрудникам;
  3. Аналитика по работе салона
  4. Учет продажи услуг и продажи товаров
  5. Разграничение прав доступа
  6. Возможность расширения до сетевой версии

Пользователи системы и их основные функции

  1. Системный администратор: настойки системы, редактирование данных;
  2. Администратор салона: ведение учета клиентов и оказания услуг;
  3. Бухгалтер: ведение кадрового учета, учета работы сотрудников, ценообразование;
  4. Директор: просмотр результатов работы и предварительного планирования обслуживания клиентов.

Обеспечение безопасности и бесперебойности работы

Система должна работать на персональном компьютере, доступ к которому должен быть защищен паролем.

Доступ к функциям системы должен быть разграничен в соответствии с ролью пользователя. При входе в систему должна выполняться идентификация и аутентификация пользователя по логину и паролю, определяемым системным администратором системы.

Требования к информационным структурам и методам решения

Программное обеспечение представляет из себя самостоятельное исполняемое приложение. Пользователи работают с системой через пользовательский интерфейс.

Требования к языкам программирования не предъявляются.

Требования к сопровождению и развитию системы

Система должна быть реализована на широко распространенной платформе, имеющей развитую конкурентную поддержку на территории заказчиков.

Описание бизнес-процессов

Бизнес-процессы, подлежащие автоматизации представлены на Рис. 2

Рис. 2 Бизнес-процессы системы в нотации IDEF0.

Система данной курсовой работы охватывает три ключевых области бизнеса салона:

  1. Обслуживание клиентов
  2. Расчет заработной платы
  3. Администрирование системы

Пользователями системы являются Администратор, Бухгалтер и Системный администратор. Также к системе имеет доступ Директор в качестве наблюдателя, он на схеме не показан.

В качестве управляющих воздействий выступают:

  1. Календарь, которым определяются графики работы мастеров и время записи клиентов;
  2. Процент премии, который устанавливается приказом директора и вводится в систему;
  3. Инструкции по настройке системы и другие регламентирующие документы.

На выходе системы управления получаются:

  1. Персональные данные клиентов для маркетинговой обработки;
  2. Обслуженные клиенты;
  3. Данные по заработной плате сотрудников;
  4. Измененные по запросам пользователей данные системы.

На Рис. 3 приведена схема бизнес-процесса записи клиента, а на Рис. 4 процесс закрытия и фиксации факта обслуживания в нотации IDEF3.

Рис. 3 Процесс создания записи

Рис. 4 Процесс обслуживания клиента

Детальное регламентация бизнес-процесса обслуживания клиента с точки зрения функции системы управления приводится на Рис. 3 в нотации UML диаграммы последовательности.

Изображение выглядит как карта, текст

Описание создано автоматически

Рис. 5. Диаграмма последовательности записи

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

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

Структура данных

В своем бизнесе салон использует следующие данные:

Данные клиентов:

  1. Номер;
  2. ФИО полностью или частично;
  3. Контактный телефон;
  4. E-mail;
  5. Пол.

Данные сотрудников:

  1. Номер;
  2. ФИО полностью;
  3. ФИО кратко;
  4. Дата рождения;
  5. Паспортные данные;
  6. Контактные и адресные данные;
  7. Информация о детях;
  8. Трудовая деятельность.

Записи:

  1. Номер;
  2. Дата;
  3. Время начала;
  4. Время окончания;
  5. Перечень услуг и товаров;
  6. Мастер;
  7. Салон;
  8. Зал.

Номенклатура:

  1. Номер;
  2. Наименование;
  3. Признак группы;
  4. Вид номенклатуры.

Салоны:

  1. Номер;
  2. Название.

Залы:

  1. Номер;
  2. Название.

Виды графиков работы:

  1. Графики мастеров;
  2. Графики администрации.

Условно-постоянные данные, настраиваемые системным администратором:

  1. Время начала работы в сутках;
  2. Время окончания работы;
  3. Процент премии.

Для использования этих данных в конфигурации потребуются следующие справочники:

  1. Клиенты;
  2. Сотрудники;
  3. Номенклатура;
  4. Салоны;
  5. Залы;
  6. Виды графиков работы

И константы:

  1. НачалоДня;
  2. ДоКонцаДня;
  3. Приемия.

Рис. 6. Константы и справочники

Разработка решения

Интерфейс конфигурации

Конфигурация использует штатный интерфейс «Такси».

Интерфейс такси 1С — это новое слово в развитии технологической платформы 1С: Предприятие 8.3. Новое лицо программы адаптировано под стандарты веб-приложений. Разработчики произвели большое количество юзабилити тестов и серьезно переработали механизмы взаимодействия с пользователями. Программа теперь напоминает качественно сделанный веб-сайт с дружелюбным интерфейсом [5].

Начальная страница приложения показана на Рис. 7.

Рис. 7. Интерфейс "Такси"

Разработка структуры конфигурации

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

Рис. 8. Пример двух справочников

Справочник Сотрудники содержит также встроенную табличную часть.

Были созданы справочники:

  • Клиенты
  • Сотрудники
  • Номенклатура (иерархический)
  • Салоны
  • Залы
  • ВидыГрафиковРаботы

Для организации записи был создан документ Запись (Рис. 9).

Рис. 9 Документ Запись

Для фиксации факта обслуживания клиентов данные из документов Запись регистрируются в регистре Продажи Рис. 10.

Рис. 10. Регистр Продажи

Проведение документа Запись по регистру накопления Продажи выполняется программным модулем документа Запись, разработанным с помощью конструктора движения регистров, листинг модуля объекта Запись приводится в Приложении 1.

Для оформления записи в интерфейсе пользователя разработана общая форма Планировщик с размещенным на ней объектом Планировщик [7]

Рис. 11. Форма с Планировщиком

Эта форма размещается на главной форме конфигурации

Рис. 12. Главная форма

Листинг программы модуля формы Планировщика приведен в Приложении 1. Процедуры модуля выполняют следующие функции:

  • Заполнение планировщика на сервере;
  • Открытие формы Записи по клику на поля Планировщика;
  • Обновление данных

Для управления ценами на Номенклатуру создан Регистр сведений Цены. Благодаря такой организации хранения цен система контролирует изменения цен во времени и правильно отражает итоговые суммы с учетом возможных изменений в периоде.

Для целей организации процессов начисления зарплат, премий и учета работы сотрудников созданы следующие объекты конфигурации:

Общий модуль ПроведениеРасчетов;

Константа Премия;

Справочники Сотрудники и ВидыГрафиковРаботы;

Документы НачисленияСотрудникам;

Отчеты Перерасчет, НачисленияСотрудникам, ДиаграммаНачислений, ВыручкаМастеров;

Планы видов Расчета ОсновныеНачисления;

Регистр сведений ГрафикиРаботы;

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

Разработка этих объектов детально описана в литературе [8] и в данной работе не приводится.

Подсистемы конфигурации

Конфигурация составлена из подсистем, собранных из общих по бизнесу функций:

  1. Оказание услуг;
  2. Бухгалтерия;
  3. Администрирование;
  4. Справочная информация.

Доступ к отдельным подсистемам и их составным частям ограничен в соответствии с ролями пользователей [8].

Подсистема Оказание услуг

В этой подсистеме собраны функции создания и редактирования предварительных записей, ввода и редактирования клиентов. Также реализуется вывод актуального прайс-листа салона. Интерфейс показан на Рис. 13.

Рис. 13. Подсистема Оказание услуг

Подсистема Бухгалтерия

В этой подсистеме собраны основные функции бухгалтерии:

  • Учет персональных данных сотрудников;
  • Учет работы сотрудников;
  • Расчет зарплаты;
  • Отчеты в различных разрезах.

Функции подсистемы представлены на Рис. 14.

Рис. 14. Подсистема Бухгалтерия

Подсистема Администрирование

Эта подсистема предназначена для системного администрирования конфигурации, а именно:

  • Задание бизнес-конфигурации (залы, константы формы предварительной записи);
  • Редактирование документов.

Рис. 15. Подсистема Администрирование

Подсистема Справочная информация

В этой подсистеме собраны функции просмотра и редактирования, с учетом прав доступа, нормативно-справочной информации системы.

Рис. 16 Подсистема Справочная информация

Описание работы системы

Вход в систему

При запуске система запрашивает логин и пароль пользователя.

Рис. 17. Окно входа в систему

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

Рис. 18. Начальная страница пользователя Администратор

Запись

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

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

Шкала времени задается с интервалом в час, начало и конец рабочего дня задается редактированием констант в подсистеме Администрирование. При необходимости другое время записи можно задать при оформлении записи с точностью до минуты.

Актуальное время показано на планировщике красной линией. Записи после нее отображаются белым цветом, до – голубым.

Код программного модуля приводится в Приложении №1.

При нажатии мышки на выбранной ячейке открывается форма записи:

Рис. 19. Форма предварительной записи

Для предварительной записи необходимо:

  1. заполнить соответствующие поля Зал (если используется),
  2. внести клиента из списка или создать нового, обязательное поле;
  3. Выбрать мастера, обязательное поле;
  4. Уточнить время, по умолчанию выставляется время из ячейки Планировщика;
  5. Добавить услуги или товары по кнопке «Добавить», если возможно определить их состав;
  6. Нажать Записать и Закрыть.

Рис. 20. Пример предварительной записи

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

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

Вычисление итоговой суммы записи производится на основе выбранных товаров или услуг. Программный модуль формы приводится в приложении №1.

Порядок действий Администратора при записи:

  1. Открывает необходимую запись на поле Планировщика двойным кликом,
  2. Вносит или корректирует данные записи,
  3. Ставит галочку «Завершено»,
  4. Нажимает Провести и закрыть.

Если все поля заполнены, стоит галочка «Завершено» и дата оказания услуги уже наступила, документ проводится по учету, в противном случае пользователь получит сообщения о допущенных ошибках.

Учет товаров

В системе возможен учет как оказанных услуг, так и продажи сопутствующих товаров. Номенклатура реализована с помощью иерархического справочника Номенклатура, а цены в регистре сведений Цены. Таким образом, реализован учет изменений цен в отчетном периоде. Характер номенклатуры задается свойством Товар или Услуга и далее используется в отчетности.

Актуальный прайс-лист выводится в виде отчета.

Учет работы сотрудников

Сотрудники и учет их работы выполняется в подсистеме Бухгалтерия.

Персональные данные находятся по ссылке Сотрудники

Рис. 21. Перечень сотрудников

Рис. 22. Форма сотрудника

Поле «Расписание» предназначено для показа сотрудника в расписании. «ФИО кратко» используется в качестве псевдонима в расписании, так как не всегда паспортные фамилии и имена иностранных мастеров понятны клиентам, либо мастер не хочет выступать под своим именем.

В закладке Стаж хранится информация о предыдущей деятельности сотрудника и перемещениях внутри организации.

Расчет зарплаты

Для начисления зарплат сотрудникам используются функции плана видов расчетов и регистр расчёта.

справочник ВидыГрафиковРаботы:

Рис. 23. Окно справочника Виды графиков работы

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

регистр сведений ГрафикиРаботы:

В этом регистре бухгалтер вводит данные по каждому рабочему дню. Если день рабочий, устанавливается значение 1, иначе – 0. В дальнейшем эти значения используются при расчете.

Начисления сотрудникам:

Рис. 24. Начисление сотрудникам

Этим документов бухгалтер выполняет начисления заработной платы.

При начислении премии берется значение премии из формы констант в подсистеме Администрирование.

Отчет по начислениям сотрудникам

Рис. 25. Отчет по начислениям

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

Также реализован отчет в виде диаграммы Гаанта:

Рис. 26. Диаграмма Ганта

Отчетность

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

Отчет Выручка Мастеров за периоды:

Рис. 27 Выручка мастеров

Отчеты выручка по услугам и аналогичный Выручка по товарам

Рис. 28. Отчет выручка по услугам

Прайс-лист выводится на актуальную дату (сегодня)

Рис. 29. Прайс-лист

Данные по клиентам. Данный отчет позволяет сохранить данные в формате csv или xml для дальнейшей передачи маркетинговым агентствам (в учебной версии платформы сохранение отчетов недоступно).

Рис. 30. Данные клиентов

Заключение

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

В ходе выполнения курсовой работы были изучены основные принципы организации работы салонов красоты. На основе анализа отраслевой литературы и рекламных буклетов аналогичных решений были выявлены основные бизнес-процессы, использующиеся во всех салонах: организация предварительной записи клиентов, расчет заработной платы и системное администрирование. В работе приведены бизнес-модели в нотациях IDEF0, IDEF3 и UML, позволяющие наглядно отразить особенности этих процессов в салоне.

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

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

В третьей части курсовой работы автор описал процесс разработки решения в среде учебной версии платформы «1С:Предприятие 8.3». Ключевым элементом решения стало использование объекта «Планировщик» платформы для организации интерфейса Администратора салона. Этот объект был разработан компанией специально для организации учета записей на календарном поле. Автором были разработаны процедуры программных модулей для формирования полей интерфейса согласно техническому заданию и собственная форма Запись для редактирования данных. Программные модули также были разработаны для других объектов конфигурации в соответствии с их назначением и заложенной бизнес-логикой. При разработке автор использовал штатные построители платформы, примеры из литературы и собственные алгоритмы. Листинги программных модулей объектов приведены в Приложении 1.

Все разработанные объекты конфигурации скомпонованы в подсистемы в соответствии с их функциональным назначением и распределены права доступа в соответствии с ролями пользователей системы. Конкретные пользователи могут иметь доступ и пользоваться только теми объектами, которые определены в политике доступа данной роли.

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

Результатом курсовой работы стала рабочая версия программы управления салоном красоты на платформе «1С:Предприятие 8.3», а автор приобрел навыки:

  • поиска и использования информации, сбора данных с применением современных информационных технологий, необходимых для решения профессиональных задач;
  • выбора инструментальных средств для обработки данных в соответствии с поставленной задачей, применяя современные программные продукты.

Список литературы

[1]

Business Planner, Исследование рынка салонов красоты в Москве по итогам 2016 года, 2017. https://business-planner.ru/articles/analitika/issledovanie-rynka-salonov-krasoty-v-moskve-po-itogam-2016-goda.html.

[2]

Интернет-журнал Директор салона красоты", https://www.dirsalona.ru/article/187-avtomatizatsii-salona-krasoty.

[3]

Интернет-сайт компании "Мир пилок", http://mirpilok.ru/article/avtomatizacia-salona-krasoti/.

[4]

Microsoft, Описание БД Access https://products.office.com/ru-ru/access?rtc=1.

[5]

Сайт фирмы 1C, http://v8.1c.ru/overview/.

[6]

Сайт налоговой службы, https://www.nalog.ru/rn77/ip/.

[7]

Работа с планировщиком в 8.3.6. Статья форума, https://infostart.ru/public/333903/.

[8]

Е. Х. М.Г. Радченко, 1С:Предприятие 8.2. Практическое пособие разработчика, М.: ООО «1С-Паблишинг» версия для ИТС , 2013.

Приложение № 1

Листинги программных модулей

Программный модуль планировщика

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Экспорт

ЗаполнитьПланировщикНаСервере();

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

&НаСервере

Процедура ЗаполнитьПланировщикНаСервере() Экспорт

// Настроить планировщик.

Планировщик.ЕдиницаПериодическогоВарианта = ТипЕдиницыШкалыВремени.Час;

Планировщик.КратностьПериодическогоВарианта = 24;

Планировщик.ШкалаВремени.Положение=ПоложениеШкалыВремени.Лево;

Планировщик.ОтступСНачалаПереносаШкалыВремени = ПолучениеКонстант.ПолучитьНачалоДня();

Планировщик.ОтступСКонцаПереносаШкалыВремени = ПолучениеКонстант.ПолучитьДоКонцаДня();

Планировщик.ФорматПеренесенныхЗаголовковШкалыВремени = "ДФ='дддд, д ММММ гггг'";

ИзмеренияПланировщика = Планировщик.Измерения;

ИзмеренияПланировщика.Очистить();

ИзмерениеМастер = ИзмеренияПланировщика.Добавить("Мастер");

//измерения

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

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

"ВЫБРАТЬ

| Сотрудники.Наименование КАК ФИО,

| Сотрудники.Ссылка,

| Сотрудники.Расписание

|ИЗ

| Справочник.Сотрудники КАК Сотрудники

|ГДЕ

| Сотрудники.Расписание = Истина

|

|УПОРЯДОЧИТЬ ПО

| ФИО";

//Запрос.УстановитьПараметр("ИСТИНА", ИСТИНА);

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

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

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

ЭлементИзмерения = ИзмерениеМастер.Элементы.Добавить(ВыборкаДетальныеЗаписи.ФИО);

//ЭлементИзмерения.Текст= ВыборкаДетальныеЗаписи.ФИО;

КонецЦикла;

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

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

"ВЫБРАТЬ

| Запись.Мастер.Наименование КАК Мастер,

| Запись.Зал.Наименование как Зал,

| Запись.Ссылка КАК Ссылка,

| Запись.Начало КАК Начало,

| Запись.Окончание КАК Окончание,

| Запись.Клиент.Наименование КАК Клиент

| ИЗ

| Документ.Запись КАК Запись";

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

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

ЭлементыПланировщика = Планировщик.Элементы;

ЭлементыПланировщика.Очистить();

Пока Выборка.Следующий() Цикл

СоответствиеЗначений = Новый Соответствие;

СоответствиеЗначений.Вставить("Мастер", Выборка.Мастер);

НовыйЭлемент = ЭлементыПланировщика.Добавить(Выборка.Начало, Выборка.Окончание);

НовыйЭлемент.ЗначенияИзмерений = Новый ФиксированноеСоответствие(СоответствиеЗначений);

НовыйТекстКлиент=Выборка.Клиент;

НовыйЭлемент.Текст=НовыйТекстКлиент;

НовыйЭлемент.Значение=Выборка.Ссылка;

Если Выборка.Начало <= ТекущаяДата() Тогда // было

НовыйЭлемент.ЦветФона = WebЦвета.Белый;

НовыйЭлемент.ЦветРамки = WebЦвета.Серый;

//Иначе //

// Цвет фона

КонецЕсли;

КонецЦикла;

//

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

&НаКлиенте

Процедура ПланировщикВыбор(Элемент, СтандартнаяОбработка)

//открытие формы записи

СтандартнаяОбработка = Ложь;

ПараметрыФормы = Новый Структура("Ключ", Элемент.ВыделенныеЭлементы[0].Значение);

ОткрытьФорму("Документ.Запись.ФормаОбъекта", ПараметрыФормы);

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

&НаКлиенте

Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

Если ИмяСобытия = "Записано" Тогда

Планировщик.Элементы.Очистить();

ЗаполнитьПланировщикНаСервере();

КонецЕсли;

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

&НаКлиенте

Процедура ПланировщикПередСозданием(Элемент, Начало, Конец, Значения, Текст, СтандартнаяОбработка)

СтандартнаяОбработка=ЛОЖЬ;

ПараметрыФормы = Новый Структура("Начало,Конец", Начало, Конец);

ОткрытьФорму("Документ.Запись.ФормаОбъекта", ПараметрыФормы);

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

Программный модуль объекта Запись

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

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

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

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

// регистр Продажи

Движения.Продажи.Записывать = Истина;

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

Движение = Движения.Продажи.Добавить();

Движение.Период = Дата;

Движение.Услуга = ТекСтрокаУслуги.Услуга;

Движение.Клиент = Клиент;

Движение.Мастер = Мастер;

Движение.Зал = Зал;

Движение.ДатаУслуги = ДатаЗаписи;

Движение.Выручка = ТекСтрокаУслуги.Цена;

КонецЦикла;

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

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

Программный модуль формы записи

&НаКлиенте

Процедура УслугиУслугаПриИзменении(Элемент)

//вычисление суммы по документу

// Получить текущую строку табличной части.

СтрокаТабличнойЧасти = Элементы.Услуги.ТекущиеДанные;

// Установить цену.

СтрокаТабличнойЧасти.Цена = РаботаСоСправочниками.РозничнаяЦена(Объект.Дата, СтрокаТабличнойЧасти.Услуга);

СуммаТЧ=0;

Для Каждого СтрокаТабличнойЧасти Из Объект.Услуги Цикл

СуммаТЧ= СуммаТЧ+ СтрокаТабличнойЧасти.Цена;

КонецЦикла;

Объект.СуммаЗаписи= СуммаТЧ;

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

&НаКлиенте

Процедура ПослеЗаписи(ПараметрыЗаписи)

Оповестить("Записано"); //для сервера

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

&НаКлиенте

Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)

//проверка на возможность проведения

Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение И Объект.Завершено = Ложь

Тогда Сообщить("Для проведения услуга должна быть завершена галочкой");

Отказ = Истина;

КонецЕсли;

Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение И Объект.Окончание > ТекущаяДата()

Тогда Сообщить("Для проведения услуга должна быть завершена по времени");

Отказ = Истина;

КонецЕсли;

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

&НаКлиенте

Процедура ПриОткрытии(Отказ)

//автоматическая установке текущей даты в записи, если она не определена при открытии

ЕСЛИ Объект.ДатаЗаписи = Дата("00010101000000") Тогда

Объект.ДатаЗаписи=ТекущаяДата();

КонецЕсли;

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

&НаСервере

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

//если не установлены даты начала и даты конца

//Сообщить (Объект.Начало);

ЕСЛИ Объект.Начало= Дата("00010101000000") ИЛИ Объект.Окончание= Дата("00010101000000") Тогда

Объект.Начало=Параметры.Начало;

Объект.Окончание=Параметры.Конец;

//Объект.Мастер=Параметры.Мастер;

Конецесли;

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

Код общего модуля ПроведениеРасчетов

Процедура ПерерассчитатьНачисления(ТребуемыйВидРасчета) Экспорт

// Здесь следует выбрать из набора записей перерасчета записи в следующей последовательности:

// записи документа1 для сотрудников из списка,

// записи документа2 для сотрудников из списка и т. д.

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

"ВЫБРАТЬ

| НачисленияПерерасчет.ОбъектПерерасчета,

| НачисленияПерерасчет.Сотрудник

|ИЗ

| РегистрРасчета.Начисления.Перерасчет КАК НачисленияПерерасчет

|ГДЕ

| НачисленияПерерасчет.ВидРасчета = &ТребуемыйВидРасчета

|ИТОГИ ПО

| НачисленияПерерасчет.ОбъектПерерасчета");

Запрос.УстановитьПараметр("ТребуемыйВидРасчета", ТребуемыйВидРасчета);

СписокСотрудников = Новый СписокЗначений;

// Перебрать группировку по регистратору.

ВыборкаПоРегистратору = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаПоРегистратору.Следующий() Цикл

Регистратор = ВыборкаПоРегистратору.ОбъектПерерасчета;

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

ВыборкаПоСотрудникам = ВыборкаПоРегистратору.Выбрать();

СписокСотрудников.Очистить();

Пока ВыборкаПоСотрудникам.Следующий() Цикл

СписокСотрудников.Добавить(ВыборкаПоСотрудникам.Сотрудник);

КонецЦикла;

// Получить набор записей регистра расчета для выбранного регистратора.

НаборЗаписей = РегистрыРасчета.Начисления.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Регистратор.Значение = Регистратор;

НаборЗаписей.Прочитать();

РассчитатьНачисления(НаборЗаписей, ТребуемыйВидРасчета, СписокСотрудников);

НаборЗаписей.Записать( , Истина);

// Очистить перерассчитанные записи в перерасчете.

НаборЗаписейПерерасчета = РегистрыРасчета.Начисления.Перерасчеты.Перерасчет.СоздатьНаборЗаписей();

НаборЗаписейПерерасчета.Отбор.ОбъектПерерасчета.Значение = Регистратор;

НаборЗаписейПерерасчета.Записать();

КонецЦикла;

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

Процедура РассчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокСотрудников) Экспорт

Регистратор = НаборЗаписейРегистра.Отбор.Регистратор.Значение;

// Рассчитать первичные записи

Если ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда

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

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

"ВЫБРАТЬ

| НачисленияДанныеГрафика.ЗначениеПериодДействия КАК Норма,

| НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,

| НачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки

|ИЗ

| РегистрРасчета.Начисления.ДанныеГрафика(Регистратор = &Регистратор И

| ВидРасчета = &ВидРасчета И Сотрудник В (&СписокСотрудников))

| КАК НачисленияДанныеГрафика";

Запрос.УстановитьПараметр("Регистратор", Регистратор);

Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);

Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);

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

Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл

СтруктураНомер = Новый Структура("НомерСтроки");

СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки;

ВыборкаРезультата.Сбросить();

Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда

Если ВыборкаРезультата.Норма = 0 Тогда

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Вид расчета: Оклад – Нет рабочих дней в заданном периоде";

Сообщение.Сообщить();

ЗаписьРегистра.Результат = 0;

Иначе

// Рассчитать оклад по фактическому периоду и исходным данным

ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанные /ВыборкаРезультата.Норма) *ВыборкаРезультата.Факт;

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Выполнен расчет " + ЗаписьРегистра.Регистратор + " – " + ЗаписьРегистра.ВидРасчета + " – " + ЗаписьРегистра.Сотрудник;

Сообщение.Сообщить();

КонецЕсли;

КонецЕсли;

КонецЦикла;

// Рассчитать вторичные записи

ИначеЕсли ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда

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

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

"ВЫБРАТЬ

| НачисленияБазаНачисления.РезультатБаза КАК База,

| НачисленияБазаНачисления.НомерСтроки КАК НомерСтроки

|ИЗ

| РегистрРасчета.Начисления.БазаНачисления(&ИзмеренияОсновного, &ИзмеренияБазового, , Регистратор = &Регистратор И ВидРасчета = &ВидРасчета И Сотрудник В (&СписокСотрудников))

| КАК НачисленияБазаНачисления";

Измер = Новый Массив(1);

Измер[0] = "Сотрудник";

Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер);

Запрос.УстановитьПараметр("ИзмеренияБазового", Измер);

Запрос.УстановитьПараметр("Регистратор", Регистратор);

Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);

Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);

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

Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл

СтруктураНомер = Новый Структура("НомерСтроки");

СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки;

ВыборкаРезультата.Сбросить();

Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда

ЗаписьРегистра.Результат = ВыборкаРезультата.База * (ПолучениеКонстант.ПолучитьПремия() / 100);

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Выполнен расчет " + ЗаписьРегистра.Регистратор + " – " + ЗаписьРегистра.ВидРасчета + " – " + ЗаписьРегистра.Сотрудник;

Сообщение.Сообщить();

КонецЕсли;

КонецЦикла;

КонецЕсли;

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

Код модуля объекта документа НачисленияСотрудникам

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

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

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

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

// Записываем движения регистров

Движения.Начисления.Записать();

// Получим список всех сотрудников, содержащихся в документе

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

"ВЫБРАТЬ РАЗЛИЧНЫЕ

| НачисленияСотрудникамНачисления.Сотрудник

|ИЗ

| Документ.НачисленияСотрудникам.Начисления КАК НачисленияСотрудникамНачисления

|

|ГДЕ

| НачисленияСотрудникамНачисления.Ссылка = &ТекущийДокумент");

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

// Сформируем список сотрудников

ТаблЗнач = Запрос.Выполнить().Выгрузить();

МассивСотрудников = ТаблЗнач.ВыгрузитьКолонку("Сотрудник");

// Вызов процедуры РассчитатьНачисления из общего модуля

ПроведениеРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Оклад, МассивСотрудников);

Движения.Начисления.Записать( , Истина);

ПроведениеРасчетов.РассчитатьНачисления(Движения.Начисления, ПланыВидовРасчета.ОсновныеНачисления.Премия, МассивСотрудников);

Движения.Начисления.Записать( , Истина);

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

Код общего модуля ПолучениеКонстант

Функция ПолучитьНачалоДня() Экспорт

Возврат (Константы.НачалоДня.Получить());

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

Функция ПолучитьДоКонцаДня() Экспорт

Возврат (Константы.ДоКонцаДня.Получить());

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

Функция ПолучитьПремия() Экспорт

Возврат (Константы.Премия.Получить());

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

Код общего модуля РаботаСоСправочниками

Функция РозничнаяЦена(АктуальнаяДата, ЭлементНоменклатуры) Экспорт

// Создать вспомогательный объект "Отбор".

Отбор = Новый Структура("Номенклатура", ЭлементНоменклатуры);

// Получить актуальные значения ресурсов регистра.

ЗначенияРесурсов = РегистрыСведений.Цены.ПолучитьПоследнее(АктуальнаяДата, Отбор);

Возврат ЗначенияРесурсов.Цена;

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

Код общего модуля ПроведениеРасчетов

Процедура ПерерассчитатьНачисления(ТребуемыйВидРасчета) Экспорт

// Здесь следует выбрать из набора записей перерасчета записи в следующей последовательности:

// записи документа1 для сотрудников из списка,

// записи документа2 для сотрудников из списка и т. д.

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

"ВЫБРАТЬ

| НачисленияПерерасчет.ОбъектПерерасчета,

| НачисленияПерерасчет.Сотрудник

|ИЗ

| РегистрРасчета.Начисления.Перерасчет КАК НачисленияПерерасчет

|ГДЕ

| НачисленияПерерасчет.ВидРасчета = &ТребуемыйВидРасчета

|ИТОГИ ПО

| НачисленияПерерасчет.ОбъектПерерасчета");

Запрос.УстановитьПараметр("ТребуемыйВидРасчета", ТребуемыйВидРасчета);

СписокСотрудников = Новый СписокЗначений;

// Перебрать группировку по регистратору.

ВыборкаПоРегистратору = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаПоРегистратору.Следующий() Цикл

Регистратор = ВыборкаПоРегистратору.ОбъектПерерасчета;

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

ВыборкаПоСотрудникам = ВыборкаПоРегистратору.Выбрать();

СписокСотрудников.Очистить();

Пока ВыборкаПоСотрудникам.Следующий() Цикл

СписокСотрудников.Добавить(ВыборкаПоСотрудникам.Сотрудник);

КонецЦикла;

// Получить набор записей регистра расчета для выбранного регистратора.

НаборЗаписей = РегистрыРасчета.Начисления.СоздатьНаборЗаписей();

НаборЗаписей.Отбор.Регистратор.Значение = Регистратор;

НаборЗаписей.Прочитать();

РассчитатьНачисления(НаборЗаписей, ТребуемыйВидРасчета, СписокСотрудников);

НаборЗаписей.Записать( , Истина);

// Очистить перерассчитанные записи в перерасчете.

НаборЗаписейПерерасчета = РегистрыРасчета.Начисления.Перерасчеты.Перерасчет.СоздатьНаборЗаписей();

НаборЗаписейПерерасчета.Отбор.ОбъектПерерасчета.Значение = Регистратор;

НаборЗаписейПерерасчета.Записать();

КонецЦикла;

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

Процедура РассчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокСотрудников) Экспорт

Регистратор = НаборЗаписейРегистра.Отбор.Регистратор.Значение;

// Рассчитать первичные записи

Если ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда

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

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

"ВЫБРАТЬ

| НачисленияДанныеГрафика.ЗначениеПериодДействия КАК Норма,

| НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,

| НачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки

|ИЗ

| РегистрРасчета.Начисления.ДанныеГрафика(Регистратор = &Регистратор И

| ВидРасчета = &ВидРасчета И Сотрудник В (&СписокСотрудников))

| КАК НачисленияДанныеГрафика";

Запрос.УстановитьПараметр("Регистратор", Регистратор);

Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);

Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);

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

Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл

СтруктураНомер = Новый Структура("НомерСтроки");

СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки;

ВыборкаРезультата.Сбросить();

Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда

Если ВыборкаРезультата.Норма = 0 Тогда

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Вид расчета: Оклад – Нет рабочих дней в заданном периоде";

Сообщение.Сообщить();

ЗаписьРегистра.Результат = 0;

Иначе

// Рассчитать оклад по фактическому периоду и исходным данным

ЗаписьРегистра.Результат = (ЗаписьРегистра.ИсходныеДанные /ВыборкаРезультата.Норма) *ВыборкаРезультата.Факт;

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Выполнен расчет " + ЗаписьРегистра.Регистратор + " – " + ЗаписьРегистра.ВидРасчета + " – " + ЗаписьРегистра.Сотрудник;

Сообщение.Сообщить();

КонецЕсли;

КонецЕсли;

КонецЦикла;

// Рассчитать вторичные записи

ИначеЕсли ТребуемыйВидРасчета = ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда

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

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

"ВЫБРАТЬ

| НачисленияБазаНачисления.РезультатБаза КАК База,

| НачисленияБазаНачисления.НомерСтроки КАК НомерСтроки

|ИЗ

| РегистрРасчета.Начисления.БазаНачисления(&ИзмеренияОсновного, &ИзмеренияБазового, , Регистратор = &Регистратор И ВидРасчета = &ВидРасчета И Сотрудник В (&СписокСотрудников))

| КАК НачисленияБазаНачисления";

Измер = Новый Массив(1);

Измер[0] = "Сотрудник";

Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер);

Запрос.УстановитьПараметр("ИзмеренияБазового", Измер);

Запрос.УстановитьПараметр("Регистратор", Регистратор);

Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);

Запрос.УстановитьПараметр("СписокСотрудников", СписокСотрудников);

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

Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл

СтруктураНомер = Новый Структура("НомерСтроки");

СтруктураНомер.НомерСтроки = ЗаписьРегистра.НомерСтроки;

ВыборкаРезультата.Сбросить();

Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда

ЗаписьРегистра.Результат = ВыборкаРезультата.База * (ПолучениеКонстант.ПолучитьПремия() / 100);

Сообщение = Новый СообщениеПользователю;

Сообщение.Текст = "Выполнен расчет " + ЗаписьРегистра.Регистратор + " – " + ЗаписьРегистра.ВидРасчета + " – " + ЗаписьРегистра.Сотрудник;

Сообщение.Сообщить();

КонецЕсли;

КонецЦикла;

КонецЕсли;

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