Разработка автоматизированной информационной системы работы спа-салона "Luxury-Spa"

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

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 29.06.2014
Размер файла 3,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Содержание

электронный справочник спа салон

1. Постановка задачи

2. Разработка автоматизированной информационной системы

2.1 Создание справочников

2.2 Создание регистров сведений

2.3 Создание документов

2.4 Создание плана видов характеристик

2.5 Создание плана счетов

2.6 Создание плана видов расчета

2.7 Создание регистров накопления

2.8 Создание регистра бухгалтерии

2.9 Создание регистра расчета

2.10 Создание обработок

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

Приложение

1. Постановка задачи

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

Создать справочники видов абонементов, видов услуг, натуральной косметики, которая используется в спа-салоне, ее характеристик, а так же клиентов - посетителей и мастеров, работающих в спа-салоне. Создать документы для реализации следующих возможностей: продажа абонемента и определение индивидуальной программы оказания услуг для каждого клиента, посещение занятий, а так же учет покупки косметики и списание. Предусмотреть документ для расчета заработной платы мастеров. Создать регистры сведений, содержащих информацию о ценах на тот или иной тип абонемента, вид самой услуги, а так же о ценах на натуральную косметику; регистры накопления - для отслеживания и обновления информации о продаже абонементов, покупке - списании косметики, посещаемости клиентов. Для учета бухгалтерии организации создать регистр бухгалтерии, а в помощь для начисления заработной платы сотрудникам - план видов расчета и регистр расчета. В отчетах должна выводиться итоговая информация: доходы от продаж, расходы при покупке, рейтинги по различным критериям, зарплата работников, а так же справочная информация для потенциальных клиентов спа-салона "Luxury-Spa".

2. Разработка автоматизированной информационной системы

2.1 Создание справочников

Требуется создать следующие объекты:

Справочник "Клиенты":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 16

Наименование (по умолчанию)

Строка, длина 150

КонтактныеДанные

Строка, длина 100

Выполнение

Результат

Справочник "Наши мастера":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 9

Наименование (по умолчанию)

Строка, длина 25

Выполнение

Результат

Справочник "Виды услуг":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 9

Наименование (по умолчанию)

Строка, длина 50

Выполнение

Результат

Справочник "Абонементы":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 5

Наименование (по умолчанию)

Строка, длина 50

Выполнение

Результат

Справочник "Косметика":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 5

Наименование (по умолчанию)

Строка, длина 50

Выполнение

Результат

Справочник "Расписание":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 9

Наименование (по умолчанию)

Строка, длина 25

Выполнение

Результат

Справочник "Субконто":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 9

Наименование (по умолчанию)

Строка, длина 25

Владелец: ПланВидовХарактеристик.ВидыСубконто

Выполнение

2.2 Создание регистров сведений

Периодический регистр "ЦеныАбонементов"

Периодичность в пределах года

Измерения

Измерение

Тип

ВидАбонемента

СправочникСсылка.Абонементы

Ресурсы

Ресурс

Тип

БазоваяЦена

Число, длина 15, неотрицательное

ЧислоПосещений

Число, длина 10, неотрицательное

Выполнение

Связанная с ним функция общего модуля ОбщегоНазначения:

Функция ЦенаАбонемента(АктуальнаяДата, ЭлементАбонементов) Экспорт

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

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

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

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

Результат

Периодический регистр "ЦеныВидыУслуг"

Периодичность в пределах года

Измерения

Измерение

Тип

ВидУслуги

СправочникСсылка.ВидыУслуг

Ресурсы

Ресурс

Тип

ЦенаВида

Число, длина 10, неотрицательное

Выполнение

Связанная с ним функция общего модуля ОбщегоНазначения:

Функция ЦенаВидаУслуги (АктуальнаяДата, ЭлементВидовУслуг) Экспорт

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

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

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

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

Результат

Периодический регистр "ЦеныКосметика"

Периодичность в пределах года

Измерения

Измерение

Тип

Косметика

СправочникСсылка.Косметика

Ресурсы

Ресурс

Тип

Цена

Число, длина 10, неотрицательное

Выполнение

Связанная с ним функция общего модуля ОбщегоНазначения:

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

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

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

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

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

Результат

