Разработка Предприятия розничной торговли

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ
Факультет
Кафедра
Вычислительной техники
МО и ПЭВМ
Направление подготовки
09.03.02 «Информационные системы и технологии»
ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ
РАБОТА БАКАЛАВРА
на тему
Разработка конфигурации для автоматизации розничной
торговли в системе «1С: Предприятие 8.3»
Студент
___________ Цырулёв Андрей Сергеевич
(подпись, дата)
Руководитель
___________
(ФИО полностью)
Прошкина Е.Н.
(подпись, дата)
Нормоконтролёр
___________
(фамилия, инициалы)
Такташкин Д.В.
(подпись, дата)
Работа допущена к защите (протокол заседания кафедры от
Заведующий кафедрой
__________________
(подпись)
(фамилия, инициалы)
05.06. 17
№ 17 )
Макарычев П.П.
(фамилия, инициалы)
Работа защищена с отметкой ______ (протокол заседания ГЭК от ______№____)
Секретарь ГЭК
__________________
(подпись)
Пенза, 2017
Попова Н.А.
(фамилия, инициалы)
Федеральное государственное бюджетное образовательное учреждение
высшего образования
ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ
Факультет
Кафедра
Вычислительной техники
МО и ПЭВМ
«Утверждаю»
Заведующий кафедрой
___________П.П. Макарычев
«__»_____________2017 г
ЗАДАНИЕ
НА ВЫПУСКНУЮ КВАЛИФИКАЦИОННУЮ РАБОТУ БАКАЛАВРА
1. Студент Цырулёв Андрей Сергеевич гр. 13ВИ1 факультета ФВТ
2. Тема работы Разработка конфигурации для автоматизации розничной торговли в
системе «1С: Предприятие 8.3».
_____________
__________________________________________________________________________
__________________________________________________________________________
Тема утверждена приказом ПГУ №_582/о _от " _22_ " мая
2017
3. Руководитель работы
____________Прошкина Е.Н.
4. Задание на работу
Информационная система предназначена для автоматизации работы предприятия
розничной торговли.
Функции системы:
1. Редактирование, добавление информации о клиентах.
2. Редактирование, добавление информации о поставщиках.
3. Редактирование, добавление информации о сотрудниках.
4. Занесение информации о поставках товара.
5. Контроль и анализ целевых показателей деятельности предприятия.
6. Редактирование, добавление информации о структуре предприятия.
7. Занесение информации о продажах товаров.
Метод проетирования: объектно-ориентированный.
Инструментальные средства: ArgoUML, Erwin Data Modeler, Erwin Process Modeler.
5. Перечень подлежащих разработке вопросов
1. Анализ предметной области и постановка задачи.
2. Проектирование информационной системы.
3. Разработка автоматизированной системы
4. Тестирование программного обеспечения.
5. Оформление ВКР
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
________________________________________________________________________________
6. Календарный график выполнения работы
Объем
№ п/п
Наименование этапов работы
Анализ предметной области и
1.
Подпись
(%)
выполнения
руководителя
25
20.02. – 13.03
20
14.03 – 5.04
информационной системы
Разработка
3.
Срок
постановка задачи
Проектирование
2.
работы
20
6.04 – 5.05
автоматизированной системы
Тестирование программного
4.
обеспечения
5.
Оформление ВКР
15
16.05 – 5.06
20
6.06 – 20.06
Дата выдачи задания "___"_________________20_____
Руководитель бакалаврской работы ____________________________
(подпись, дата)
Задание к исполнению принял студент ________________________
(подпись, дата)
Работу к защите допустить
Декан факультета
_____________________________________
(подпись, дата)
4
Реферат
Пояснительная
записка
содержит
103
листа,
35
рисунков,
20
использованных источников, 28 таблиц и 5 приложений.
КОНФИГУРАЦИЯ,
1С: ПРЕДПРИЯТИЕ,
ERWIN,
РОЗНИЧНАЯ
ТОРГОВЛЯ, UML, ОТЧЕТНОСТЬ, БУХГАЛТЕРСКИЙ УЧЕТ, УПРАВЛЕНИЕ
ПЕРСОНАЛОМ.
Объект исследования: программные средства автоматизации предприятия
розничной торговли.
Цель работы: разработать конфигурацию для автоматизации предприятия
розничной торговли.
Технология разработки – платформа 1С: Предприятие.
Результаты работы: спроектирована и разработана конфигурация для
автоматизации розничной торговли в системе «1С: Предприятие 8.3».
ПГУ 09.03.02–8ВР131.19 ПЗ
№ докум.
Подпись Дата
Изм. Лист
Разраб.
Цырулев А.С.
«Разработка конфигурация для
автоматизации розничной торговли в
Провер.
Прошкина Е.Н.
системе «1С: Предприятие 8.3»
Н. Контр.
Утверд.
Такташкин Д.В.
Макарычев П.П.
Пояснительная записка
Лит.
Лист
4
Листов
103
Группа 13ВИ1
5
Содержание
Введение ....................................................................................................................... 6
1 Анализ предметной области и постановка задачи ................................................ 8
1.1 Анализ предметной области ................................................................................ 8
1.2 Анализ существующих систем автоматизации розничной торговли ............ 10
1.3 Принципы построения существующих автоматизированных систем........... 13
1.4 Основы организации и функционирования автоматизированных систем .... 16
1.5 Обзор инструментальных средств проектирования и разработки ................. 18
1.6 Постановка задачи на разработку ...................................................................... 20
2 Проектирование информационной системы .................................................... 22
2.1 Анализ бизнес процессов предприятия ............................................................ 22
2.2 Проектирование логической модели базы данных.......................................... 27
2.2.1 Определение связей между сущностями ....................................................... 27
2.2.2 Нормализация базы данных ............................................................................ 29
2.3 Проектирование автоматизированной системы .............................................. 33
2.4 Проектирование пользовательского интерфейса............................................. 38
3 Разработка автоматизированной системы ........................................................... 40
3.1 Разработка структуры базы данных .................................................................. 40
3.2 Разработка структуры приложения ................................................................... 44
3.2.1 Анализ функций приложения ......................................................................... 44
3.2.2 Отображение функций в модули программы................................................ 48
3.2.3 Описание логической структуры .................................................................... 51
4 Тестирование .......................................................................................................... 54
Заключение ................................................................................................................ 59
Список использованных источников ...................................................................... 60
Приложение А. Глоссарий ....................................................................................... 62
Приложение Б. Листинг программы ....................................................................... 64
Приложение В. Результаты тестирования .............................................................. 83
Приложение Г. Графическая часть .......................................................................... 93
Приложение Д. Сущности логической модели данных ........................................ 98
6
Введение
В настоящее время розничная торговля занимает одно из ведущих мест в
хозяйственной деятельности России. Данная сфера постоянно развивается и
расширяется. Во времена, когда конкуренция во всех областях все больше
набирает обороты, в сфере торговли выживают лишь те организации, которые
предлагают своим клиентам лучший сервис. Стоит отметить, что автоматизация
небольшого розничного магазина даже более важна, чем автоматизация
розничной торговли сети магазинов крупного ритейлера.
В условиях растущей конкуренции в сфере торговли способны выжить
только предприятия, предлагающие своим клиентам все более совершенный
сервис. Причем для маленького магазина повышение качества обслуживание
клиентов даже более важно, чем для крупной розничной сети. Ведь очень часто
именно клиентский сервис становится последним решающим аргументом в
борьбе за покупателей. Однако совершенствование уровня обслуживания
невозможно обеспечить без автоматизации торгового процесса. Причем закупка
и установка даже самого новейшего торгового оборудования без системы
автоматизации магазина будет неэффективной, поскольку торговая техника
всего лишь выполняет свою механическую работу. «Мозгом» магазина как раз
и
становится
система
автоматизации
торговли,
которая
«считывает»
информацию со всей техники, ведет учет и подготавливает всю необходимую
информацию о движении товара, товарных запасах, выручке, деятельности
сотрудников, динамике продаж и т.д.
Целью выполнения выпускной квалификационной работы является
разработка конфигурации для автоматизации розничной торговли.
Для достижения поставленной цели были определены и решены
следующие задачи:
–
проанализировать
существующие
системы
автоматизации
розничной торговли;
–
проведение анализа существующих ERP-систем;
–
определение функций системы с помощью диаграмм UML;
7
–
выполнение анализа бизнес-процессов предприятия;
–
разработка архитектуры конфигурации;
–
разработка
пользовательского
интерфейса
и
основных
возможностей;
–
тестирование.
В результате, на основе выполненного анализа, была разработана
конфигурация, которая позволяет не только автоматизировать продажи, вести
отчетность и контролировать бизнес-процессы, но и вести бухгалтерский учет.
8
1 Анализ предметной области и постановка задачи
1.1 Анализ предметной области
Розничная торговля – это завершающая форма продажи товаров
конечному потребителю в небольших объемах через магазины, павильоны,
лотки, палатки и другие пункты сети розничной торговли. В отличие от
оптовой торговли, товар, купленный в системе розничной торговли, не
рассчитан на дальнейшую перепродажу, а предназначен для непосредственного
использования конечным потребителем [1].
Именно розничная торговля ориентирует отечественных производителей
максимально учитывать запросы общества. В основе розничной торговли
используется теория индивидуального выбора, которая исходит из принципа
приоритета потребителя.
Розничные предприятия выполняют ряд функций,
увеличивающих ценность продаваемых ими товаров и услуг:

обеспечение определенного ассортимента товаров и услуг;

дробление поступающих партий товаров;

хранение запасов;

обеспечение сервиса.
Все эти действия составляют от 20 до 50% стоимости продаваемых в
розницу
товаров.
Столь
высокий
показатель
еще
раз
подчеркивает
необходимость понимания деятельности розничных торговых предприятий,
важности их роли в современном обществе.
В настоящее время розничная торговля является одним из наиболее
динамично развивающихся секторов российского хозяйства. В отрасли
действуют свыше 900 тыс. хозяйственных единиц и занято около 15 млн
человек (около 15% общего числа занятых в экономике страны). В рыночных
условиях розничная торговля в России ориентируется на развитие торговли в
странах с развитой рыночной экономикой, где широко внедряются достижения
науки и техники, сосредоточены большие людские ресурсы, привлекаются
значительные финансовые средства.
9
Автоматизация просто необходима для успешного функционирования
розничного предприятия. Она позволит решить множество комплексных задач,
повысить скорость работы персонала и улучшить уровень обслуживания
покупателей, а также организовать правильный оперативный и бухгалтерский
учет. Также благодаря автоматизации руководитель всегда будет осведомлен об
актуальной информации по состоянию предприятия, что позволит обеспечить
его грамотное управление [2].
Автоматизация торговли с использованием программного обеспечения
производится внедрением различных CRM и ERP систем в зависимости от
специфики торговой точки. Данные системы могут быть как коробочного типа,
так и написанные под заказ с учетом специфики предприятия, не
предусмотренной
в
коробочных
вариантах.
Автоматизацию
торговли необходимо проводить с учетом структуры торгового предприятия.
Программное обеспечение должно подбираться для комплексного решения
поставленных
задач,
устанавливаться
только
квалифицированными
специалистами с последующим сопровождением системы.
Автоматизация розничной торговли позволяет:

увеличить лояльность покупателей за счет повышения качества и
скорости их обслуживания и внедрения гибких дисконтных систем;

точнее и легче учитывать товар: строгий контроль остатков
предотвратит хищения среди персонала, позволит контролировать состояние
товарных остатков и своевременно пополнять ассортимент;

облегчить управление магазином и удаленно следить за состоянием
дел в торговом зале;