Регистр сведений "РасписаниеУслуг"

Измерения

Измерение

Тип

Группы

СправочникСсылка.Расписание

Дата

Дата

Ресурсы

Ресурс

Тип

Значение

Число, длина 1

Выполнение

Результат

2.3 Создание документов

Документ "Оформление абонемента":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 5

Наименование (по умолчанию)

Строка, длина 50

Клиент

СправочникСсылка.Клиенты

Мастер

СправочникСсылка.НашиМастера

Реквизиты табличной части "Покупка"

Реквизит

Тип

ТипАбонемента

СправочникСсылка.Абонементы

ЧислоПосещений

Число, длина 10, неотрицательное

БазЦена

Число, длина 10, неотрицательное

ВидУслуги

СправочникСсылка.ВидыУслуг

ЦенаВида

Число, длина 10, неотрицательное

ИтоговаяСтоимость

Число, длина 10, неотрицательное

Выполнение

Связанные с ним функции общего модуля ОбщегоНазначения:

Процедура РассчитатьИтог(СтрокаТабличнойЧасти) Экспорт

СтрокаТабличнойЧасти.ИтоговаяСтоимость =СтрокаТабличнойЧасти.ЦенаВида+СтрокаТабличнойЧасти.ЧислоПосещений*СтрокаТабличнойЧасти.БазЦена;

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

Функция ЧислоПосещений(АктуальнаяДата, ЭлементАбонементов) Экспорт

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

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

Возврат ЗначенияРесурсов.ЧислоПосещений;

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

Модуль объекта

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

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

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

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

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

// регистр Посещаемость Приход

Движение = Движения.Посещаемость.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

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

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

Движение.ОсталосьЗанятий = ТекСтрокаПокупка.ЧислоПосещений;

КонецЦикла;

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

// регистр Бухгалтерия

Движение = Движения.Бухгалтерия.Добавить();

Движение.СчетДт = ПланыСчетов.Основной.Товары;

Движение.СчетКт = ПланыСчетов.Основной.РасчетыСПоставщиками;

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

Движение.Сумма = ТекСтрокаПокупка.ИтоговаяСтоимость;

Движение.КоличествоДт = ТекСтрокаПокупка.ЧислоПосещений;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Косметика] = ТекСтрокаПокупка.ТипАбонемента;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Абонементы] = ТекСтрокаПокупка.ТипАбонемента;

КонецЦикла;

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

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

Модуль формы

Процедура ПокупкаТипАбонементаПриИзменении(Элемент)

// Вставить содержимое обработчика.

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

СтрокаТабличнойЧасти.БазЦена=ОбщегоНазначения.ЦенаАбонемента(Дата, Элемент.Значение);

СтрокаТабличнойЧасти.ЧислоПосещений=ОбщегоНазначения.ЧислоПосещений(Дата, Элемент.Значение);

//ЦенаАбонемента(Дата, Элемент.Значение);

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

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

// Вставить содержимое обработчика.

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

СтрокаТабличнойЧасти.ЦенаВида=ОбщегоНазначения.ЦенаВидаУслуги(Дата, Элемент.Значение);

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

Результат

Документ "Посещение":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 5

Наименование (по умолчанию)

Строка, длина 50

Клиент

СправочникСсылка.Клиенты

Реквизиты табличной части "Посещение"

Реквизит

Тип

Значение

Число, длина 2, неотрицательное

Выполнение

Модуль объекта

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

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

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

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

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

// регистр Посещаемость Расход

Движение = Движения.Посещаемость.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

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

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

Движение.ОсталосьЗанятий = ТекСтрокаПосещение.Значение;

КонецЦикла;

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

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

Результат

Документ "ПокупкаКосметики":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 5

Наименование (по умолчанию)

Строка, длина 50

Реквизиты табличной части "Косметика"

Реквизит

Тип

Косметика

СправочникСсылка.Косметика

Количество

Число, длина 10, неотрицательное

Цена

Число, длина 10, неотрицательное

Сумма

Число, длина 10, неотрицательное

Выполнение

Модуль объекта

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

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

// регистр Косметика Приход

Движение = Движения.Косметика.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход;

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

Движение.Косметика = ТекСтрокаКосметика.Косметика;

Движение.Количество = ТекСтрокаКосметика.Количество;

КонецЦикла;

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

// регистр Бухгалтерия

Движение = Движения.Бухгалтерия.Добавить();

Движение.СчетДт = ПланыСчетов.Основной.Товары;

Движение.СчетКт = ПланыСчетов.Основной.РасчетыСПоставщиками;

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

Движение.Сумма = ТекСтрокаКосметика.Сумма;

Движение.КоличествоДт = ТекСтрокаКосметика.Количество;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Косметика] = ТекСтрокаКосметика.Косметика;

КонецЦикла;

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

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

Модуль формы:

Процедура КосметикаКоличествоПриИзменении(Элемент)

// Вставить содержимое обработчика.

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

ОбщегоНазначения.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Процедура КосметикаЦенаПриИзменении(Элемент)

// Вставить содержимое обработчика.

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

ОбщегоНазначения.РассчитатьСумму(СтрокаТабличнойЧасти);

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

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

// Вставить содержимое обработчика.

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

СтрокаТабличнойЧасти.Цена = ОбщегоНазначения.ЦенаКосметика (Дата, Элемент.Значение);

ОбщегоНазначения.РассчитатьСумму(СтрокаТабличнойЧасти);

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

Связанная с ним функция общего модуля ОбщегоНазначения:

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

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

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

Результат

Документ "СписаниеКосметики":

Реквизиты

Реквизит

Тип

Код (по умолчанию)

Число, длина 5

Наименование (по умолчанию)

Строка, длина 50

Реквизиты табличной части "Списание"

Реквизит

Тип

Косметика

СправочникСсылка.Косметика

Количество

Число, длина 10, неотрицательное

Цена

Число, длина 10, неотрицательное

Сумма

Число, длина 10, неотрицательное

Выполнение

Модуль объекта

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

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

// регистр Косметика Расход

Движение = Движения.Косметика.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Расход;

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

Движение.Косметика = ТекСтрокаСписание.Косметика;

Движение.Количество = ТекСтрокаСписание.Количество;

КонецЦикла;

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

// регистр Бухгалтерия

Движение = Движения.Бухгалтерия.Добавить();

Движение.СчетДт = ПланыСчетов.Основной.ДебиторскаяЗадолженность;

Движение.СчетКт = ПланыСчетов.Основной.Капитал;

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

Движение.Сумма = ТекСтрокаСписание.Сумма;

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Клиенты] = ТекСтрокаСписание.Косметика;

КонецЦикла;

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

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

Результат

Документ "ВводНачальныхОстатков":

Данные: Движения.Косметика

Выполнение

Модуль формы:

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

ОбновитьДатуДвижений=ЭтоНовый() ИЛИ

Движения.Косметика.Модифицированность();

Если Не ОбновитьДатуДвижений Тогда

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

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

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

"ВЫБРАТЬ

|Дата

|ИЗ

|Документ.ВводНачальныхОстатков

|Где Ссылка = &ТекущийДокумент";

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

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

ОбновитьДатуДвижений=Выборка.Дата <> Дата;

КонецЕсли;

Если ОбновитьДатуДвижений ТОгда

Если Не Движения.Косметика.Выбран() И

Не Движения.Косметика.Модифицированность() Тогда

Движения.Косметика.Прочитать();

КонецЕсли;

Для Каждого ЗаписьРегистра Из Движения.Косметика Цикл

ЗаписьРегистра.Период=Дата;

КонецЦикла;

КонецЕсли;

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

Результат

Документ "Зарплата":

Реквизиты табличной части "Начисления"

Реквизит

Тип

Мастер

СправочникСсылка.НашиМастера

ГрафикРаботы

СправочникСсылка.Расписание

ДатаНачала

Дата

ДатаОкончания

Дата

ВидРасчета

ПланВидовРасчетаСсылка.ОсновныеНачисления

Результат

Число, длина 10, неотрицательное

Выполнение

Модуль объекта

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

|ЗарплатаНачисления.Мастер

|ИЗ

|Документ.Зарплата.Начисления

|КАК ЗарплатаНачисления

|ГДЕ

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

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

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

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

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

СписокМастеров.ЗагрузитьЗначения(МассивМастеров);

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

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

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