надежно защитить товар при помощи противокражных систем и
систем видеонаблюдения.
Так как розничная торговля достаточно развита в России и влияет на
общее
экономическое
состояние
страны,
можно
сделать
вывод,
что
автоматизация данной сферы просто необходима. Она позволит улучшить
работу предприятия, и тем самым простимулирует развитие данной сферы.
10
1.2 Анализ существующих систем автоматизации розничной
торговли
В настоящее время практически не одно предприятие розничной торговли
не обходиться без автоматизированной системы. Часто предпочтения отдаются
типовым системам от различных ERP-компаний. Система ERP (Enterprise
Resource Planning) – это корпоративная информационная система, которая
предназначена для контроля, учета и анализа всех видов бизнес-процессов и
решения бизнес-задач в масштабе предприятия . Значительным минусом таких
систем является высокая цена в совокупности с ограниченными возможностями
гибкой настройки программного обеспечения и добавления индивидуального
функционала. Отличной альтернативой данным системам является, не типовая
конфигурация, которая учитывает особенности и требования конкретной
фирмы.
Прежде,
чем
приступить
к
проектированию,
необходимо
проанализировать и выявить общие принципы построения и инструменты
работы уже существующих и успешных систем выбранной направленности.
Это важно, прежде всего, для выявления архитектуры и понимания
особенностей работы разрабатываемой автоматизированной системы.
На современном рынке представлено большое количество ERP-систем
для розничной торговли, такие как: Парус, Галактика, SAP, Microsoft Dinamics
Axapta и другие. Рассмотрим их преимущества и недостатки подробнее.
1. Галактика.
Данная система существует на рынке уже 25 лет, программа завоевала
свою нишу в области ERP, имеет достойное количество клиентов доверивших
им автоматизацию предприятия.
Систему нельзя корректировать, кроме мелких исправлений интерфейса.
Все доработки необходимо заказывать у разработчика системы, это выйдет
дорого
и
не приемлемо по
срокам.
Система
доступна
для
внешней
интеграции по средствам XML, COM, ActiveX, ODBC.
Интерфейс с первого взгляда не очень дружелюбный, напоминает Excel.
2. Парус.
11
Данная программа так же берет свое начало очень давно, основана
компания
в
1990
году.
Большинство
доходов
компания
получает
от государственных компаний. Парус так же состоит из модулей: финансы,
бухгалтерия, MRP, CRM и т.д.
Систему имеют право дорабатывать только сами разработчики, софт
приходится использовать «как есть». Как правило, устанавливается в БД Oracle,
что выходит достаточно дорого при использование лицензионного ПО. Одним
из главных плюсов системы является масштабируемость решения.
Интерфейс Паруса удобнее и понятней чем в Галактики.
3. SAP.
SAP это программа, класса ERP, родом из Германии. SAP, как и
остальные решения, состоит из модулей различающиеся по видам назначения.
SAP очень популярная система в мире. В России, в основном, внедряется
крупным предприятиям. Это обусловлено высокой ценой лицензий и услуг (в
3 – 10 раз выше, чем 1С). SAP имеет хорошую репутацию среди ERP, решение
хорошо масштабируемое.
Доработка SAP возможна, но достаточно трудоемкая. По практике, то,
что в 1С 8.2 можно доработать за 1 – 2 часа, в SAP занимает 1 – 2 дня. Как
правило в SAP ничего не дописывают, лишь настраивают.
Интерфейс является интуитивно понятным и приятным для работы.
4. Microsoft Dinamics Axapta (NAVISION).
Первая версия Axapta была выпущена в 1998 году. Достойная
альтернатива SAP, программа, не смотря на распространенность в мире, не
может похвастаться большой отечественной аудиторией. Axapta содержит все
современные модули: MRP, HR, CRM и т.д. Среди особенностей данного
решения – высокая степень интегрируемости с продуктами Microsoft – Outlook,
Excel и тд. Лицензии не такие дорогие, относительно SAP.
Доработки софта, подобно SAP, достаточно трудоемкие. Специалистов на
отечественном рынке не так уж много.
12
Интерфейс очень похож на Excel, что нельзя назвать достаточно
удобным.
5. 1С: Предприятие.
1С: Предприятие
–
это
система
программ,
предназначенная
для
автоматизации различных областей экономической деятельности предприятий,
организаций и учреждений, независимо от их вида деятельности и формы
собственности, с различным уровнем сложности учета.
За счет своей универсальности она используется для автоматизации
самых
разных
бухгалтерский,
участков
экономической
кадровый,
оперативный
деятельности
торговый,
предприятия:
складской
и
производственный учет, а также расчет заработной платы, учет товарных и
материальных средств, взаиморасчетов с контрагентами.
Немаловажным плюсом данной системы является легкая доработка
различных функций. Также большое количество высококвалифицированных
специалистов по всей России, позволяет легко изменять систему под
индивидуального пользователя [3].
Интерфейс программы является интуитивно понятным и не нагружен
лишними функциями.
Данные о представленных системах были структурированы и для
большей наглядности представлены в таблице 1.
Таблица 1 – Системы и их характеристики
Параметр
системы
Галактика
Парус
SAP
1С:Предприятие
Собственная
конфигурация
1
2
3
4
5
6
Лицензия $3501200 на одно
рабочее место.
Стоимость
внедрения 50100%
этой
суммы
Достаточно дорого в
связи
с
использованием
лицензионного
ПО
Oracle.
Лицензия
$1000-2000 на одно
рабочее
место.
Стоимость внедрения
100200%
цены
решения
С современным
курсом
евро
стоимость SAP
стала
просто
неподъемной для
большинства
российских
компаний
Лицензия $150600 на одно
рабочее место.
Стоимость
внедрения
на
одно
рабочее
место $200-1000.
Стоимость
Стоимость
внедрения
на
одно
рабочее
место $200-400.
13
Продолжение таблицы 1
1
2
3
4
5
Возможность
доработки
нет
нет
Возможна, но
трудоемка
есть
Интерфейс
Сложный
Приемлемый,
однако,
имеются
некоторые
недостатки
Интуитивно
понятный
и
приятный для
работы
Интуитивно
понятный
приятный
работы
6
есть
и
для
Интуитивно
понятный
и
приятный
для
работы
Масштабируе
мость
Возможность
построения и
использования
любой
конфигурации
Хорошо работает
как в
однопользовательск
ом режиме, так и
обслуживая
рабочую группу до
сотни
пользователей
хорошая
Хорошая, позволяет
работать как в
файловом варианте,
так и с
использованием
технологии
«клиент-сервер».
Хорошая,
позволяет
работать как в
файловом
варианте, так и с
использованием
технологии
«клиент-сервер».
Поддержка
СУБД
Oracle,
Pervasive,
MSSQL
Oracle, MS SQL
Server
или
PostgreSQL
Oracle
файловая,
Microsoft SQL
Server,
PostgreSQL, IBM
DB2,
Oracle Database
файловая,
Microsoft SQL
Server,
PostgreSQL, IBM
DB2,
Oracle Database
Внедрение
4 месяца - 1,5
год и более
4 месяца – 1 год и
более
4 месяца - 1
год и более
3-9 месяцев и более
3-6 месяцев
Таким образом, 1С: Предприятие можно смело назвать лидером ERPсистем на Российском рынке. Разработанная конфигурация на платформе
1С: Предприятия не будет уступать по значениям характеристик, лидерам
автоматизированных систем на Российском рынке.
1.3 Принципы построения существующих автоматизированных
систем
Современные автоматизированные системы представляет собой не класс
систем управления, а методологию организации бизнес-процессов предприятия.
Важной особенностью проектирования систем управления предприятием на
принципах
ERP
является
направленность
на
планирование
ресурсов
производства. Вот почему большинство функций учета, реализованных в этих
14
системах, служат лишь дополнением к основной задаче – составлению планов
поставок материалов, производства и пр.
ERP (Enterprise Resource Planning) означает планирование ресурсов
предприятия.
Исторически
назначение
автоматизированных
систем,
построенных по этому принципу, претерпевало изменения. В 60 – 70-х годах
ХХ в. был разработан стандарт управления предприятием, получивший
название MRP (Material Requirements Planning) – планирование потребностей в
материалах для производства. Дальнейшая его эволюция и привела к
появлению стандарта ERP. Системы MRP создавались для производственных
предприятий и очень редко использовались при планировании материальных
потребностей организаций, оказывающих различные услуги [4].
ERP-системы пытаются копировать структуру, процессы, процедуры и
политику ведения бизнеса. Поскольку каждый бизнес по-своему индивидуален,
то нельзя всего лишь установить программное обеспечение ERP-системы и
немедленно начать управление бизнес-процессами. В первую очередь нужно
определить основные принципы ведения бизнеса в данной организации и
сравнить их с функциональностью программного обеспечения. Тщательно
выбирая значения для тысяч параметров конфигурации, можно практически на
90 – 100% удовлетворить предложенные бизнес-требования.
Конфигурирование ERP-системы может оказаться чрезвычайно сложной
задачей, поскольку многие параметры взаимозависимы. Прежде чем задавать
для них значения, нужно понять принципы работы программного обеспечения
еще
до
его
практического
использования.
Например,
стратегия
конфигурирования корпоративной структуры может оказать существенное
влияние на подготовку финансовых балансов, управление материальными
запасами, выполнение заказов клиентов, закупки материалов, управление
компенсациями и пособиями, сохранение данных и т.п. Компания может иметь
централизованную
структуру
для
выполнения
заказов
клиентов
и
децентрализованную – для организации закупок и управления материальными
запасами. В этом случае для правильного конфигурирования системы нужно
15
решить,
какое
из
приложений
будет
иметь
централизованную
или
децентрализованную структуру
Вот несколько основных характеристик ERP-систем.
1. Эти системы состоят из нескольких модулей, которые также
называются приложениями. Основные приложения поддерживают большое
количество
бизнес-функций,
связанных
с
управлением
финансами,
дистрибуцией, производством и персоналом. Клиент может приобрести
лицензии не для всех, а только для необходимых ему модулей.
2. Приложения интегрированы друг с другом таким образом, чтобы
обеспечить выполнение отдельных транзакций в масштабе всего бизнеспроцесса. Модульная структура обеспечивает гибкость в работе, а сами модули
взаимодействуют друг с другом за счет передачи данных через программные
интерфейсы. Причем введенная вручную транзакция в одном приложении
может инициировать появление транзакций в других приложениях.
3. ERP-системы имеют очень сложную структуру. Тысячи параметров
конфигурации системы взаимодействуют друг с другом и изменяют логику
программ для удовлетворения уникальных требований бизнес-процессов.
Поэтому документация к таким системам содержит огромное количество
подробных инструкций.
4. В ERP-системах часто используются мощные механизмы хранения
данных, например, на основе систем управления базами данных (Relational
Database Management System – RDBMS). Крупная база данных ERP-системы
может иметь размер более 300 Гбайт.
5. Конкуренция среди поставщиков ERP-систем очень высока. Их
продукты обладают всеми необходимыми функциями для удовлетворения нужд
практически любого бизнес-процесса. Обычно интерфейсы между такими
программными продуктами разных поставщиков являются закрытыми и
должны быть реализованы как настраиваемые пользовательские расширения.
6. ERP-системы могут быть комбинацией интерактивных и пакетных
процессов. Многие функции поддерживают как ручной интерактивный способ
16
работы, так и автоматизированный пакетный процесс. Например, кассовые
поступления в модуле Accounts Receivable можно вводить либо вручную, вводя
нужные данные в форму, либо автоматически, конфигурируя систему для
использования программы AutoLockbox, предназначенной для автоматической
обработки поступившего из банка файла данных
Учитывая данные принципы построения автоматизированных систем
можно избежать ошибок при конфигурировании собственной системы и
сделать ее наиболее удобной для пользователя, не перегружая лишними
функциями.
1.4 Основы организации и функционирования автоматизированных
систем
Проанализировав принципы построения автоматизированных систем
розничного предприятия, можно выявить общие структурные элементы и
функции, которые должны присутствовать для успешного внедрения.
При автоматизации учитывается структура предприятия, а также его
особенности. Основными направлениями автоматизации розничной торговли
являются:
–
расчеты с контрагентами;
–
расчеты с сотрудниками;
–
учет запасов.
Данные направления учитываются как в бухгалтерском, так и в
оперативном учете. Многим фирмам необходима возможность системы вести
учет по нескольким предприятиям в одной информационной базе. Должна быть
возможность использовать систему в качестве достаточно простого и
наглядного
инструмента
бухгалтера,
а
также
как
средство
полной
автоматизации учета от ввода первичных документов до формирования
отчетности.
Для расчетов с контрагентами, в системе необходимо вести учет наличия
и движения средств, также необходимо предусмотреть возможность настройки
на различные схемы взаимодействия с покупателями и поставщиками (скидки,
17
условия поставок, и т.д.). Следует предусмотреть различный учет средств на
расчетных счетах и в кассе, кредитов, консигнации, учета ведение любых
разделов бухгалтерского учета на предприятиях различных типов.
Для
учета
запасов
система
должна
быть
универсальной
и
предусматривать возможность настройки на различные схемы учета складских
запасов. Также необходимо учесть планирование закупок и продаж, для анализа
рентабельности торговли и возможности информирования об актуальных
данных по запасам на складах.
Для расчетов с сотрудниками представлен отдельный функциональный
блок,
ориентированный
предназначенный
для
на
решения
проведение
широкого
периодических
круга
расчетов
разнообразных
и
задач,
связанных с учетом самых разнообразных ресурсов и расчетом тех или иных
параметров по ним. Система должна позволять проводить расчеты с
определенной периодичностью, от одного дня до года. Она, например, может
быть настроена на расчет заработной платы, как по месячному, так и по
недельному циклу.
Выбор состава необходимых компонент определяется задачами, которые
организация ставит в области автоматизации. Рассмотрев популярные системы
в данной сфере, можно выделить основные функции автоматизации розничной
торговли:

учет складских запасов товаров и их движения;

учет взаиморасчетов с контрагентами;

резервирование товаров и контроль оплаты;

учет денег на расчетных счетах и в кассе;

автоматический расчет цен списания товаров;

учет выданных на реализацию товаров, их возврата и оплаты;

учет перемещений сотрудников предприятия и расчет их зара-
ботной платы и разного рода компенсаций;

учет номенклатуры и расчет их себестоимости.
18
Данные
функции
следует
учесть
при
разработке
собственной
конфигурации для учета операций на предприятии розничной торговли.
1.5 Обзор инструментальных средств проектирования и разработки
Для проектирования автоматизированной системы розничных продаж
были выбраны диаграммы нотации ArgoUML, а также CASE средство ERwin.
Язык графического описания UML представляет собой общецелевой язык
графического описания моделей, который разработан для спецификации,
визуализации,
проектирования
программного
обеспечения,
и
документирования
бизнес-процессов,
компонентов
взаимодействий
объектов
системы и других систем. UML призван поддерживать процесс моделирования
программных
средств
на
основе
объектно-ориентированного
подхода,
организовывать взаимосвязь концептуальных и программных понятий и
отражать проблемы масштабирования сложных систем [5].
Пакет ArgoUML – предлагаемое Collab.Net свободно распространяемое
решение для моделирования на UML – способен избавить пользователей от
целого ряда сложностей, которые сопровождают пользователей в течение всего
процесса моделирования. Следует признать, что в ArgoUML отсутствуют
многие из инструментов, которыми обладают более развернутые пакеты, такие
как System Architect компании Popkin Software и Paradigm Plus компании
Computer Associates [6].
Одним
из
основных
достоинств
ArgoUML
является
его
среда
моделирования. ПО предлагает набор перекрывающихся диаграмм, позволяя
получить полное представление о проекте.
ArgoUML
предлагает
интуитивно
понятный
и
насыщенный
пользовательский графический интерфейс. Он представляет собой среду с
несколькими панелями, в левой части которой размещается древовидная
структура, справа – панель редактирования, а информационная панель,
поддерживающая функции обмена данными, располагается снизу. Благодаря
такой структуре графический интерфейс ArgoUML не требует длительного
изучения.
19
Для проектирования базы данных веб-приложения было использовано
CASE средство ERwin.
ERwin – CASE-средство для проектирования и документирования баз
данных, которое позволяет создавать, документировать и сопровождать базы
данных,
хранилища
и
витрины
данных.
Модели
визуализировать структуру данных, обеспечивая
данных
помогают
эффективный процесс
организации, управления и администрирования таких аспектов деятельности
предприятия, как уровень сложности данных, технологий баз данных и среды
развертывания. ERwin сочетает графический интерфейс Windows, инструменты
для построения ER-диаграмм, редакторы для создания логического и
физического описания модели данных и прозрачную поддержку ведущих
реляционных СУБД и настольных баз данных. С помощью ERwin можно
создавать или проводить обратное проектирование баз данных.
Семейство
продуктов
ERwin
представляет
собой
набор
средств
концептуального моделирования данных, использующих метод IDEF1X. ERwin
реализует проектирование схемы БД, генерацию ее описания на языке целевой
СУБД и реверсный инжиниринг существующей БД. Выпускается в нескольких
конфигурациях, ориентированных на наиболее распространенные средства
разработки приложений 4GL. Интегрируется с популярными средствами
разработки клиентской части приложений PowerBuilder, Visual Basic, Delphi,
что позволяет автоматически генерировать код приложений [7].
Для
разработки
конфигурации
была
выбрана
платформа
1С: Предприятие.
Система программ «1С: Предприятие 8» включает в себя платформу и
прикладные решения, разработанные на ее основе, для автоматизации
деятельности организаций и частных лиц. Сама платформа не является
программным продуктом для использования конечными пользователями,
которые обычно работают с одним из многих прикладных решений
(конфигураций), разработанных на данной платформе. Такой подход позволяет
20
автоматизировать
различные
виды
деятельности,
используя
единую
технологическую платформу.
Но в основных чертах стоит выделить следующие особенности:

при помощи данной платформы можно оптимизировать фирмы с
любым количеством рабочих мест;

платформа может функционировать в операционных системах
Windows, Linux, FreeBSD;

платформа 1С: Предприятие все время совершенствуется, и в любой
момент имеется возможность скачать последние обновления;

1С: Предприятие 8 предоставляет превосходные решения для
автоматизации бизнеса, она полностью удовлетворяет потребности малых и
крупных предприятий.
Все
вышеперечисленное
еще
раз
доказывает,
что
платформа
1С: Предприятия является отличным выбором при написании собственной
конфигурации с необходимыми функциями.
1.6 Постановка задачи на разработку
Целью данной работы является разработка конфигурации для магазинов
розничной торговли. Данная конфигурация должна позволить в комплексе
автоматизировать задачи оперативного и управленческого учета, анализа и
планирования торговых операций, обеспечивая тем самым эффективное
управление современным торговым предприятием. Функционал решения
должен быть универсальным и гибко адаптированным под любую фирму, в
которой осуществляется розничная торговля.
Автоматизированная система позволит:
– управлять отношениями с контрагентами;
– управлять отношениями с сотрудниками;
– управлять запасами на различных складах магазина;
– контролировать и анализировать целевые показатели деятельности
предприятия;
21
– вести расчеты с сотрудниками.
Для
административной
части
системы
необходимо
реализовать
отслеживания нахождения товаров на различных складах, а также блок отчетов,
отображающий различные данные по продажам, что необходимо для контроля
бизнес-процессов и повышения эффективности бизнеса торгового предприятия.
Правильность работы программного средства должна проверяться и
тестироваться.
Ручное
тестирование
программного
средства
должно
осуществляться путем выполнения тестовых примеров и сравнения выходных
данных с ожидаемыми результатами.
22
2 Проектирование информационной системы
2.1 Анализ бизнес процессов предприятия
Важным этапом проектирования является построение модели бизнеспроцессов. На начальных этапах создания ИС необходимо понять, как работает
организация, которую необходимо автоматизировать. Поэтому для описания
работы
предприятия
необходимо
построить
модель,
которая
будет
соответствовать предметной области и содержать в себе знания всех
участников бизнес-процессов организации [8].
Функциональная модель представлена контекстной диаграммой «Учет
торговли на розничном предприятии» в методологии IDEF0.
Входными данными для бизнес-процесса «Учет торговли на розничном
предприятии» являются:

данные о заработной плате;

данные о номенклатуре;

данные о ценах номенклатуры;

данные о складах;

данные о поставщиках;

данные о должностях;

данные о сотрудниках;

данные о вакансиях.
Выходным данным для бизнес-процесса «Учет торговли на розничном
предприятии» являются:

отчет о свободных вакансиях;

начисления сотрудникам;

отчет по увольнениям;

отчет о наличие товаров на складе;

рейтинг товаров.
Работа системы осуществляется на основании устава предприятия и
федерального закона от 28 декабря 2009 года №381-ФЗ «Об основах
23
государственного
регулирования
торговой
деятельности
в
Российской
Федерации, в качестве механизмов выступают администратор предприятия и
продавец.
Контекстная
диаграмма
бизнес-процессов
автоматизированной
системы «Учет торговли на розничном предприятии» представлена на
рисунке 1.
Рисунок 1 – Контекстная диаграмма
На основе созданной контекстной диаграммы в результате детализации
обобщенного процесса «Учет торговли на розничном предприятии» была
разработана детализирующая диаграмма, представленная на рисунке 2.
Рисунок 2 – Детализирующая диаграмма процесса «Учет торговли на
розничном предприятии» в нотации DFD
24
В процессе декомпозиции бизнес-процесса системы «Учет торговли на
розничном предприятии» выделены 2 процесса: «Учет данных об отношении
с сотрудниками», «Учет запасов».
Процесс «Учет данных об отношении с сотрудниками» предназначен
для учета сотрудников предприятия, их заработной платы, а также
свободных вакансий каждого подразделения.
Процесс «Учет запасов» предназначен для учета номенклатуры на
складах.
Для отображения накопленных данных определено хранилище:
«Ответственные лица».
В результате детализации обобщенного процесса «Учет данных об
отношении с сотрудниками» была разработана детализирующая диаграмма,
представленная на рисунке 3.
Рисунок 3 – Детализирующая диаграмма «Учет данных об отношении с
сотрудниками» в нотации DFD
В процессе декомпозиции бизнес-процесса системы «Учет данных об
отношении с сотрудниками» выделены 8 процессов: «Учет данных о
должностях»,
«Учет данных о заработной плате», «Учет данных о
25
вакансиях», «Принятие на работу», «Увольнение», «Начисление заработной
платы», «Учет свободных вакансий», «Формирование отчетных документов».
Процесс «Учет данных о должностях» предназначен для учета
должностей на предприятии.
Процесс «Учет данных о заработной плате» предназначен для учета
размера заработной платы сотрудников на различных должностях.
Процесс «Учет данных о вакансиях» предназначен для учета вакансий
и штатного расписания предприятия.
Процесс «Принятие на работу» предназначен для оформления
документов принятия на работу.
Процесс «Увольнение» предназначен для оформления документов
увольнения сотрудников с предприятия.
Процесс «Начисление заработной платы» предназначен для начисления
заработной платы сотрудникам и расчета отчислений.
Процесс
«Учет свободных
вакансий» предназначен для
учета
вакантных рабочих мест на предприятие.
Процесс «Формирование отчетных документов» предназначен для
формирования отчетных документов связанных с управлением персоналом
на предприятии.
Для отображения накопленных данных определены 4 хранилища:
«Должности», «Сотрудники», «Заработная плата», «Штатное расписание».
Так как все процессы диаграммы декомпозиции бизнес-процесса «Учет
данных об отношении с сотрудниками» являются простыми, их дальнейшая
декомпозиция не требуется.
В результате детализации обобщенного процесса «Учет запасов» была
разработана детализирующая диаграмма, представленная на рисунке 4.
26
Рисунок 4 – Детализирующая диаграмма «Учет запасов» в нотации DFD
В процессе декомпозиции бизнес-процесса системы «Учет запасов»
выделены 7 процессов: «Учет данных о складах», «Учет данных о
поставщиках»,
«Перемещение в розницу», «Учет данных о запасах»,
«Поступление на склад», «Учет цен номенклатуры», «Отгрузка со склада»,
«Формирование отчетных документов».
Процесс «Учет информации о складах» предназначен для учета
информации о складах.
Процесс «Учет информации о поставщиках» предназначен для учета
информации о поставщиках.
Процесс «Учет данных о запасах» предназначен для учета данных о
товарах на складах.
Процесс «Поступление на склад» предназначен для оформления
документов поступления товаров на склад.
Процесс «Учет цен номенклатуры» предназначен для учета цен
номенклатуры.
Процесс «Отгрузка со склада» предназначен для оформления отгрузки
товаров со склада.
27
Процесс «Перемещение в розницу» предназначен для оформления
перемещения товаров с основного склада на склад магазина.
Процесс «Формирование отчетных документов» предназначен для
формирования отчетных документов связанных.
Для отображения накопленных данных определены 4 хранилища:
«Склады», «Номенклатура», «Цены номенклатуры», «Поставщики».
Так как все процессы диаграммы декомпозиции бизнес-процесса «Учет
запасов» являются простыми, их дальнейшая декомпозиция не требуется.
2.2 Проектирование логической модели базы данных
Логическая модель данных является начальным прототипом будущей
базы данных. Она строится в терминах информационных единиц, но без
привязки к конкретной СУБД. Логическая модель описывает понятия
предметной области, их взаимосвязь, а также ограничения на данные,
налагаемые предметной областью [9]. В процессе разработки логической
модели данных выделено 25 сущностей.
Для
разрабатываемой
системы
были
выделены
сущности,
представленные в приложение Д.
Была разработана логическая модель данных для автоматизированной
системы розничной торговли. Данная логическая модель содержит 21
сущность. Были определены реквизиты сущности и первичные ключи.
2.2.1 Определение связей между сущностями
При проектировании таблиц и определении связей между ними
используют способ нормализации. Этот способ позволяет разделить исходную,
сплошную
таблицу
на
ряд
элементарных
таблиц,
между
которыми
устанавливаются связи. Такая совокупность связанных таблиц создает единую
информационную цепь объекта. Вместе с тем, из этой цепи можно выбирать
частичную информацию об объекте, хранимую в отдельной таблице. В то же
время связи позволяют осуществить и обратный процесс «сборки» информации
по информации одной из таблиц [10].
28
Существует четыре вида связей (отношений между таблицами):
– один к одному;
– один ко многим;
– многие к одному;
– многие ко многим.
Связь один к одному означает, что каждой записи первой таблицы
соответствует только одна, связанная с ней запись второй таблицы и наоборот.
Такой тип отношений используется крайне редко, так как фактически все
данные могут быть помещены в одной таблице.
Связь один ко многим характерна тем, что запись одной таблицы связана
с несколькими записями другой таблицы. В то же время запись второй таблицы
не может быть связана более чем с одной записью первой таблицы.
Связь многие ко многим или непрямая табличная связь определяет связь
одной записи первой таблицы с несколькими записями второй таблицы, в то же
время как одна запись второй таблицы может быть связана с несколькими
записями первой таблицы. На практике такой сложный вид связи между двумя
таблицами реализуется через промежуточную (связующую) таблицу. Она
позволяет заменить одну связь вида многие ко многим на две последовательные
связи: многие к одному и один ко многим, которые реализуются проще [11].
Описание
структуры
связей
логической
модели
базы
данных
представлено в таблице 2.
Таблица 2 – Описание структуры связей
Главная сущность
1
Сотрудники
Зависимая сущность
2
Розничные продажи
Название связи
3
Неидентифицирующая
Мощность
4
Один ко многим
Сотрудники
Физические лица
Склады
Сотрудники
Неидентифицирующая
Неидентифицирующая
Один ко многим
Один к одному
Сотрудники
Сотрудники
Увольнения
Список сотрудников
Неидентифицирующая
Идентифицирующая
Один ко многим
Один ко многим
Должности
Поставщики
Сотрудники
Приходная накладная
Неидентифицирующая
Неидентифицирующая
Один ко многим
Один ко многим
29
Продолжение таблицы 2
1
Приходная
накладная
Номенклатура
Склад
2
Состав приход
3
Идентифицирующая
4
Один ко многим
Состав приход
Перемещение в
розницу
Состав перемещения
Идентифицирующая
Неидентифицирующая
Один ко многим
Один ко многим
Идентифицирующая
Один ко многим
Состав перемещение
Список номенклатуры
Список номенклатуры
Состав расход
Идентифицирующая
Идентифицирующая
Идентифицирующая
Идентифицирующая
Один ко многим
Один ко многим
Один ко многим
Один ко многим
Цены номенклатуры
Неидентифицирующая
Один ко многим
Склад
Розничные продажи
Неидентифицирующая
Один ко многим
Склад
Приходная накладная
Неидентифицирующая
Один ко многим
Физические лица
Принятие на работу
Неидентифицирующая
Один ко многим
Должности
Принятие на работу
Неидентифицирующая
Один ко многим
Должности
Должности
Должности
Заработная плата
Увольнения
Список сотрудников
Неидентифицирующая
Неидентифицирующая
Неидентифицирующая
Один ко многим
Один ко многим
Один ко многим
Должности
Список должностей
Идентифицирующая
Один ко многим
Начисление
зарплаты
Штатное
расписание
Список сотрудников
Идентифицирующая
Один ко многим
Список должностей
Идентифицирующая
Один ко многим
Перемещение в
розницу
Номенклатура
Склад
Номенклатура
Розничная
продажа
Номенклатура
Таким образом, были определены связи между сущностями и их тип
данных представленных связей.
2.2.2 Нормализация базы данных
Для поддержания БД в устойчивом состоянии используется ряд
механизмов, которые получили обобщенное название средств поддержки
целостности. Процесс нормализации и есть приведение структуры БД в
соответствие этим ограничениям.
30
В целом суть этих ограничений весьма проста: каждый факт, хранимый
в БД, должен храниться один-единственный раз, поскольку дублирование
может привести к несогласованности между копиями одной и той же
информации.
Следует
избегать
любых
неоднозначностей,
а
также
избыточности хранимой информации.
Нормализацией
схемы
базы
данных
называется
процедура,
производимая над базой данных с целью удаления в ней избыточности.
Выделяются шесть нормальных форм, пять из которых так и
называются: первая, вторая, третья, четвертая, пятая нормальная форма, а
также нормальная форма Бойса-Кодда, лежащая между третьей и четвертой.
Для
реляционной
модели
данных
разработано
несколько
нормализованных форм, три из которых являются основными.
База
данных
считается
нормализованной,
если
ее
таблицы
представлены как минимум в третьей нормальной форме. Часто многие
таблицы нормализуются до четвертой нормальной формы, иногда, наоборот,
производится денормализация. Использования таблиц в пятой нормальной
форме в реальных базах данных встречается редко [12].
Первая нормальная форма(1НФ) говорит, что каждый атрибут
отношения должен хранить атомарное значение, каждое отношение (строка в
таблице) должно содержать одинаковое количество атрибутов (столбцов), то
есть:

запрещает повторяющиеся столбцы (содержащие одинаковую по
смыслу информацию);

запрещает множественные столбцы (содержащие значения типа
списка и т.п.);

требует определить первичный ключ для таблицы, то есть тот
столбец или комбинацию столбцов, которые однозначно определяют каждую
строку.
31
Вторая нормальная форма (2НФ) говорит, что отношение находится во
второй нормальной форме, если оно находится в 1НФ, и при этом все не
ключевые атрибуты зависят только от первичного ключа, то есть:

вторая нормальная форма требует, чтобы не ключевые столбцы
таблиц зависели от первичного ключа в целом, но не от его части;