Связанная с документом процедура общего модуля ОбщегоНазначения

электронный справочник спа салон

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

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

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

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

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

"ВЫБРАТЬ НачисленияДанныеГрафика.ЗначениеПериодДействия КАК Норма, НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,

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

|ИЗ РегистрРасчета.Начисления.ДанныеГрафика(Регистратор=&Регистратор И ВидРасчета=&ВидРасчета И Мастер В (&СписокМастеров))

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

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

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

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

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

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

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

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

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

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

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

Сообщить ("Вид расчета: Оклад - Нет рабочих дней в заданном периоде",);

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

Иначе

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

Сообщить("Выполнен расчет"+ЗаписьРегистра.Регистратор+" - "+ЗаписьРегистра.ВидРасчета+" - "+ЗаписьРегистра.Мастер,);

КонецЕсли;

КонецЕсли;

КонецЦикла;

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

Тогда

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

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

"ВЫБРАТЬ НачисленияБазаНачисления.РезультатБаза КАК База, НачисленияБазаНачисления.НомерСтроки КАК НомерСтроки

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

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

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

Измер[0]="Мастер";

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

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

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

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

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

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

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

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

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

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

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

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

Сообщить("Выполнен расчет"+ЗаписьРегистра.Регистратор+"-"+ЗаписьРегистра.ВидРасчета+"-"+ЗаписьРегистра.Мастер,);

КонецЕсли;

КонецЦикла;

КонецЕсли;

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

2.4 Создание плана видов характеристик

План видов характеристик "ВидыСубконто"

Тип значения характеристик:

СправочникСсылка.Клиенты,

СправочникСсылка.Абонементы,

СправочникСсылка.Субконто,

СправочникСсылка.Косметика

Дополнительные значения характеристик

Справочник Субконто

2.5 Создание плана счетов

Имя: Основной

Признак учета: Количественный

Виды Субконто: План видов характеристик "ВидыСубконто"

2.6 Создание плана видов расчета

Имя: ОсновныеНачисления

Использует период действия

Зависимость от базы: зависит по периоду действия

Базовый план видов расчета: ОсновныеНачисления

2.7 Создание регистров накопления

Регистр накопления "Косметика"

Измерения

Измерение

Тип

Косметика

СправочникСсылка.Косметика

Ресурсы

Ресурс

Тип

Количество

Число, длина 10, неотрицательное

Регистраторы:

Документ ПокупкаКосметики

Документ СписаниеКосметики

Документ ВводНачальныхОстатков

Движения регистра:

Регистр накопления "Посещаемость"

Измерения

Измерение

Тип

Клиент

СправочникСсылка.Клиенты

Ресурсы

Ресурс

Тип

ОсталосьЗанятий

Число, длина 10, неотрицательное

Регистраторы:

Документ ОформелениеАбонемента

Документ Посещение

Движения по регистру

2.8 Создание регистров бухгалтерии

Имя: Бухгалтерия

План счетов: Основной

Использует Корреспонденцию

Ресурсы

Ресурс

Тип

Количество

Число, длина 15; Признак учета Количественный, Признак учета субконто Количественный

Сумма

Число, длина 15; балансовый

Регистраторы

Документ ОформлениеАбонемента

Документ ПокупкаКосметики

Документ СписаниеКосметики

Движения данного регистра:

2.9 Создание регистров расчета

Имя: Начисления

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

Использует период действия

График: РасписаниеУслуг

Значение графика: Значение

Дата графика: Дата

Базовый период - квартал

Измерения

Измерение

Тип

Мастер

СправочникСсылка.НашиМастера

Ресурсы

Ресурс

Тип

Количество

Число, длина 10, неотрицательное

Реквизиты

Ресурс

Тип

ГрафикРаботы

СправочникСсылка.Расписание; связь с графиком Группы

Количество

Число, длина 10, неотрицательное

2.10 Создание обработок

В обработке отображены все необходимые для работы объекты: справочники, документы, некоторые регистры, а так же имеются макеты для отчетов.

Имя: Работа

Форма объекта: Работа

Макеты:

Посещаемость;

РейтингКлиентов;

ОборотноСальдоваяВедомость;

Косметика;

Начисления;

Услуги;

ВидыУслуг;

Отчеты:

Посещаемость

Клиент

Количество занятий по абонементу

Отхождено

Осталось занятий

Косметика

Косметика

КоличествоПриход

КоличествоРасход

КоличествоКонечныйОстаток

Зарплата

Мастер

ВидРасчета

Начало

Конец

Регистратор

Результат

Рейтинг клиентов

Услуги

Клиент

Мастер

ТипАбонемента

ВидУслуги

ОборотноСальдоваяВедомость

Код

Наименование

СальдоНачДт

СальдоНачКт

ОборотДт

ОборотКт

СальдоКонДт

СальдоКонКт

ВидыУслуг

Ссылка

ЦенаВида (за 1 занятие)

Модуль объекта

Процедура СформироватьОтчетПоПосещаемости(ТабДок) Экспорт

Макет = ПолучитьМакет("Посещаемость");

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

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

"ВЫБРАТЬ

| ПосещаемостьОстаткиИОбороты.Клиент.Представление,

| ПосещаемостьОстаткиИОбороты.ОсталосьЗанятийПриход,

| ПосещаемостьОстаткиИОбороты.ОсталосьЗанятийРасход,

|ПосещаемостьОстаткиИОбороты.ОсталосьЗанятийКонечныйОстаток

|ИЗ

| РегистрНакопления.Посещаемость.ОстаткиИОбороты КАК ПосещаемостьОстаткиИОбороты";

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

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();

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

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

ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);

ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.Вывести(ОбластьПодвалТаблицы);

ТабДок.Вывести(ОбластьПодвал);

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

Процедура СформироватьОтчетПоЗарплате (ТабДок) Экспорт

Макет = ПолучитьМакет("Начисления");

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

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

"ВЫБРАТЬ

| Начисления.Мастер.Представление КАК Мастер,

| ПРЕДСТАВЛЕНИЕ(Начисления.ВидРасчета) КАК ВидРасчета,

| Начисления.ПериодДействияНачало КАК Начало,

| Начисления.ПериодДействияКонец КАК Конец,

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

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

|ИЗ

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

|ИТОГИ

| СУММА(Результат)

|ПО

| ОБЩИЕ,

| Мастер КАК Мастер

|АВТОУПОРЯДОЧИВАНИЕ";

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

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");

ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги");

ОбластьМастер = Макет.ПолучитьОбласть("Мастер");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();

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

ВыборкаОбщийИтог.Следующий(); // Общий итог

ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);

ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень());

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

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

ОбластьМастер.Параметры.Заполнить(ВыборкаМастер);

ТабДок.Вывести(ОбластьМастер, ВыборкаМастер.Уровень());

ВыборкаДетали = ВыборкаМастер.Выбрать();

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

ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);

ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());

КонецЦикла;

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.Вывести(ОбластьПодвалТаблицы);

ТабДок.Вывести(ОбластьПодвал);

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

Процедура СформироватьУслуги(ТабДок) Экспорт

Макет = ПолучитьМакет("Услуги");

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

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

"ВЫБРАТЬ

| ПРЕДСТАВЛЕНИЕ(ОформлениеАбонемента.Клиент),

| ПРЕДСТАВЛЕНИЕ(ОформлениеАбонемента.Мастер),

| ОформлениеАбонемента.Покупка.(

| ТипАбонемента.Представление,

| ВидУслуги.Представление

| )

|ИЗ

| Документ.ОформлениеАбонемента КАК ОформлениеАбонемента";

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

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ПокупкаОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ПокупкаШапкаТаблицы");

ПокупкаОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПокупкаПодвалТаблицы");

ПокупкаОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("ПокупкаДетали");

ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();

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

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

ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);

ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());

ТабДок.НачатьГруппуСтрок();