если таблица находится в первой нормальной форме и первичный
ключ у нее состоит из одного столбца, то она автоматически находится и во
второй нормальной форме.
Отношение находится в третьей нормальной форме (3НФ), если оно
находится во второй нормальной форме, и каждый не ключевой атрибут
зависит только от первичного ключа и не зависят друг от друга.
Разработанная логическая модель данных автоматизированной системы
учет выпуска и реализации готовой продукции на малом предприятии
находится в третьей нормальной форме. Это объясняется следующим.
1. Все сущности логической модели данных системы находятся в 1НФ,
поскольку все атрибуты атомарны и каждое из данных отношений имеет
первичный ключ.
Рассмотрим некоторые сущности для подтверждения данного факта:
–
сущность
«Состав
расход»
имеет
ключевой
атрибут
«ID
накладной», «ID номенклатуры» и атрибуты «Количество», «Цена», которые
являются простыми и неделимыми;
–
сущность
«Номенклатура»
имеет
ключевой
атрибут
«ID
номенклатуры» и атрибуты «Наименование», «Единица измерения», которые
являются простыми и неделимыми;
–
сущность «Цены номенклатуры» имеет ключевой атрибут «ID
цены» и атрибуты «Дата», «Цена», «ID номенклатуры», которые являются
простыми и неделимыми;
– сущность «Поставщики» имеет ключевой атрибут «ID поставщика»
и
атрибуты
«Полное
наименование»,
«Наименование»,
«Телефон»,
32
«Фактический адрес», «Юридический адрес», «Факс», «E-mail», «ИНН»,
«КПП», «Код по ОКПО», которые являются простыми и неделимыми;
– сущность «Состав перемещения» имеет ключевой атрибут «ID
перемещения» и атрибуты «Цена», «Количество», «ID номенклатуры»,
которые являются простыми и неделимыми.
Остальные сущности также находятся в первой нормальной форме.
2. 2НФ требует, чтобы неключевые атрибуты отношений зависели от
первичного ключа в целом, но не от его части. Рассмотрим некоторые
сущности для подтверждения данного факта.
Сущность «Состав расход» имеет составной первичный ключ,
состоящий из атрибутов «ID продажи», «ID номенклатуры». Неключевые
атрибуты данного отношения зависят от первичного ключа в целом, а не от
его части. Атрибуты «Количество», «Цена», зависят и от ID продажи, и от ID
номенклатуры. Следовательно, можно сделать вывод, что данная сущность
находится в 2НФ.
Сущность «Список номенклатуры» имеет составной первичный ключ,
состоящий из атрибутов «ID номенклатуры»,
«ID склада». Неключевые
атрибуты данного отношения зависят от первичного ключа в целом, а не от
его части. Атрибут «Количество» зависит и от ID номенклатуры, и от ID
склада. Следовательно, можно сделать вывод, что данная сущность
находится в 2НФ.
Сущность «Состав перемещения» имеет составной первичный ключ,
состоящий из атрибутов «ID номенклатуры»,
«ID перемещения».
Неключевые атрибуты данного отношения зависят от первичного ключа в
целом, а не от его части. Атрибуты «Количество», «Цена», «Ставка НДС»
зависит от ID номенклатуры, и от ID перемещения. Следовательно, можно
сделать вывод, что данная сущность находится в 2НФ.
Остальные сущности также находятся во второй нормальной форме.
3. Ни в одном из отношений логической модели не существует
транзитивных
зависимостей,
т.е.
неключевые
атрибуты
не
зависят
33
функционально друг от друга, поэтому отношения находятся в 3НФ.
Рассмотрим некоторые сущности для подтверждения данного факта.
В отношении «Номенклатура» неключевые атрибуты «Наименование»,
«Единица измерения» функционально не зависят друг от друга.
В отношении «Цены номенклатуры» неключевые атрибуты «Дата»,
«Цена», «ID номенклатуры» функционально не зависят друг от друга.
В отношении «Розничная продажа» неключевые атрибуты «ID договора»,
«ID склада», «ID сотрудник», «Комментарий», «Вид оплаты» функционально
не зависят друг от друга.
В
отношении
«Поставщики»
неключевые
атрибуты
«Полное
наименование», «Наименование», «ИНН», «КПП», «Код по ОКПО» «Телефон»,
«Фактический адрес», «Юридический адрес», «E-mail», функционально не
зависят друг от друга.
В
отношении
«Состав
сотрудников»
неключевые
атрибуты
«ID
должности», «Начисление» функционально не зависят друг от друга.
Таким образом, можно сделать вывод, что разработанная модель
находится в третьей нормальной форме.
Логическая модель данных представлена на рисунке Г.1.
2.3 Проектирование автоматизированной системы
Проектирование системы осуществляется с использованием UMLдиаграмм с помощью CASE-средства ArgoUML.
Диаграмма вариантов использования.
В рамках унифицированного процесса функциональные требования
исследуются и формулируются в модели вариантов использования.
Вариант
высокоуровневое
использования
представление
–
это
независящее
конкретной
функции
от
реализации
разрабатываемой
системы. Вариант использования представляет собой последовательность
действий
(транзакций),
выполняемых
системой
в
ответ
на
событие,
инициируемое внешним объектом (действующим лицом, актером) [13].
34
Список действующих лиц информационной системы представлены в
таблице 3.
Таблица 3 – Действующие лица системы.
Наименование лица
Профиль, подготовка и навыки
Администратор
Регулярный пользователь информационной системы, лицо
с большим опытом работы с подобным ПО, может
захотеть модифицировать интерфейс.
Кадровый менеджер
Регулярный пользователь информационной системы, лицо
с большим опытом работы с подобным ПО, может
захотеть модифицировать интерфейс.
Основные варианты использования для каждого действующего лица
представлены в таблице 4.
Таблица 4 – Основные действующие лица
Действующее
лицо
Цель
Краткое описание
1
2
3
Администратор
Учет данных о
товарах
Учет данных о
контрагентах
Учет данных о
должностях
Учет данных о
сотрудниках
Оформление
перемещения в
розницу
Формирование
отчетов для анализа
работы предприятия
Администратор регистрирует новые
товаров в базе данных, при необходимости
редактирует их или удаляет.
Администратор регистрирует новых
контрагентов в базе данных, при
необходимости редактирует их или удаляет.
Администратор регистрирует новые
должности в базе данных, при
необходимости редактирует их или удаляет.
Администратор регистрирует новые
сотрудников в базе данных, при
необходимости редактирует их или удаляет.
Администратор оформляет документы
перемещения в розницу, указывает склад
отправителя, получателя, ответственные
лица и выбирает товар.
Администратор формирует отчеты для
анализа деятельности предприятия
35
Продолжение таблицы 4
1
Кадровый
менеджер
2
3
Оформление
Администратор оформляет документы
приходных накладных приходные накладные, указывает склад,
поставщика и выбирает товар.
Оформление
Администратор оформляет документы
розничных продажах
расходные накладные, указывает склад
выбирает товар.
Увольнение
Кадровый менеджер оформляет документ
сотрудников
увольнения сотрудника, указывает должность и
вид занятости работника, затем проводит
документ.
Принятие на работу
Кадровый менеджер оформляет документ
принятия на работу, указывает ФИО сотрудник,
будущую должность и вид занятости работника,
затем проводит документ.
Составление штатного Кадровый менеджер оформляет документ
расписания
штатное расписание, указывает должности
предприятия, подразделения и количество
ставок на каждую должность, затем проводит
документ.
Начисление
Кадровый менеджер оформляет документ
заработной платы
начисление зарплаты, указывает сотрудников,
подразделение, рассчитывает заработную плату,
затем проводит документ.
Диаграмма вариантов использования в нотации UML представлена на
рисунке Г.2.
Выделение вариантов использования облегчит процесс дальнейшего
проектирования.
Диаграмма последовательности.
Эта диаграмма описывает сценарий работы приложения. На диаграмме
отображаются экземпляры объектов и сообщения, которыми они обмениваются
в рамках одного варианта использования.
В данной системе выделим 3 объекта («Менеджер по закупкам»,
документ «ПриходнаяНакладная» и регистр «ОстаткиТоваров»). Диаграмма
отображает процесс создания документа о поступлении товаров и запись
36
соответствующих данных в регистр. Диаграмма последовательности в нотации
UML представлена на рисунке Б.5.
Диаграмма деятельности.
Диаграмма деятельности – UML-диаграмма, на которой показано
разбиение некоторой деятельности на ее составные части. Под деятельностью
понимается спецификация исполняемого поведения в виде координированного
последовательного и параллельного выполнения подчиненных элементов –
вложенных видов деятельности и отдельных действий, соединенных между
собой потоками, которые идут от выходов одного узла к входам другого.
Диаграммы деятельности используются при моделировании бизнес-процессов,
технологических
процессов,
последовательных
и
параллельных
вычислений [14].
В данной системе диаграмма подробно отображает перемещения товаров
в розницу. Необходимо выбрать сотрудника, ответственного за перемещение,
указываем склад-отправитель и склад-получатель, подбираем товары на складе,
которые перемещаем в розницу. Для того чтобы при выгрузке данных
корректно сформировать справочник «Товары» в конфигурации «Магазин»,
указываем дату перемещения и цену в рознице. Диаграмма деятельности в
нотации UML представлена на рисунке Г.3.
Диаграмма объектов.
Диаграммы объектов позволяют моделировать экземпляры сущностей,
которые содержатся в диаграммах классов. На диаграмме объектов показано
множество объектов и отношений между ними в некоторый момент времени.
Диаграммы объектов применяют при моделировании статических видов
системы с точки зрения проектирования и процессов. При этом моделируется
«снимок» системы в данный момент времени и изображается множество
объектов, их состояний и отношений между ними.
Диаграммы
объектов
важны
не
только
для
визуализации,
специфицирования и документирования структурных моделей, но и для
37
конструирования статических аспектов системы с помощью прямого и
обратного проектирования.
В данной системе было выделено 15 объектов (перемещение в розницу,
номенклатура, цены номенклатуры, розничная продажа, склад, приходная
накладная, поставщики, принятие на работу, заработная плата, сотрудники,
начисление заработной платы, должности, штатное расписание, увольнение,
физические лица). Определены реквизиты и операции объектов, а также связи
между ними. Диаграмма объектов в нотации UML представлена на рисунке Г.7.
Диаграмма состояния.
Диаграмма состояний (statechart diagram) – одна из диаграмм UML,
моделирующих динамику систем. Диаграмма состояний отображает конечный
автомат, выделяя поток управления, следующий от состояния к состоянию.
Конечный автомат – поведение, которое определяет последовательность
состояний
в
ходе
существования
объекта.
Эта
последовательность
рассматривается как ответ на события и включает реакции на эти события.
В данной системе диаграмма подробно отображает изменение состояния
документа «Начисление зарплаты». Выделены следующие состояния объекта:
документ создан, заполнены данные документа, рассчитаны начисления,
документ проведен, документ не проведен. Диаграмма состояния в нотации
UML представлена на рисунке Г.4.
Диаграмма кооперации.
Понятие кооперации (collaboration) является одним из фундаментальных
понятий
в
языке
UML.
Оно
служит
для
обозначения
множества
взаимодействующих с определенной целью объектов в общем контексте
моделируемой системы. Цель самой кооперации состоит в том, чтобы
специфицировать особенности реализации отдельных наиболее значимых
операций в системе. Кооперация определяет структуру поведения системы в
терминах взаимодействия участников этой кооперации.
В данной системе выделено 3 объекта: документ «ПриходнаяНакладная»,
«Менеджер по закупкам», регистр накопления «ОстаткиТоваров». Также были
38
определены связи между объектами. Диаграмма кооперации в нотации UML
представлена на рисунке Г.6.
2.4 Проектирование пользовательского интерфейса
В условиях использования компьютерных информационных технологий
актуальны вопросы организации взаимодействия человека с техническими и
программными
средствами.
Такое
взаимодействие
обеспечивает
пользовательский интерфейс.
Хороший пользовательский интерфейс обладает высокими показателями
конверсии и прост в использовании. Другими словами, он хорош как для
бизнеса, а так и для людей, которые им пользуются. Такой интерфейс называют
прозрачным и интуитивно понятным [15].
К общим принципам, лежащим в основе графического пользовательского
интерфейса, относятся:

графический режим работы;

представление ряда объектов пиктограммами;

многооконность;

использование указывающего устройства;

адекватность изображения на экране изображаемому объекту
(принцип WYSIWIG - What You See Is What You Get);

Для
стандартизация всех основных действий и элементов.
эффективного
взаимодействия
конечных
пользователей
с
вычислительной системой новые информационные технологии опираются на
организацию
интерфейса
пользователей
с
вычислительной
системой,
основанную на принципах дружественного интерфейса:

обеспечение права пользователя на ошибку благодаря защите
информационно-вычислительных ресурсов системы от непрофессиональных
действий на компьютере;

наличие
системы
«отката»,
позволяющей
при
выполнении
регламентированного действия, вернуться к предыдущему состоянию системы.
39
Одной из важных функций интерфейса является формирование у
пользователя одинаковой реакции на одинаковые действия приложений, их
согласованность. Согласование интерфейса должно быть выполнено в трех
аспектах:

физический, который относится к техническим средствам;

синтаксический, который определяет последовательность и порядок
появления элементов на экране и последовательность запросов ;

семантический,
который
обусловлен
значениями
элементов,
составляющих интерфейс.
Система должна соответствовать требованиям эргономики при условии
комплектования высококачественным оборудованием (ПЭВМ, монитор и
прочее оборудование), имеющим необходимые сертификаты соответствия и
безопасности Росстандарта [16].
При
разработке
визуального
интерфейса
программы
необходимо
выполнить следующие требования:

в главном окне программы должно присутствовать главное меню;

визуальные элементы управления должны быть расположены по
функциональным признакам;

расположение визуальных элементов должно быть удобно для
работы с программой;

надписи на всех элементах окон программы должны быть
выполнены на одном языке;