ТабДок.Вывести(ПокупкаОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();

ПокупкаВыборкаДетали = ВыборкаДетали.Покупка.Выбрать();

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

ПокупкаОбластьДетальныхЗаписей.Параметры.Заполнить(ПокупкаВыборкаДетали);

ТабДок.Вывести(ПокупкаОбластьДетальныхЗаписей, ПокупкаВыборкаДетали.Уровень());

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.Вывести(ПокупкаОбластьПодвалТаблицы);

ТабДок.ЗакончитьГруппуСтрок();

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.Вывести(ОбластьПодвалТаблицы);

ТабДок.Вывести(ОбластьПодвал);

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

Процедура ОборотноСальдоваяВедомостьСформировать (ТабДок) Экспорт

Макет = ПолучитьМакет("ОборотноСальдоваяВедомость");

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

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

"ВЫБРАТЬ

| Основной.Код КАК Код,

| Основной.Наименование,

|БухгалтерияОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокДт КАК СальдоНачДт,

|БухгалтерияОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокКт КАК СальдоНачКт,

| БухгалтерияОстаткиИОбороты.СуммаОборотДт КАК ОборотДт,

| БухгалтерияОстаткиИОбороты.СуммаОборотКт КАК ОборотКт,

|БухгалтерияОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокДт КАК СальдоКонДт,

|БухгалтерияОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокКт КАК СальдоКонКт

|ИЗ

| ПланСчетов.Основной КАК Основной

| ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Бухгалтерия.ОстаткиИОбороты КАК БухгалтерияОстаткиИОбороты

| ПО БухгалтерияОстаткиИОбороты.Счет = Основной.Ссылка

|

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

| Код

|ИТОГИ

| СУММА(СальдоНачДт),

| СУММА(СальдоНачКт),

| СУММА(ОборотДт),

| СУММА(ОборотКт),

| СУММА(СальдоКонДт),

| СУММА(СальдоКонКт)

|ПО

| ОБЩИЕ";

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

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");

ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщиеИтоги");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();

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

ВыборкаОбщийИтог.Следующий(); // Общий итог

ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);

ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень());

ВыборкаДетали = ВыборкаОбщийИтог.Выбрать();

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

ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);

ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.Вывести(ОбластьПодвалТаблицы);

ТабДок.Вывести(ОбластьПодвал);

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

Процедура Косметика(ТабДок) Экспорт

Макет = ПолучитьМакет("Косметика");

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

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

"ВЫБРАТЬ

| КосметикаОстаткиИОбороты.Косметика,

| ПРЕДСТАВЛЕНИЕ(КосметикаОстаткиИОбороты.Косметика),

| КосметикаОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,

| КосметикаОстаткиИОбороты.КоличествоПриход,

| КосметикаОстаткиИОбороты.КоличествоРасход,

| КосметикаОстаткиИОбороты.КоличествоКонечныйОстаток

|ИЗ

| РегистрНакопления.Косметика.ОстаткиИОбороты КАК КосметикаОстаткиИОбороты

|

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

| КоличествоНачальныйОстаток";

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

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();

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

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

ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);

ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.Вывести(ОбластьПодвалТаблицы);

ТабДок.Вывести(ОбластьПодвал);

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

Процедура СформироватьВидыУслуг (ТабДок)Экспорт

Макет = ПолучитьМакет("ВидыУслуг");

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

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

"ВЫБРАТЬ

| ВидыУслуг.Ссылка,

| ВидыУслуг.Представление,

| ЦеныВидыУслугСрезПоследних.ЦенаВида

|ИЗ

| РегистрСведений.ЦеныВидыУслуг.СрезПоследних КАК ЦеныВидыУслугСрезПоследних

| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыУслуг КАК ВидыУслуг

| ПО ЦеныВидыУслугСрезПоследних.ВидУслуги = ВидыУслуг.Ссылка";

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

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();

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

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

ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);

ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень());

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.Вывести(ОбластьПодвалТаблицы);

ТабДок.Вывести(ОбластьПодвал);

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

Модуль формы

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

НачПериод = ТекущаяДата() - 604800;

КонПериод = ТекущаяДата();

ЭлементыФормы.Диаграмма.Видимость=Ложь;

ЭлементыФормы.ДиаграммаГанта.Видимость=Ложь;

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

Процедура Кнопка1Нажатие(Элемент)

ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();

ЭлементыФормы.Диаграмма.Видимость=Ложь;

ЭлементыФормы.ДиаграммаГанта.Видимость=Ложь;

СформироватьОтчетПоПосещаемости(ЭлементыФормы.ПолеТабличногоДокумента1);

ЭлементыФормы.ПолеТабличногоДокумента1.ТолькоПросмотр = Истина;

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

Процедура Кнопка2Нажатие(Элемент)

ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();

ЭлементыФормы.Диаграмма.Видимость=Ложь;

ЭлементыФормы.ДиаграммаГанта.Видимость=Ложь;

Косметика(ЭлементыФормы.ПолеТабличногоДокумента1);

ЭлементыФормы.ПолеТабличногоДокумента1.ТолькоПросмотр = Истина;

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

Процедура Кнопка3Нажатие(Элемент)

ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();

ЭлементыФормы.Диаграмма.Видимость=Ложь;

ЭлементыФормы.ДиаграммаГанта.Видимость=Ложь;

СформироватьОтчетПоЗарплате (ЭлементыФормы.ПолеТабличногоДокумента1);

ЭлементыФормы.ПолеТабличногоДокумента1.ТолькоПросмотр=Истина;

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

Процедура Кнопка4Нажатие(Элемент)

ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();

ЭлементыФормы.Диаграмма.Видимость =Истина;

ЭлементыФормы.ДиаграммаГанта.Видимость=Ложь;

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

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

"ВЫБРАТЬ

| ПосещаемостьОбороты.Клиент.Представление КАК Клиент,

| ПосещаемостьОбороты.ОсталосьЗанятийРасход КАК Посещаемость

|ИЗ

| РегистрНакопления.Посещаемость.Обороты КАК ПосещаемостьОбороты

|

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

| Посещаемость УБЫВ";

ЭлементыФормы.Диаграмма.ИсточникДанных=Запрос.Выполнить().Выгрузить();

ПолеВыбора=ТипДиаграммы.ГистограммаОбъемная;

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

Процедура Кнопка5Нажатие(Элемент)

ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();

ЭлементыФормы.Диаграмма.Видимость=Ложь;

ЭлементыФормы.ДиаграммаГанта.Видимость=Ложь;

СформироватьУслуги(ЭлементыФормы.ПолеТабличногоДокумента1);

ЭлементыФормы.ПолеТабличногоДокумента1.ТолькоПросмотр = Истина;

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

Процедура Кнопка6Нажатие(Элемент)

ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();

ЭлементыФормы.Диаграмма.Видимость=Ложь;

ЭлементыФормы.ДиаграммаГанта.Видимость=Ложь;

ОборотноСальдоваяВедомостьСформировать (ЭлементыФормы.ПолеТабличногоДокумента1);

ЭлементыФормы.ПолеТабличногоДокумента1.ТолькоПросмотр=Истина;

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

Процедура ПереченьНажатие(Элемент)

ЭлементыФормы.ПолеТабличногоДокумента1.Очистить();

ЭлементыФормы.Диаграмма.Видимость=Ложь;

ЭлементыФормы.ДиаграммаГанта.Видимость=Ложь;

СформироватьВидыУслуг(ЭлементыФормы.ПолеТабличногоДокумента1);

ЭлементыФормы.ПолеТабличногоДокумента1.ТолькоПросмотр=Истина;

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

Отчеты

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

1. Радченко М.Г. 1С:Предприятие 8.1 Практическое пособие разработчика. Электронное издание.

2. Севостьянов А.Д., Володина Е.В., Севостьянова Ю.М. 1С:Бухгалтерия 8.0 Практика применения

3. Габец А.П., Гончаров Д.И., Козырев Д.В., Кухлевский Д.С., Радченко М.Г. Профессиональная разработка в системе 1С: Предприятие 8

4. Габец А.П., Гончаров Д.И. Профессиональная разработка в системе 1С: Предприятие 8.0 Простые примеры разработки

Приложение 1

Блок схема модуля документа "Посещение"

Приложение 2

Блок схема модуля документа "ПокупкаКосметики"

Приложение 3

Блок схема модуля документа "Зарплата"

Приложение 4

Блок схема процедуры общего модуля ОбщегоНазначения "РасчитатьНачисления", связанного с документом "Зарплата"

Приложение 5

Блок схема модуля объекта обработки "Работа", для отчета "Посещаемость"

Приложение 6

Блок схема модуля объекта обработки "Работа", для отчета "Начисления"

Приложение 7

Схема связи созданных объектов

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.