желательно наличие справочной системы.
Необходимо учесть, что стандартизированный интерфейс пользователя
повышает
конкурентоспособность
программного
продукта
и
позволяет
значительно сократить затраты на обучение пользователей, использующих
программу.
40
3 Разработка автоматизированной системы
3.1 Разработка структуры базы данных
Физическая модель базы данных содержит все детали, необходимые
конкретной СУБД для создания базы. При построении физической модели
необходимо учитывать выбранную СУБД, к ее особенностям могут относиться
поддерживаемые типы данных, соглашения о присвоении имен таблицам,
атрибутам и т.д.
Физическая модель данных представлена совокупностью объектов
конфигурации написанной на платформе 1С: Предприятие.
В процессе физического проектирования было создано 9 справочников, 7
документов, 2 регистра сведений.
Регистры сведения – прикладные объекты конфигурации в системе 1C
Предприятие, предназначенные для хранения периодической информации.
Данные в регистры сведения вводится с использованием документов
(регистраторов) или вручную [17].
Регистр сведения представляет собой n-мерную систему координат, в
узлах которой хранятся совокупные данные. Оси такой системы координат
называются измерениями регистра, а хранящиеся в узлах данные – ресурсами
регистра.
Помимо измерений и ресурсов, для регистра сведений может быть создан
набор реквизитов. Реквизиты позволяют включать в движения регистров
различную дополнительную информацию.
На основе конфигурации платформа «1С: Предприятие 8.3» формирует
базу данных, т.е. непосредственно создает таблицы и связи между ними.
1. Справочники.
Должности – для хранения списка должностей, которые занимают
сотрудники. Реквизитами справочника являются: название (строка 25),
требования (строка).
Сотрудники – для ведения списка сотрудников. Для каждого сотрудника
необходимо указывать его оклад. Реквизитами справочника являются: название
41
(строка 25), физическое лицо (СправочникСсылка.ФизическиеЛица), должность
(СправочникСсылка.Должности), ДатаПриятия (Дата), ДатаУвольнения (Дата),
ВидЗанятости
(ПеречисленияСсылка.ВидЗанятости),
ГрафикРаботы
(ПеречислениеСсылка.ВидЗанятости).
Контрагенты – для ведения списка контрагентов (поставщиков, в данном
случае). Реквизитами справочника являются: ПолноеНаименование (строка 25),
ИНН (Строка 12), КПП (Строка 10), КодПоОКПО (Строка 10), Юридический
адрес (Строка 35), Контактный телефон (Строка 12), Факс (Строка 12),
E-mail (Строка 35).
Номенклатура – для хранения информации о товарах, которые закупает и
перемещает в розницу центральный офис фирмы. Реквизитами справочника
являются: название (строка 25), единица измерения (строка 10).
Склады – для ведения списка складов, на которых хранятся товары.
Реквизитами справочника являются: название (строка 25), ответственное лицо
(СправочникСсылка.Сотрудник), вид склада (строка 25).
Физические лица – для ведения списка физических лиц. Реквизитами
справочника являются: название (строка 25), фамилия (строка 25), имя (строка
15), отчество (строка 25), дата рождения (Дата),СНИЛС (строка), ИНН (строка
12), пол (ПеречисленияСсылка.Пол).
2. Документы.
Документ ПриходнаяНакладная, который формирует движения по
регистру ОстаткиТоваров. Реквизитами документа являются: дата (дата),
контрагент
(СправочникСсылка.Контрагенты),
(СправочникСсылка.Склады), основание (строка),
ответственный
комментарий (строка),
(СправочникСсылка.Сотрудники),
(ПеречисленияСсылка.Валюты),
(СправочникСсылка.Номенклатура),
(число 15.2),Ставка
(число 15,2).
склад
НДС
Валюта
номенклатура
количество
(число
(ПеречисленияСсылка.СтавкаНДС),
10),
сумма
СуммаНДС
42
Документ ПеремещениеВРозницу, формирующий движения по регистру
ОстаткиТоваров. Реквизитами документа являются:
получателя
(СправочникСсылка.Склады),
(СправочникСсылка.Склады),
комментарий
дата (дата), склад
склад
отправителя
(строка),
ответственный
(СправочникСсылка.Сотрудники),
номенклатура
(СправочникСсылка.Номенклатура), количество (число 10), цена в рознице
(чило 15.2), Дата (Дата).
Документ РозничнаяПродажа, формирующий движения по регистру
РозничныеПродажи. Реквизитами документа являются: дата (дата), склад
(СправочникСсылка.Склады),
комментарий
(СправочникСсылка.Сотрудники),
вид
(строка),
оплаты (строка
продавец
20),
товар
(СправочникСсылка.Номенклатура), количество (число 10), цена в рознице
(число 15.2), сумма (число15,2).
Документ ШтатноеРасписание, формирующий движения по регистру
ШтатноеРасписание. Реквизитами документа являются: дата (дата), должность
(СправочникСсылка.Должность), количество мест (число 10), оклад(число15,2).
Документ ПринятиеНаРаботу, формирующий движения по регистру
СведенияОСотруднике.
физическое
лицо
Реквизитами
документа
являются:
(СправочникСсылка.ФизическиеЛица),
дата
вид
(дата),
занятости
(ПеречисленияСсылка.ВидЗанятости),должность (Справочник.Должности),
график работы (ПеречисленияСсылка.ГрафикРаботы) оклад (число15,2).
Документ
Увольнение,
формирующий
движения
по
регистру
«СведенияОСотруднике». Реквизитами документа являются: дата (дата),
сотрудник (СправочникСсылка.Сотрудники),
(ПеречисленияСсылка.ВидЗанятости),
вид
занятости
должность
(СправочникСсылка.Должности), оклад (число15,2).
Документ НачислениеЗарплаты, формирующий движения по регистру
НачисленияСотрудникам. Реквизитами документа являются: дата (дата),
сотрудник(СправочникСсылка.Сотрудники), начисление (число 15,2), НДФЛ
(число 15,2), ПФР (число 15,2), ФСС (число 15,2), ФФОМС (число 15,2).
43
3. Регистры.
Регистр сведений «ЦеныНоменклатуры», который хранит информацию о
ценах
на
товары.
Измерением
(СправочникСсылка.Номенклатура).
регистра
является:
Ресурсами
регистра
номенклатура
являются:
цена
(число 15,2). Регистр является периодическим: период месяц.
Регистр сведений ЗаработнаяПлата, который хранит информацию о
заработной
плате.
(СправочникСсылка.
Измерениями
должность).
регистра
Ресурсами
является:
регистра
должность
являются:
сумма
состоящая
из
(число 15,2). Регистр является периодическим: период месяц.
Дерево конфигурации представлено на рисунке 4.
Рисунок 4 – Дерево конфигурации
Таким
образом,
была
создана
конфигурация,
6
справочников, 7 документов, 6 отчетов, 2 регистра сведения и 3 регистра
накопления.
44
3.2 Разработка структуры приложения
3.2.1 Анализ функций приложения
На основе функциональной модели системы и технического задания
определены основные функции, которые должно выполнять программное
обеспечение, и их иерархия.
Иерархия функций представлена на рисунках 5 – 6.
Рисунок 5 – Иерархия функций программы
45
Рисунок 6 – Иерархия функций программы
Описание
реализации
функций
приложения
в
конфигурации
представлено в таблице 5.
Таблица 5 – Реализация функции в программном обеспечении
Уровень
1
1.1
Наименование функции
2
Учет данных о физических лицах
1.1.1
Добавление данных о физических
лицах
1.1.2
Изменение данных о физических
лицах
1.1.3
Удаление данных о физических
лицах
1.2
Учет данных о контрагентах
Реализация в программе
3
Справочник «Физические лица»
Создание элемента справочника физические лица,
кнопка «Добавить» - открывает пустую форму
элемента справочника для записи информации,
«Провести и закрыть» - записывает информацию в
базу данных конфигурации
Изменение элемента справочника физические лица,
двойной клик по выбранному элементу справочника
открывает форму элемента и позволяет
редактировать объект конфигурации
Удаление элемента справочника физические лица,
кнопка «Удалить» из выпадающего списка при нажатии
кнопки «Еще» позволяет удалить объект конфигурации
Справочник «Контрагенты»
46
Продолжение таблицы 5
1
2
1.2.1
Добавление данных о
контрагентах
1.2.2
Изменение данных о
контрагентах
1.2.3
Удаление данных о
контрагентах
1.3
Учет данных о сотрудниках
1.3.1
Добавление данных о
сотрудниках
1.3.2
Изменение данных о
сотрудниках
1.3.3
Удаление данных о
сотрудниках
1.4
Учет данных о складах
1.4.1
Добавление данных о складах
1.4.2
Изменение данных о складах
1.4.3
Удаление данных о складах
1.5
Учет данных о номенклатуре
1.5.1
Добавление данных о
номенклатуре
1.5.2
Изменение данных о
номенклатуре
1.5.3
Удаление данных о
номенклатуре
1.6
Учет данных о должностях
1.6.1
Добавление данных о
должностях
1.6.2
Изменение данных о
должностях
3
Создание элемента справочника контрагенты, кнопка
«Добавить» - открывает пустую форму элемента
справочника для записи информации, «Провести и
закрыть» - записывает информацию в базу данных
конфигурации
Изменение элемента справочника контрагенты, двойной
клик по выбранному элементу справочника открывает
форму элемента и позволяет редактировать объект
конфигурации
Удаление элемента справочника контрагенты, кнопка
«Удалить» из выпадающего списка при нажатии кнопки
«Еще» позволяет удалить объект конфигурации
Справочник «Сотрудники»
Создание элемента справочника сотрудники, кнопка
«Добавить» - открывает пустую форму элемента
справочника для записи информации, «Провести и
закрыть» - записывает информацию в базу данных
конфигурации
Изменение элемента справочника сотрудники, двойной
клик по выбранному элементу справочника открывает
форму элемента и позволяет редактировать объект
конфигурации
Удаление элемента справочника сотрудники, кнопка
«Удалить» из выпадающего списка при нажатии кнопки
«Еще» позволяет удалить объект конфигурации
Справочник «Склады»
Создание элемента справочника склады, кнопка
«Добавить» - открывает пустую форму элемента
справочника для записи информации, «Провести и
закрыть» - записывает информацию в базу данных
конфигурации
Изменение элемента справочника склады, двойной клик
по выбранному элементу справочника открывает форму
элемента и позволяет редактировать объект конфигурации
Удаление элемента справочника склады, кнопка «Удалить»
из выпадающего списка при нажатии кнопки «Еще»
позволяет удалить объект конфигурации
Справочник «Номенклатура»
Создание элемента справочника номенклатура, кнопка
«Добавить» - открывает пустую форму элемента
справочника для записи информации, «Провести и
закрыть» - записывает информацию в базу данных
конфигурации
Изменение элемента справочника номенклатура, двойной
клик по выбранному элементу справочника открывает
форму элемента и позволяет редактировать объект
конфигурации
Удаление элемента справочника номенклатура, кнопка
«Удалить» из выпадающего списка при нажатии кнопки
«Еще» позволяет удалить объект конфигурации
Справочник «Должности»
Создание элемента справочника должности, кнопка
«Добавить» - открывает пустую форму элемента
справочника для записи информации, «Провести и
закрыть» - записывает информацию в базу данных
конфигурации
Изменение элемента справочника должности, двойной
клик по выбранному элементу справочника открывает
форму элемента и позволяет редактировать объект
конфигурации
47
Продолжение таблицы 5
1
1.6.3
1.7
2
Удаление данных о
должностях
3
Удаление элемента справочника должности, кнопка
«Удалить» из выпадающего списка при нажатии кнопки
«Еще» позволяет удалить объект конфигурации
Учет перемещения в
розницу
Документ «Перемещение в розницу»
1.7.1
Добавление перемещения в
розницу
1.7.2
Изменение перемещения в
розницу
1.7.3
Удаление перемещения в
розницу
1.8
Учет розничных продаж
1.8.1
Добавление розничных
продаж
1.8.2
Изменение розничных
продаж
1.8.3
Удаление розничных
продаж
1.9
Учет приходных накладных
1.9.1
Добавление приходных
накладных
1.9.2
Изменение приходных
накладных
1.9.3
Удаление приходных
накладных
1.10
Учет принятия на работу
1.10.1
Добавление принятия на
работу
1.10.2
Изменение принятия на
работу
1.10.3
Удаление принятия на
работу
1.10
Учет увольнения
1.10.1
Добавление увольнения
1.10.2
Изменение увольнения
1.10.3
Удаление увольнения
Создание документа перемещение в розницу, кнопка
«Добавить» - открывает пустую форму документа для
записи информации, «Провести и закрыть» - записывает
информацию в базу данных конфигурации
Изменение документа перемещение в розницу, двойной
клик по выбранному документу открывает форму
документа и позволяет редактировать объект конфигурации
Удаление документа перемещение в розницу, кнопка
«Удалить» из выпадающего списка при нажатии кнопки
«Еще» позволяет удалить объект конфигурации
Документ «Розничные продажи»
Создание документа розничные продажи, кнопка
«Добавить» - открывает пустую форму документа для
записи информации, «Провести и закрыть» - записывает
информацию в базу данных конфигурации
Изменение документа розничные продажи, двойной клик
по выбранному документу открывает форму документа и
позволяет редактировать объект конфигурации
Удаление документа перемещение в розницу, кнопка
«Удалить» из выпадающего списка при нажатии кнопки
«Еще» позволяет удалить объект конфигурации
Документ «Приходная накладная»
Создание документа приходная накладная, кнопка
«Добавить» - открывает пустую форму документа для
записи информации, «Провести и закрыть» - записывает
информацию в базу данных конфигурации
Изменение документа приходная накладная, двойной клик
по выбранному документу открывает форму документа и
позволяет редактировать объект конфигурации
Удаление документа приходная накладная, кнопка «Удалить»
из выпадающего списка при нажатии кнопки «Еще»
позволяет удалить объект конфигурации
Документ «Принятие на работу»
Создание документа принятие на работу, кнопка
«Добавить» - открывает пустую форму документа для
записи информации, «Провести и закрыть» - записывает
информацию в базу данных конфигурации
Изменение документа принятие на работу, двойной клик по
выбранному документу открывает форму документа и
позволяет редактировать объект конфигурации
Удаление документа принятие на работу, кнопка «Удалить» из
выпадающего списка при нажатии кнопки «Еще» позволяет
удалить объект конфигурации
Документ «Увольнение»
Создание документа увольнение, кнопка «Добавить» открывает пустую форму документа для записи
информации, «Провести и закрыть» - записывает
информацию в базу данных конфигурации
Изменение документа увольнение, двойной клик по
выбранному документу открывает форму документа и
позволяет редактировать объект конфигурации
Удаление документа увольнение, кнопка «Удалить» из
выпадающего списка при нажатии кнопки «Еще» позволяет
удалить объект конфигурации
48
Окончание таблицы 5
1
1.10
1.10.1
1.10.2
1.10.3
1.10
1.10.1
1.10
1.10.1
1.10.2
1.10.3
1.10
1.10.1
1.10.2
1.10.3
1.10.1
1.10.2
2
Учет начисление заработной
платы
Документ «Начисление зарплаты»
Создание документа начисление зарплаты, кнопка «Добавить»
- открывает пустую форму документа для записи информации,
«Провести и закрыть» - записывает информацию в базу
данных конфигурации
Изменение документа начисление зарплаты, двойной клик
Изменение начисление
по выбранному документу открывает форму документа и
заработной платы
позволяет редактировать объект конфигурации
Удаление документа начисление зарплаты, кнопка «Удалить»
Удаление начисление
из выпадающего списка при нажатии кнопки «Еще»
заработной платы
позволяет удалить объект конфигурации
Учет штатное расписание
Документ «Штатное расписание»
Создание документа штатное расписание, кнопка
«Добавить» - открывает пустую форму документа для
Добавление штатное расписание
записи информации, «Провести и закрыть» - записывает
информацию в базу данных конфигурации
Учет заработной платы
Регистр сведений «Заработная плата»
Создание записи регистра заработная плата, кнопка
Добавление заработной
«создать» - открывает пустую запись регистра для
платы
добавления информации, «Записать и закрыть» записывает информацию в базу данных конфигурации
Изменение записи заработная плата, двойной клик по
Изменение заработной
выбранной записи открывает форму записи и позволяет
платы
редактировать запись регистра сведений
Удаление записи регистра сведений заработная плата, кнопка
Удаление заработной платы
«Удалить» из выпадающего списка при нажатии кнопки
«Еще» позволяет удалить запись регистра
Учет цены номенклатуры
Регистр сведений «Цены номенклатуры»
Создание записи регистра цены номенклатуры, кнопка
Добавление цены
«создать» - открывает пустую запись регистра для
номенклатуры
добавления информации, «Записать и закрыть» записывает информацию в базу данных конфигурации
Изменение записи цены номенклатуры, двойной клик по
Изменение цены
выбранной записи открывает форму записи и позволяет
номенклатуры
редактировать запись регистра сведений
Удаление записи регистра сведений цены номенклатуры,
Удаление цены
кнопка «Удалить» из выпадающего списка при нажатии
номенклатуры
кнопки «Еще» позволяет удалить запись регистра
Отчет о свободных
«Отчет о свободных вакансиях», появление на форме
вакансиях
происходить с помощью кнопки «Сформировать»
Отчет «Рейтинг товаров», появление на форме происходить с
Рейтинг товаров
помощью кнопки «Сформировать»
Добавление начисление
заработной платы
1.10.3
Отчет о начисление
сотрудникам
1.10.4
Отчет по увольнениям
1.10.5
Отчет о наличии товаров на
складе
1.11
3
Архивирование базы данных
«Отчет о начисление сотрудникам», появление на форме
происходить с помощью кнопки «Сформировать»
«Отчет по увольнениям», появление на форме происходить с
помощью кнопки «Сформировать»
«Отчет о наличии товаров на складе», появление на форме
происходить с помощью кнопки «Сформировать»
С помощью команды «Администрирование» -> «Выгрузить
информационную базу»
Таким образом, было создано описание, как реализуются функции
приложения в конфигурации.
49
3.2.2 Отображение функций в модули программы
Описание созданных обработчиков событий приложения приведено в
таблице 6.
Таблица 6 – Описание разработанных обработчиков событий
Модуль
1
Модуль
Обработчик
2
Процедура
Функция
3
Создаются движения по регистру сведений
документа
ОбработкаПроведения(Отказ,
штатное расписание, а также происходит
Штатное
Режим)
проверка даты создания последнего
расписание
расписания
Процедура
Происходит вызов процедуры на сервере
СписокДолжностейДолжность
Модуль формы
ПриИзменении(Элемент)
документа
Штатное
Процедура
Автоматически заполняется табличная часть
расписание
СписокДолжностейДолжность
списком должностей, которые относятся к
ПриИзмененииНаСервере(Дол
выбранному подразделению
жность, оклад)
Процедура
Происходит вызов процедуры на сервере
СотрудникПриИзменении(Элем
Модуль формы
ент)
документа
Увольнение
Процедура
Происходит автоматическое заполнение
СотрудникПриИзмененииНаСе
реквизитов документа
рвере()
Модуль документа
Процедура
Создаются движения по регистру накопления
ОбработкаПроведения(Отказ,
сведения о сотрудниках, а также происходит
Режим)
проверка, состоит ли выбранный сотрудник на
Увольнение
данной должности и редактирование
справочника «Сотрудники», создаются
движения по регистру бухгалтерии
хозрасчетный
Модуль
Процедура
Происходит редактирование справочника
документа
ОбработкаУдаленияПроведени
«Сотрдуники»
Увольнение
я(Отказ)
50
Продолжение таблицы 6
1
Модуль формы
Процедура
2
документа
ПодразделениеПриИзменении(Эле
Принятие на
мент)
3
Происходит вызов процедуры на сервере
работу
Процедура
Происходит автоматическое заполнение
ПодразделениеПриИзмененииНаС
реквизитов табличной части документа
ервере()
Процедура
Происходит вызов процедуры на сервере
ВидЗанятостиПриИзменении(Элем
ент)
Процедура
Создаются движения по регистру
ОбработкаПроведения(Отказ,
накопления сведения о сотрудниках, а
Режим)
также происходит проверка занятости
сотрудника и редактирование
Модуль
справочника «Сотрудники», создаются
документа
движения по регистру бухгалтерии
Принятие на
работу
хозрасчетный
Процедура
Происходит редактирование справочника
ОбработкаУдаленияПроведения(О
«Сотрдуники»
тказ)
Модуль
Процедура
Создаются движения по регистру
документа
ОбработкаПроведения(Отказ,
накопления начисления сотрудникам,
Начисление
Режим)
создаются движения по регистру
зарплаты
бухгалтерии хозрасчетный
Модуль формы
Процедура
документа
РасчитатьЗарплату(Команда)
Происходит вызов процедуры на сервере
Начисление
Процедура
Происходит автоматическое заполнение
РасчитатьЗарплатуНаСервере()
реквизитов табличной части документа
Модуль
Процедура
Создаются движения по регистру
документа
ОбработкаПроведения(Отказ,
накопления остатки товаров, создаются
Приходная
Режим)
движения по регистру бухгалтерии
зарплаты
накладная
хозрасчетный
Модуль формы
Процедура
документа
НоменклатураЦенаПриИзменении(
Приходная
Элемент)
накладная
Происходит вызов процедуры на сервере
51
Окончание таблицы 6
1
Модуль формы
2
Процедура
3
Происходит автоматический расчет
документа
НоменклатураЦенаПриИзмененииН
реквизитов табличной части
Приходная
аСервере(Количество, Цена, Сумма)
накладная
Модуль формы
Процедура
Происходит вызов процедуры на сервере
документа
НоменклатураЦенаПриИзменении(Э
Розничные
лемент)
продажи
Процедура
Происходит автоматический расчет
НоменклатураЦенаПриИзмененииН
реквизитов табличной части
аСервере(Количество, Цена, Сумма)
Модуль формы
Процедура
документа
РасчитатьСкидку(Команда)
Розничные
Процедура
Происходит расчет предоставляемой
продажи
РасчитатьСкидкуНаСервере()
скидки клиенту
Модуль
Процедура
Создаются движения по регистру
документа
ОбработкаПроведения(Отказ,
накопления остатки товаров, происходит
Розничные
Режим)
проверка на наличие товаров на складе,
продажи
Происходит вызов процедуры на сервере
создаются движения по регистру
бухгалтерии хозрасчетный
Модуль
Процедура
Выполняется заполнение реквизитов
документа
ОбработкаЗаполнения(ДанныеЗаполн
документа расходная на основании заказа
Розничные
ения, СтандартнаяОбработка)
клиента
Модуль
Процедура
Происходит проверка на наличие товаров
документа
ОбработкаПроведения(Отказ,
на складе
перемещение в
Режим)
продажи
розницу
Таким образом, с помощью процедур были реализованы все функции
системы.
3.2.3 Описание логической структуры
Программа является событийно управляемой, т.е. все действия
пользователя передаются программе через операционную систему и виде
соответствующих событий. Схема взаимодействия представлена на рисунке 7.
52
Рисунок 7 – Схема взаимодействия основных объектов конфигурации
Данные из справочника «Физические лица» поступают в документ
«Принятие на работу», т.к. при оформление данного документа указывается
именно физическое лицо, также данные из справочника «Физические лица»
поступают в справочник «Сотрудники», т.к. сотрудник является определенным
физическим лицом.
Данные
из
справочника
«Должности»
поступают
в
документ
«Принятие на работу», «Увольнение», «Начисление зарплаты» т.к. при
оформлении данного документа указывается занимаемая должность. Также
данные из справочника «Должности» поступают в документ «Штатное
расписание»
т.к.
при
оформлении
штатного
расписания
указываются
количество сводных мест для каждой должности.
Данные из справочника «Контрагенты» поступают в документ
«Приходная накладная», т.к. приход товара оформляется с указанием
поставщика.
Данные из справочника «Склады» поступают в документ «Приходная
накладная», «Продажа в розницу», «Перемещение в розницу» т.к. при
оформлении данных документов указываются склады.
Данные из справочника «Сотрудники» поступают в документ
«Приходная накладная», «Продажа в розницу», «Перемещение в розницу» т.к.
53
при оформлении данных документов указывается ответственное лицо. Также
данные из справочника «Сотрудники» поступают в документ «Увольнение» и
«Начисление зарплаты» т.к. при оформлении данных документов указывается
сотрудник.
Данные из справочника «Номенклатура» поступают в документ
«Приходная накладная», «Продажа в розницу», «Перемещение в розницу» т.к.
при оформлении данных документов указывается список номенклатуры.
Документы
«Принятие
на
работу»
и
«Увольнение»
являются
регистраторами для регистра накопления «Сведения о сотрудниках».
Документы «Продажа в розницу» и «Приходная накладная» являются
регистраторами для регистра накопления «Остатки товаров».
Документ «Начисление зарплаты» является регистраторами для
регистра накопления «Начисления сотрудникам».
54
4 Тестирование
Тестирование программного обеспечения (ПО) выявляет недоработки,
изъяны и ошибки в коде, которые необходимо устранить. Его также можно
определить как процесс оценки функциональных возможностей и корректности
ПО с помощью анализа. Основные методы интеграции и тестирования
программных продуктов обеспечивают качество приложений и заключаются в
проверке спецификации, дизайна и кода, оценке надежности, валидации и
верификации [19].
Для тестирования созданной конфигурации был выбран метод черного
ящика.
Методы
тестирования
черного
ящика
сравнивают
поведение
приложения с соответствующими требованиями. Кроме того, эти методы
обычно
направлены
на
выявление
трех
основных
видов
ошибок:
функциональности, поддерживаемой программным продуктом; производимых
вычислений; допустимого диапазона или области действия значений данных,
которые могут быть обработаны программным продуктом. На этом уровне не
исследуют внутреннюю работу компонентов программного продукта, тем не
менее они проверяются неявно [20].
Этот тип тестирования нацелен на поиск ошибок, относящихся к целому
ряду категорий, среди них:

неверная или пропущенная функциональность;

ошибки интерфейса;

проблемы удобства использования;

методы тестирования на основе автоматизированные инструменты;

проблемы
снижения
производительности
и
другие
ошибки
производительности;

ошибки загрузки;

ошибки многопользовательского доступа;

ошибки инициализации и завершения;

проблемы
сохранения
восстановлению работы.
резервных
копий
и
способности
к
55
Проведем
функциональное
тестирование
системы
для
основных
вариантов использования.
Таблица 7 – Тестирование
№
1
1
2
3
4
Варианты
тестирования
2
Заполнение
табличной части
документа
Приходная
накладная
Тест
Ожидаемые результаты
3
4
При указании количества
и цены рассчитывается
сумма по данному товару
и сумма документа в той
валюте, в которой
осуществлялась закупка.
При указании ставки
НДС рассчитывается
сумма НДС по данному
товару и в общем по
документу.
Выбор
Номенклатуры из
справочника
Номенклатура,
ввод количества
единиц Товара и
цены за единицу,
выбор ставки НДС
Выбор
Заполнение
Номенклатруы из
табличной части
справочникам
документа
Номенклатура,
ПеремещениеВРоз ввод количества
ницу
единиц Товара и
цены в рознице
Добавление в
Ввод
справочник
Наименования
Номенклатура уже товара и указание
существующий
единицы измерения
товар
товара
Проведение
документа
Выбор
ПеремещениеВРоз Номенклатруы из
ницу с указанием
справочникам
количества товара, Номенклатура,
которое
ввод количества
превышает
единиц Товара и
количество товара цены в рознице
на складе
Полученные
результаты
5
Соответствуют
ожидаемым
результатам.
Рисунок Б.1 –
Б.2.
При выборе
наименования товара,
автоматически
подставляется актуальная
дата перемещения товара
Соответствуют
ожидаемым
результатам.
Рисунок Б.3.
При попытке записать
данный товар выводится
сообщение «Данный
товар уже есть!»
Соответствуют
ожидаемым
результатам.
Рисунок Б.4.
При попытке провести
данный документ
выводится сообщение
«Не хватает N единиц
товара
Наименование_товара»
Соответствуют
ожидаемым
результатам.
Рисунок Б.5.
56
Продолжение таблицы 7
1
5
6
7
8
9
2
Проведение
документа
РозничнаяПродаж
а с указанием
количества товара,
которое
превышает
количество товара
на складе
3
Выбор
Номенклатруы из
справочникам
Номенклатура,
ввод количества
единиц Товара и
цены в рознице
Создание нового
Заполнение
документа
табличной части
Начисление
документа
зарплаты,
НачислениеЗарпла активация кнопки
ты
«Рассчитать
начисления».
Создание нового
документа
Создание
принятие на
документа
работу, его
«Принятие на
проведение и
работу»
запись в базу
данных.
Создание нового
Проведение
документа
документа
начисление
НачислениеЗарпла зарплаты, его
ты дважды за один проведение и
месяц
запись в базу
данных.
Создание нового
Проведение
документа штатное
документа
расписание, его
ШтатноеРасписан
проведение и
ие дважды за один
запись в базу
месяц
данных.
4
5
При попытке провести
данный документ
выводится сообщение
«Не хватает N единиц
товара
Наименование_товара»
Соответствуют
ожидаемым
результатам.
Рисунок Б.6.
Автоматически
заполнятся вкладки
«Сотрудник» и «Взносы»
Соответствуют
ожидаемым
результатам.
Рисунок Б.7.
Автоматически создается
реквизит справочника
«Сотрудники» с
заполненными данными
Соответствуют
ожидаемым
результатам.
Рисунок Б.8 –
Б.9.
При попытке провести
данный документ
выводится сообщение «В
этом месяце заработная
плата уже начислялась»
Соответствуют
ожидаемым
результатам.
Рисунок Б.10.
При попытке провести
данный документ
выводится сообщение «В
этом месяце штатное
расписание уже было
утверждено»
Соответствуют
ожидаемым
результатам.
Рисунок Б.11.
57
Продолжение таблицы 7
1
2
3
4
5
10
Проведение
документа
Принятие на работу
с указанием уже
закрытой
должности
Создание нового
документа принятие
на работу,
заполнение
реквизитов
документа и
проведение.
При попытке провести
данный документ
выводится сообщение «
Свободных вакансий на
данную должность
нет!»
Соответствуют
ожидаемым
результатам.
Рисунок Б.12.
Создание нового
документа
увольнение, его
проведение и запись
в базу данных.
Указание даты
начала периода,
даты конца периода
и сотрудника
Автоматически
заполняет реквизит
«дата увольнения»
справочника
«Сотрудники»
Сформированный отчет
в разрезе сотрудников с
подсчетом всех
отчислений
Соответствуют
ожидаемым
результатам.
Рисунок Б.13 –
Б.14.
Соответствуют
ожидаемым
результатам.
Рисунок Б.17.
Соответствуют
ожидаемым
результатам.
Рисунок Б.18.
Соответствуют
ожидаемым
результатам.
Рисунок Б.19.
11
Создание
документа
«Увольнение»
12
Формирование
отчета заработная
плата сотрудников
13
Формирование
отчета о свободных
вакансиях
Указание периода
формирования
отчета
Сформированный отчет
в разрезе должностей
14
Формирование
отчета остатки
товаров
Указание периода
формирования
отчета
Сформированный отчет
в разрезе номенклатуры
и складов
Указание даты
начала периода,
даты конца периода
и склада
Сформированный отчет
в разрезе Складов и
Товаров, с подсчетом
Соответствуют
ожидаемым
результатам.
Рисунок Б.15.
Сформированный отчет
в разрезе Товаров
Соответствуют
ожидаемым
результатам.
Рисунок Б.16.
15
16
Формирование
отчета Оборотносальдовая
ведомость
движения товаров
за период на
выбранном складе
Формирование
отчета по
розничным
продажам за
выбранный период
Указание даты
начала периода и
даты конца периода
58
Окончание таблицы 7
1
17
18
2
3
Выгрузка данных из
документа
ПеремещениеВРозн Указание табличной
ицу в
части документа
конфигурацию
Магазин
Указание
Загрузка данных из
загружаемого
файла xml в
документа xml,
документ
проверка на
Розничная продажа
соответствие данных
4
5
Сформирован файл
excel, который в
дальнейшем можно
загрузить в
конфигурацию Магазин
Соответствуют
ожидаемым
результатам.
Рисунок Б.20.
В конфигурацию
добавлены новые
документы
РозничныеПродажи
Соответствуют
ожидаемым
результатам.
Рисунок Б.21.
Результаты тестов приведены в приложении Б.
59
Заключение
В процессе выполнения выпускной квалификационной работы был
выполнен анализ предметной области, в рамках которого был проведен обзор
существующих систем автоматизации розничной торговли, благодаря чему
была выявлена структура и основные функции разрабатываемой конфигурации.
Помимо этого выполнен анализ функций и бизнес-процессов предприятия,
который помог выявить слабые стороны управления фирмой розничной
торговли. Так же был проведен анализ системы с помощью различных
диаграмм UML: диаграмма вариантов использования, диаграмма объектов,
диаграмма последовательности, диаграмма кооперации и т.д. Представлено
описание выбранных технологий и средств разработки, а также обоснован их
выбор.
В результате была разработана конфигурация для автоматизации
предприятий розничной торговли, которая позволяет вести как управленческий,
так и бухгалтерский учет.
Тестирование программных средств заключалось в определении метода
тестирования и выполнение тестов. Результаты функционального тестирования
показали корректность работы конфигурации.
Разработанный прототип в дальнейшем может быть усовершенствован
внедрением в конфигурацию дополнительных функций.
60
Список использованных источников
1.
Руков, В. Б. Оптовая и розничная торговля – оценка поступающих
товаров / В.Б. Руков // Бухгалтерский учет и налоги в торговле и общественном
питании. – М. : 1С-Паблишинг, 2006. – №3.
2.
Рязанцева, Н. А. 1С: Предприятие. Зарплата и кадры. Секреты
работы /Н. А. Рязанцева, Д. О. Рязанцев. – М.: 1С-Паблишинг, 2010. – 754 с.
3.
Маклаков, С. В. BPwin и ERwin: СASE-средства для разработки
информационных систем / С.В. Маклаков. – М. : Диалог-МИФИ, 2009. – 238 с.
4.
Хрусталева, Е. Ю.
Автоматизация
деятельности
оптовой
организации на платформе «1С: Предприятие 8». / Е. Ю. Хрусталева - М. : 1СПаблишинг, 2012. – 436 c.
5.
Леоненков, А. Г. Самоучитель UML 2 / А. Г. Леоненков. – БХВ-
Петербург - Москва, 2011. – 576 c.
6.
Мюллер, Р. Дж. Базы данных и UML. Проектирование/ Р. Дж.
Мюллер. – Лори, 2009. – 420 c.
7.
Маклаков, С. В. BPwin и ERwin: СASE-средства для разработки
информационных систем / С.В. Маклаков. – М. : Диалог-МИФИ, 2009. – 238 с.
8.
Мазур, И. И. Управление проектами: учебное пособие / И. И. Мазур,
В. Д. Шапиро, Н. Г. Ольдерогге. – М. : Издательство «Омега-Л», 2007. – 664 с.
9.
Дейт К., Введение в системы баз данных/ К. Дейк. – М. Вильямс,
2001. – 1072 с.
10. Мокрозуб, В. Г. Реляционные базы данных в автоматизированных
интеллектуальных информационных системах / В. Г. Мокрозуб. – Монография:
Издательский дом «Спектр», 2011. - 108 с.
11. Конноли,
Т.
Базы
данных:
проектирование,
реализация,
сопровождение. Теория и практика / Т. Конноли, К. Бегг, А. Страчан.– М. :
Издательский дом «Вильямс», 2000. – 1120 с.
12. Назарова, О. Б.
Разработка
реляционных
баз
данных
с
использованием CASE-средства All Fusion ERWin Data Modeler : учеб.-метод.
61
пособие / О. Е. Масленникова, О. Б. Назарова // 2-е изд., стер. – М. : ФЛИНТА,
2013. – ISBN 978-5-9765-1601-4
13.
Зелковиц, М. Принципы разработки программного обеспечения / М.
Зелковиц, А. Шоу, Дж. Гэннон. – М.: Мир, 2002. – 368 c.
14.
Прошкина, Е. Н.
Методы
и
средства
проектирования
информационных систем и технологий. Методические указания к выполнению
лабораторных работ / Е. Н. Прошкина. – Пенза: ПГУ, 2014. – 92с.
15. Головач, В. В. Дизайн пользовательского интерфейса (v 1.2) / В. В.
Головач. – Москва: РГГУ, 2000. – 383 c.
16.
ГОСТ Р ИСО 9241-2109-2012 Эргономика взаимодействия человек-
система. Человеко-ориентированное проектирование интерактивных систем –
М.: Стандартинформ, 2013.
17. Федоренко, Н. П. Справочник разработчика АСУ / В. В. Карибского,
Н. П. Федоренко. – М. : Экономика, 1978. – 218 с.
18. Мартин, Дж. Вычислительные сети и распределенная обработка
данных: программное обеспечение, методы и архитектура / Дж. Мартин. – М.:
Финансы и статистика, 2012. – 525 c.
19. Котляров, В. П. Основы тестирования программного обеспечения /
В. П. Котляров, Т. В. Коликова. – М. : Интернет-университет информационных
технологий, Бином. Лаборатория знаний, 2006. – 288 c.
20. Рассел Джези. Тестирование по стратегии черного ящика / Рассел
Джези. – М. : Мир, 2013 г. – 384с.
62
Приложение А
ГЛОССАРИЙ
(обязательное)
СУБД – системы управления базами данных.
НДС – налог на добавленную стоимость.
63
ERP – Enterprise Resource Planning.
UML – Unified Modeling Language.
ПО – программное обеспечение.
НФ – нормальная форма.
CRM – Customer Relationship Management.
64
Приложение Б
ЛИСТИНГ ПРОГРАММЫ
(обязательное)
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.Хозрасчетный.Записывать = Истина;
65
Движения.ОстаткиТоваров.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Товар = ТекСтрокаТовары.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = ТекСтрокаТовары.Количество;
Движение.Сумма = ТекСтрокаТовары.Сумма;
Движение = Движения.Хозрасчетный.Добавить();
Движение.Период = Дата;
Движение.СчетДт =
ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Конт
рагенты] = Контрагент;
Движение.СчетКт = ПланыСчетов.Хозрасчетный.РасчетныйСчет;
Движение.Сумма = ТекСтрокаТовары.Сумма;
Движение = Движения.Хозрасчетный.Добавить();
Движение.Период = Дата;
Движение.СчетДт = ПланыСчетов.Хозрасчетный.Товары;
Движение.СчетКт =
ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
Движение.СубконтоКТ[ПланыВидовХарактеристик.ВидыСубконто.Конт
рагенты] = Контрагент;
Движение.Сумма = ТекСтрокаТовары.Сумма*0.72;
Движение = Движения.Хозрасчетный.Добавить();
Движение.Период = Дата;
Движение.СчетДт = ПланыСчетов.Хозрасчетный.НДС;
Движение.СчетКт =
ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
66
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Конт
рагенты] = Контрагент;
Движение.Сумма = ТекСтрокаТовары.Сумма*0.18;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыКоличествоПриИзменении(Элемент)
// Вставить содержимое обработчика.
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество
* СтрокаТабличнойЧасти.Цена;
СтрокаТабличнойЧасти.СуммаНДС=УчетНДС.РассчитатьСуммуНДС(Стро
каТабличнойЧасти.Сумма,
УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));
Объект.СуммаДокумента = Объект.Товары.Итог("Сумма");
Объект.СуммаНДС = Объект.Товары.Итог("СуммаНДС");
КонецПроцедуры
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)
// Вставить содержимое обработчика.
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Количество
* СтрокаТабличнойЧасти.Цена;
СтрокаТабличнойЧасти.СуммаНДС=УчетНДС.РассчитатьСуммуНДС(Стро
каТабличнойЧасти.Сумма,
УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));
Объект.СуммаДокумента = Объект.Товары.Итог("Сумма");
Объект.СуммаНДС = Объект.Товары.Итог("СуммаНДС");
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаПриИзменении(Элемент)
// Вставить содержимое обработчика.
67
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.СуммаНДС=УчетНДС.РассчитатьСуммуНДС(Стро
каТабличнойЧасти.Сумма,
УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));
Объект.СуммаДокумента = Объект.Товары.Итог("Сумма");
Объект.СуммаНДС = Объект.Товары.Итог("СуммаНДС");
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСтавкаНДСПриИзменении(Элемент)
// Вставить содержимое обработчика.
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.СуммаНДС=УчетНДС.РассчитатьСуммуНДС(Стро
каТабличнойЧасти.Сумма,
УчетНДС.ПолучитьСтавкуНДС(СтрокаТабличнойЧасти.СтавкаНДС));
Объект.СуммаНДС = Объект.Товары.Итог("СуммаНДС");
КонецПроцедуры
&НаКлиенте
Процедура ТоварыСуммаНДСПриИзменении(Элемент)
// Вставить содержимое обработчика.
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
Объект.СуммаНДС = Объект.Товары.Итог("СуммаНДС");
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные
вручную изменения будут утеряны!!!
// регистр ОстаткиТоваров Приход
Движения.ОстаткиТоваров.Записывать = Истина;
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные
вручную изменения будут утеряны!!!
МенеджерВТ = Новый МенеджерВременныхТаблиц;
68
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос.Текст =
"ВЫБРАТЬ
|
ПеремещениеВРозницуТовары.Номенклатура КАК Товар,
|
СУММА(ПеремещениеВРозницуТовары.Количество) КАК
КоличествоВДокументе,
|
МАКСИМУМ(ПеремещениеВРозницуТовары.ЦенаВРознице) КАК
ЦенаВРознице
|ПОМЕСТИТЬ НоменклатураДокумента
|ИЗ
|
Документ.ПеремещениеВРозницу.Товары КАК
ПеремещениеВРозницуТовары
|
|СГРУППИРОВАТЬ ПО
|
ПеремещениеВРозницуТовары.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
КонецЦикла;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Товар = ТекСтрокаТовары.Номенклатура;
Движение.Склад = СкладОтправитель;
Движение.Количество = ТекСтрокаТовары.Количество;
Движение.Сумма =
ТекСтрокаТовары.Количество*ТекСтрокаТовары.ЦенаВРознице;
КонецЦикла;
69
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
Движения.Записать();
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Запрос3=Новый Запрос;
Запрос3.МенеджерВременныхТаблиц = МенеджерВТ;
Запрос3.Текст = "ВЫБРАТЬ
|
ОстаткиТоваровОстатки.Товар,
|
ОстаткиТоваровОстатки.КоличествоОстаток
|ИЗ
|
РегистрНакопления.ОстаткиТоваров.Остатки(
|
,
|
Товар В
|
(ВЫБРАТЬ
|
НоменклатураДокумента.Товар
|
ИЗ
|
НоменклатураДокумента)
|
И Склад = &Склад) КАК
ОстаткиТоваровОстатки
|ГДЕ
|
ОстаткиТоваровОстатки.КоличествоОстаток <
0";
Запрос3.УстановитьПараметр("Склад", СкладОтправитель);
РезультатЗапроса = Запрос3.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "Не хватает " + Строка (ВыборкаДетальныеЗаписи.КоличествоОстаток) +
" единиц товара " +
ВыборкаДетальныеЗаписи.Товар + """";
Сообщение.Сообщить();
Отказ = Истина;
70
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыПриИзменении(Элемент)
СтрокаТабличнойЧасти = Элементы.Товары.ТекущиеДанные;
СтрокаТабличнойЧасти.Дата = Объект.Дата;
КонецПроцедуры
&НаКлиенте
Процедура ТоварыНоменклатураПриИзменении(Элемент)
СТЧ = Элементы.Товары.ТекущиеДанные;
ТоварыНоменклатураПриИзмененииНаСервере(СТЧ.Номенклатура,СТЧ.
ЦенаВРознице);
КонецПроцедуры
&НаСервере
Процедура
ТоварыНоменклатураПриИзмененииНаСервере(Номенклатура,Цена)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|
ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
|
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата,
Номенклатуры = &Номенклатура) КАК ЦеныНоменклатурыСрезПоследних";
Запрос.УстановитьПараметр("Дата", Объект.Дата);
Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
ЦенаМассив = Запрос.Выполнить().Выгрузить();
Если ЦенаМассив.Количество()<>0 Тогда
Цена = ЦенаМассив[0].Цена;
Иначе
Цена = 0;
КонецЕсли;
КонецПроцедуры
71
Процедура ОбработкаПроведения(Отказ, Режим)
Движения.РозничныеПродажи.Записывать = Истина;
Для Каждого ТекСтрокаТовары Из Товары Цикл
Движение = Движения.РозничныеПродажи.Добавить();
Движение.Период = Дата;
Движение.Товар = ТекСтрокаТовары.Товар;
Движение.Продавец = Продавец;
Движение.Количество = ТекСтрокаТовары.Количество;
Движение.Стоимость = ТекСтрокаТовары.ЦенаВРознице;
Движение.ПродажнаяСтоимость = ТекСтрокаТовары.Сумма;
Движения.Хозрасчетный.Записывать = Истина;
Движение = Движения.Хозрасчетный.Добавить();
Движение.Период = Дата;
Движение.СчетДт = ПланыСчетов.Хозрасчетный.РасчетныйСчет;
Движение.СчетКт =
ПланыСчетов.Хозрасчетный.РасчетыСПокупателями;
Движение.Сумма = ТекСтрокаТовары.Сумма;
Движение = Движения.Хозрасчетный.Добавить();
Движение.Период = Дата;
Движение.СчетДт =
ПланыСчетов.Хозрасчетный.РасчетыСПокупателями;
Движение.СчетКт = ПланыСчетов.Хозрасчетный.Продажи;
Движение.Сумма = ТекСтрокаТовары.Сумма;
Движение = Движения.Хозрасчетный.Добавить();
Движение.Период = Дата;
Движение.СчетДт = ПланыСчетов.Хозрасчетный.Продажи;
Движение.СчетКт = ПланыСчетов.Хозрасчетный.Товары;
Движение.Сумма = ТекСтрокаТовары.Сумма*0.75;
КонецЦикла;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
72
|
ШтатноеРасписаниеСрезПоследних.Период
|ИЗ
|
РегистрСведений.ШтатноеРасписание.СрезПоследних(&Дата, ) КАК
ШтатноеРасписаниеСрезПоследних";
Запрос.УстановитьПараметр("Дата",Дата);
ДатаПоследнегоРасписания = Запрос.Выполнить().Выгрузить();
Движения.ШтатноеРасписание.Записывать = Истина;
Если ДатаПоследнегоРасписания.Количество() = 0 Тогда
Для Каждого ТекСтрокаСписокДолжностей Из
СписокДолжностей Цикл
Движение = Движения.ШтатноеРасписание.Добавить();
Движение.Период = Дата;
Движение.Должность =
ТекСтрокаСписокДолжностей.Должность;
Движение.КолМест =
ТекСтрокаСписокДолжностей.КоличествоМест;
КонецЦикла;
Иначе
ДатаШР = ДатаПоследнегоРасписания[0].Период;
Если Месяц(ДатаШР) = Месяц(Дата) и Год(ДатаШР) =
Год(Дата) Тогда
Отказ = Истина;
Сообщить("В данном месяце штатное расписание уже
было утверждено!");
Иначе
Для Каждого ТекСтрокаСписокДолжностей Из СписокДолжностей
Цикл
Движение = Движения.ШтатноеРасписание.Добавить();
Движение.Период = Дата;
Движение.Должность =
ТекСтрокаСписокДолжностей.Должность;
Движение.КолМест =
ТекСтрокаСписокДолжностей.КоличествоМест;
73
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СписокДолжностейДолжностьПриИзменении(Элемент)
СТЧ = Элементы.СписокДолжностей.ТекущиеДанные;
СписокДолжностейДолжностьПриИзмененииНаСервере(СТЧ.Должность,
СТЧ.Оклад);
КонецПроцедуры
&НаСервере
Процедура
СписокДолжностейДолжностьПриИзмененииНаСервере(Должность, оклад)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|
ЗаработнаяПлатаСрезПоследних.Сумма
|ИЗ
|
РегистрСведений.ЗаработнаяПлата.СрезПоследних(&Дата,
Должность = &Должность) КАК ЗаработнаяПлатаСрезПоследних";
Запрос.УстановитьПараметр("Дата", Объект.Дата);
Запрос.УстановитьПараметр("Должность",Должность);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество()<>0 Тогда
Оклад = РезультатЗапроса[0].Сумма;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
Перепроведение = Истина;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|
Сотрудники.Ссылка
|ИЗ
|
Справочник.Сотрудники КАК Сотрудники
74
|ГДЕ
|
Сотрудники.ФизическоеЛицо = &ФизическоеЛицо";
Запрос.УстановитьПараметр("ФизическоеЛицо",ФизическоеЛицо);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество()= 0 Тогда
Перепроведение = Ложь;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|
СУММА(ВЫБОР
|
КОГДА
СведенияОСотрудникахОстатки.ВидЗанятости =
ЗНАЧЕНИЕ(Перечисление.ВидЗанятости.ОсновноеМестоРаботы)
|
ТОГДА 1
|
ИНАЧЕ 0.5
|
КОНЕЦ) КАК КоличествоЗанятыхМест,
|
СведенияОСотрудникахОстатки.Должность,
|
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ
СведенияОСотрудникахОстатки.Сотрудники) КАК Сотрудники
|ПОМЕСТИТЬ ЗанятыеМеста
|ИЗ
|
РегистрНакопления.СведенияОСотрудниках.Остатки(
|
&Дата,
|
Должность = &Должность
|
) КАК СведенияОСотрудникахОстатки
|
|СГРУППИРОВАТЬ ПО
|
СведенияОСотрудникахОстатки.Должность
|;
|
|////////////////////////////////////////////////////////////
////////////////////
75
|ВЫБРАТЬ
|
ЕСТЬNULL(ШтатноеРасписаниеСрезПоследних.КолМест, 0)
- ЕСТЬNULL(ЗанятыеМеста.КоличествоЗанятыхМест, 0) КАК КолМест
|ИЗ
|
РегистрСведений.ШтатноеРасписание.СрезПоследних(
|
&Дата,
|
Должность = &Должность
|
) КАК ШтатноеРасписаниеСрезПоследних
|
ЛЕВОЕ СОЕДИНЕНИЕ ЗанятыеМеста КАК ЗанятыеМеста
|
ПО ШтатноеРасписаниеСрезПоследних.Должность =
ЗанятыеМеста.Должность";
Запрос.УстановитьПараметр("Дата", Дата);
Запрос.УстановитьПараметр("Должность",Должность);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество()<>0 и
РезультатЗапроса[0].КолМест>0 Тогда
НовыйСотрудник =
Справочники.Сотрудники.СоздатьЭлемент();
ФИО = ФизическоеЛицо.Наименование;
НовыйСотрудник.Наименование =
ФИО;
НовыйСотрудник.ФизическоеЛицо = ФизическоеЛицо;
НовыйСотрудник.Должность = Должность;
НовыйСотрудник.ДатаПринятия = Дата;
НовыйСотрудник.ВидЗанятости = ВидЗанятости;
НовыйСотрудник.ГрафикРаботы = ГрафикРаботы;
НовыйСотрудник.Записать();
Сотрудник =
Справочники.Сотрудники.НайтиПоНаименованию(ФизическоеЛицо.Наименов
ание);
Движения.СведенияОСотрудниках.Записывать = Истина;
76
Движение = Движения.СведенияОСотрудниках.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Сотрудники = Сотрудник;
Движение.Должность = Должность;
Движение.ВидЗанятости = ВидЗанятости;
Движение.Зарплата = Оклад;
Иначе
Отказ = Истина;
Сообщить("Свободных вакансий на данную должность
нет!");
КонецЕсли;
ИначеЕсли Не Перепроведение
Тогда
Отказ = Истина;
Сообщить("Данное физическое лицо уже является сотрудником
фирмы!");
Иначе
Сотрудник =
Справочники.Сотрудники.НайтиПоНаименованию(ФизическоеЛицо.Наименов
ание);
ОбъектСотрудник = Сотрудник.ПолучитьОбъект();
ОбъектСотрудник.Наименование =
ФизическоеЛицо.Наименование;
ОбъектСотрудник.ФизическоеЛицо = ФизическоеЛицо;
ОбъектСотрудник.Должность = Должность;
ОбъектСотрудник.ВидЗанятости = ВидЗанятости;
ОбъектСотрудник.ГрафикРаботы = ГрафикРаботы;
ОбъектСотрудник.ДатаПринятия = Дата;
ОбъектСотрудник.Записать();
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
77
Сотрудник =
Справочники.Сотрудники.НайтиПоНаименованию(ФизическоеЛицо.Наименов
ание);
Если Сотрудник.ДатаУвольнения = Дата(1,1,1) Тогда
ОбъектСотрудник = Сотрудник.ПолучитьОбъект();
ОбъектСотрудник.Удалить();
Иначе
Сообщить("Данный сотрудник уволен,отмена проведения
невозможна!");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ПодразделениеПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПодразделениеПриИзмененииНаСервере()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|
ЗаработнаяПлатаСрезПоследних.Сумма
|ИЗ
|
РегистрСведений.ЗаработнаяПлата.СрезПоследних КАК
ЗаработнаяПлатаСрезПоследних
|ГДЕ
|
ЗаработнаяПлатаСрезПоследних.Должность = &Должность";
Запрос.УстановитьПараметр("Должность", Объект.Должность);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество()<>0 Тогда
Если Объект.ВидЗанятости =
Перечисления.ВидЗанятости.ОсновноеМестоРаботы Тогда
Объект.Оклад = РезультатЗапроса[0].Сумма;
Иначе
Объект.Оклад = РезультатЗапроса[0].Сумма/2;
КонецЕсли;
78
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВидЗанятостиПриИзменении(Элемент)
ПодразделениеПриИзмененииНаСервере();
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
Если Сотрудник.Должность <> Должность Тогда
Отказ = Истина;
Сообщить("Данный сотрудник не работает по специальности:
" + Должность);
КонецЕсли;
Если НЕ Отказ Тогда
ОбъектСотрудник = Сотрудник.ПолучитьОбъект();
ОбъектСотрудник.ДатаУвольнения = Дата;
ОбъектСотрудник.Записать();
Движения.СведенияОСотрудниках.Записывать = Истина;
Движение = Движения.СведенияОСотрудниках.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Сотрудники = Сотрудник;
Движение.Должность = Должность;
Движение.ВидЗанятости = ВидЗанятости;
Движение.Зарплата = Оклад;
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
ОбъектСотрудник = Сотрудник.ПолучитьОбъект();
ОбъектСотрудник.ДатаУвольнения = Дата(1,1,1);
79
ОбъектСотрудник.Записать();
КонецПроцедуры
&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
СотрудникПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура СотрудникПриИзмененииНаСервере()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|
ЗаработнаяПлатаСрезПоследних.Сумма
|ИЗ
|
РегистрСведений.ЗаработнаяПлата.СрезПоследних(&Дата,
Должность = &Должность) КАК ЗаработнаяПлатаСрезПоследних";
Запрос.УстановитьПараметр("Дата", объект.Дата);
Запрос.УстановитьПараметр("Должность",Объект.Должность);
Цена = Запрос.Выполнить().Выгрузить();
Если Цена.Количество()<>0 Тогда
Объект.Оклад = Цена[0].Сумма;
КонецЕсли;
Объект.Должность = Объект.Сотрудник.Должность;
Объект.ВидЗанятости = Объект.Сотрудник.ВидЗанятости;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|
|ИЗ
НачисленияСотрудникамОбороты.Регистратор
80
|
РегистрНакопления.НачисленияСотрудникам.Обороты(, ,
Регистратор, ) КАК НачисленияСотрудникамОбороты
|ГДЕ
|
МЕСЯЦ(НачисленияСотрудникамОбороты.Регистратор.Дата) = &Месяц
|
И
ГОД(НачисленияСотрудникамОбороты.Регистратор.Дата) = &Год";
Запрос.УстановитьПараметр("Месяц", Месяц(Дата));
Запрос.УстановитьПараметр("Год", Год(Дата));
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Если РезультатЗапроса.Количество()<>0 Тогда
Отказ = Истина;
Сообщить("В этом месяце заработная плата уже
начислялалась!");
КонецЕсли;
Если не Отказ Тогда
Движения.НачисленияСотрудникам.Записывать = Истина;
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
|
НачислениеЗарплатыСотрудники.НДФЛ,
|
НачислениеЗарплатыСотрудники.Результат,
|
НачислениеЗарплатыСотрудники.Начисление * 0.22 КАК
|
НачислениеЗарплатыСотрудники.Начисление * 0.029 КАК
|
НачислениеЗарплатыСотрудники.Начисление * 0.051 КАК
|
НачислениеЗарплатыСотрудники.Сотрудник
ПФР,
ФСС,
ФФОМС,
|ИЗ
|
Документ.НачислениеЗарплаты.Сотрудники КАК
НачислениеЗарплатыСотрудники
|ГДЕ
81
|
НачислениеЗарплатыСотрудники.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Движение =
Движения.НачисленияСотрудникам.Добавить();
Движение.Период = Дата;
Движение.Сотрудник = Выборка.Сотрудник;
Движение.Зарплата = Выборка.Результат;
Движение.НДФЛ = Выборка.НДФЛ;
Движение.ПФР = Выборка.ПФР;
Движение.ФСС = Выборка.ФСС;
Движение.ФФОМС = Выборка.ФФОМС;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РасчитатьЗарплату(Команда)
РасчитатьЗарплатуНаСервере();
КонецПроцедуры
&НаСервере
Процедура РасчитатьЗарплатуНаСервере()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|
Сотрудники.Ссылка КАК Сотрудник,
|
ЗаработнаяПлатаСрезПоследних.Сумма КАК
|
ЗаработнаяПлатаСрезПоследних.Сумма * 0.13
|
ЗаработнаяПлатаСрезПоследних.Сумма -
Начисление,
КАК НДФЛ,
ЗаработнаяПлатаСрезПоследних.Сумма * 0.13 КАК Результат,
|
КАК ПФР,
ЗаработнаяПлатаСрезПоследних.Сумма * 0.22
82
|
ЗаработнаяПлатаСрезПоследних.Сумма * 0.029
|
ЗаработнаяПлатаСрезПоследних.Сумма * 0.051
|
Сотрудники.Должность
КАК ФСС,
КАК ФФОМС,
|ИЗ
|
Справочник.Сотрудники КАК Сотрудники
|
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрСведений.ЗаработнаяПлата.СрезПоследних(&Дата, ) КАК
ЗаработнаяПлатаСрезПоследних
|
ПО Сотрудники.Должность =
ЗаработнаяПлатаСрезПоследних.Должность
|ГДЕ
|
Сотрудники.ДатаУвольнения = ДАТАВРЕМЯ(1,
1, 1, 0, 0, 0)";
Запрос.УстановитьПараметр("Дата",Объект.Дата);
РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Объект.Сотрудники.Загрузить(РезультатЗапроса);
Объект.Взносы.Загрузить(РезультатЗапроса);
КонецПроцедуры
83
Приложение В
РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ
(обязательное)
84
Рисунок В.1 – Подстановка Цены, Количества и расчет Суммы для данного
товара и Суммы по документу в документе Приходная накладная
Рисунок В.2 – Расчет Суммы НДС для данного товара и Суммы НДС для всего
документа в документе приходная накладная
85
Рисунок В.3 – Подстановка Даты при выборе Наименования в документе
Перемещение в розницу
Рисунок В.4 – Попытка занести в справочник Номенклатура товар, который
уже существует
86
Рисунок В.5 – Вывод сообщения при попытке переместить в розницу
количество товара, которое превышает количество товара на складе
Рисунок В.6 – Вывод сообщения при попытке розничной продаже товара,
которое превышает количество товара на складе
87
Рисунок В.7 – Автоматическое заполнение табличных частей документа
Начисление зарплаты при активации кнопки «Рассчитать зарплату»
Рисунок В.8 – Создание документа принятие на работу
Рисунок В.9 – Автоматически созданный элемент справочника, после
проведения документа Принятие на работу
88
Рисунок В.10 – Вывод сообщения при попытке начисления заработной платы
дважды за месяц
Рисунок В.11 – Вывод сообщения при попытке утверждения штатного
расписания дважды за месяц
89
Рисунок В.12 – Вывод сообщения при попытке принятия сотрудника на
закрытую вакансию
Рисунок В.13 – Создание документа Увольнение
90
Рисунок В.14 – Автоматически заполненный реквизит Дата увольнения при
проведении документа увольнения
Рисунок В.15 – Сформированный отчет Оборотно-сальдовая ведомость
движения товаров за период на выбранном складе
91
Рисунок В.16 – Сформированный отчет по розничным продажам за выбранный
период
Рисунок В.17 – Сформированный отчет по начислениям сотрудникам
Рисунок В.18 – Сформированный отчет о свободных вакансиях
92
Рисунок В.19 – Сформированный отчет о свободных вакансиях
Рисунок В.20– Выгрузка табличной части документа ПеремещениеВРозницу в
файл excel
Рисунок В.21 – Загрузка данных из файла xml в конфигурацию и формирование
на их основе документа РозничнаяПродажа
93
Приложение Г
ГРАФИЧЕСКАЯ ЧАСТЬ
(рекомендуемое)
94
Рисунок Г.1 – Логическая модель данных
Рисунок Г.2 – Диаграмма вариантов использования
95
Рисунок Г.3 – Диаграмма деятельности
Рисунок Г.4 – Диаграмма состояния
96
Рисунок Г.5 – Диаграмма последовательности
Рисунок Г.6 – Диаграмма кооперации
97
Рисунок Г.7 – Диаграмма объектов
98
Приложение Д
СУЩНОСТИ ЛОГИЧЕСКОЙ МОДЕЛИ ДАННЫХ
(рекомендуемое)
Таблица Д.1 – Сущность «Состав Расход»
99
Имя атрибута
Id_накладной
Id_номенклатуры
Количество
Цена
Ключевой параметр
PK (FK)
PK (FK)
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Таблица Д.2 – Сущность «Цены номенклатуры»
Имя атрибута
Id_Цены
Дата
Цена
Id_номенклатуры
Ключевой параметр
PK
FK
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Таблица Д.3 – Сущность «Номенклатура»
Имя атрибута
Id_номенклатуры
Наименование
Единица измерения
Ключевой параметр
PK
Нулевое значение
Недопустимо
Недопустимо
Допустимо
Таблица Д.4 – Сущность «Поставщики»
Имя атрибута
Id_Поставщика
Полное наименование
Наименование
Телефон
Фактический адрес
Факс
Юридический адрес
E-mail
ИНН
СНИЛС
Код по ОКПО
Ключевой параметр
PK
Таблица Д.5 – Сущность «Розничные продажи»
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Допустимо
Допустимо
Допустимо
Допустимо
Допустимо
Недопустимо
Недопустимо
Недопустимо
100
Имя атрибута
Id_продажи
Дата
Id_склада
Id_сотрудник
Комментарий
Вид оплаты
Ключевой параметр
PK
FK
FK
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Допустимо
Недопустимо
Таблица Д.6 – Сущность «Склад»
Имя атрибута
Id_склада
Наименование
Id_сотрудник
Вид склада
Ключевой параметр
PK
FK
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Таблица Д.7 – Сущность «Список номенклатуры»
Имя атрибута
Id_номенклатуры
Id_склада
Количество
Ключевой параметр
PK (FK)
PK (FK)
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Таблица Д.8 – Сущность «Приходная накладная»
Имя атрибута
Id_накладной
Дата
Id_контрагента
Id_склада
Основание
поступления
Комментарий
Ключевой параметр
PK
FK
FK
Таблица Д. 9 – Сущность «Состав приход»
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Допустимо
101
Имя атрибута
Id_номенклатуры
Id_накладной
Количество
Цена
Ставка НДС
Ключевой параметр
PK (FK)
PK (FK)
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Таблица Д.10 – Сущность «Заработная плата»
Имя атрибута
Id_зарплаты
Сумма
Дата
Id_должности
Ключевой параметр
PK
FK
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Таблица Д.11 – Сущность «Принятие на работу»
Имя атрибута
Id_принятия на работу
Дата
Id_должности
Id_физлица
Оклад
Ключевой параметр
PK
FK
FK
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Таблица Д.12 – Сущность «Сотрудники»
Имя атрибута
Id_сотрудника
Id_физлица
Дата принятия
Дата увольнения
Id_должности
Ключевой параметр
PK
FK
Таблица Д.13 – Сущность «Увольнение»
FK
Нулевое значение
Недопустимо
Недопустимо
Допустимо
Допустимо
Недопустимо
102
Имя атрибута
Id_увольнения
Дата
Id_сотрудника
Id_должности
Ключевой параметр
PK
FK
FK
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Таблица Д.14 – Сущность «Список сотрудников»
Имя атрибута
Id_начисления
Id_сотрудника
Id_должности
Начисления
Ключевой параметр
PK (FK)
PK (FK)
FK
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Таблица Д.15 – Сущность «Начисления зарплаты»
Имя атрибута
Id_начисления
Дата
Ключевой параметр
PK
Нулевое значение
Недопустимо
Недопустимо
Таблица Д.16 – Сущность «Штатное расписание»
Имя атрибута
Id_расписания
Дата
Ключевой параметр
PK
Нулевое значение
Недопустимо
Недопустимо
Таблица Д.17 – Сущность «Список должностей»
Имя атрибута
Id_записи
Id_расписания
Id_должности
Количество
Оклад
Ключевой параметр
PK
PK (FK)
FK
Таблица Д.18 – Сущность «Должности»
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Недопустимо
103
Имя атрибута
Id_должности
Название
Требования
Ключевой параметр
PK
Нулевое значение
Недопустимо
Недопустимо
Допустимо
Таблица Д.19 – Сущность «Перемещение в розницу»
Имя атрибута
Id_перемещения
Дата
Id_склада
Ключевой параметр
PK
FK
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Таблица Д. 20 – Сущность «Состав перемещения»
Имя атрибута
Id_номенклатуры
Id_перемещения
Количество
Цена
Ключевой параметр
PK (FK)
PK (FK)
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Таблица Д.21 – Сущность «Физические лица»
Имя атрибута
Id_физлица
Фамилия
Имя
Отчество
ИНН
СНИЛС
Дата рождения
Пол
Ключевой параметр
PK
Нулевое значение
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Недопустимо
Download