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

Разработка конфигурации Магазин «Продукты» на платформе 1С:Предприятие

Содержание:

Введение

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

Работа современного магазина невозможна без отлаженной и эффективной системы автоматизации розничной торговли. Это обусловлено, как минимум, наличием системы штрихового кодирования, что приводит к необходимости использования компьютеризированного торгового оборудования (POS-терминалов, фискальных регистраторов, принтеров штрих-кодов (этикеток), сканеров штрих-кодов, терминалов сбора данных и т.д.), которое должно быть интегрировано в систему автоматизации розничной торговли.

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

Реализация - основной объемный показатель деятельности предприятия. Процессом реализации является совокупность хозяйственных операций, связанных со сбытом и продажей продукции.

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

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

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

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

- определить требования к разрабатываемому программному продукту, оценить риски и возможные дефекты на этапах жизненного цикла программы;

- разработать архитектуру программы, структуру объектов конфигурации, алгоритмы обработки информации;

- реализовать и протестировать программу.

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

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

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

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

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

1. Краткий анализ предметной области

1.1. Характеристика предприятия и его деятельности

ИП Семенова Любовь Анатольевна образовано 9 августа 2011 г.

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

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

- торговля розничная пищевыми продуктами, напитками и табачными изделиями в специализированных магазинах;

- предоставление прочих персональных услуг, не включенных в другие группировки.

За счет грамотной ассортиментной и ценовой политики в 2012-2014гг. предприятие завоевало популярность среди жителей ближайших жилых микрорайонов.

Основные технико-экономические показатели деятельности предприятия приведены в таблице 1.

Таблица 1

Основные технико-экономические показатели деятельности предприятия

Наименование характеристики (показателя)

Значение показателя

Выручка от продажи товаров, продукции, работ, услуг за 2017 год, тыс. руб

11891

Выручка от продажи товаров, продукции, работ, услуг за 2018 год, тыс. руб

14435

Рост выручки за 2018 год по сравнению с 2017 годом, тыс.руб.

2544

Среднесписочная численность персонала в 2018 г оду, чел

10

1.2. Организационная структура управления предприятием

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

Организационная структура управления предприятием показана на рисунке 1.

Рисунок 1 – Организационная структура управления

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

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

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

Охрана выполняет функции наблюдения за торговым залом и охраны магазина.

2. Анализ существующего программного обеспечения, позволяющего решить поставленную задачу

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

Локальная сеть организована по топологии «Звезда» и имеет два сегмента – в торговом зале и внутренних помещениях.

Описание используемого оборудования приведено в таблице 2.

Таблица 2

Характеристики оборудования

Оборудование

Характеристики

Коммутатор TP-LINK TL-SF1016D

Неуправляемый коммутатор, 16 портов базовая скорость передачи данных до 10/100 Мбит/с

Коммутатор TP-LINK TL-SF1008D

Неуправляемый коммутатор, 8 портов базовая скорость передачи данных до 10/100 Мбит/с

Точка доступа

TP-LINK TL-WA901ND, стандарт 802.11 b/g/n

Рабочие станции директора, бухгалтера, администратора, поста охраны

  • Системныеблоки XTEND-11417 Intel Celeron Dual Core E3200 2,4 GHz / 1024 / 250 / Intel X3100 256 Mb [50114174111].
  • Мониторы TFT 20 LG Flatron W2043S-PF Glossy Black DFC 30000:1 300cd/m2 5ms 16:9 Wide;
  • Мышьиклавиатура (комплекты) Logitech Wireless Desktop MK320;

МФУ директора, бухгалтера, администратора

HP LaserJet Pro MFP M28w. Скорость почати до 18 страниц в минуту. Максимальное разрешение печати в черно-белом формате цветности достигает 600x600 dpi. Сканирование изображение осуществляется сканером с оптическим разрешением 1200x1200 dpi. 

Сервер БД, файл-сервер, почтовый сервер

Fujitsu Siemens PRIMERGY RX330 AMD Opteron 2216 HE 2.4 ГГц 300 ГБ 10000 об./мин., Вр.доступа 4.5 мс, Внешняя скорость передачи данных 320 Мб/сек.

Терминалы кассиров

  • СистемныеблокиIntel Celeron G3930 (2.9GHz), 4096MB, 500GB, Shared VGA, DVD±RW, 350W, 
  • Мониторы TFT 20 LG Flatron W2043S-PF Glossy Black DFC 30000:1 300cd/m2 5ms 16:9 Wide;
  • Мышьиклавиатура (комплекты) Logitech Wireless Desktop MK320;

Схема технической архитектуры приведена на рисунке 2.

Рисунок 2 – Техническая архитектура

Существующая аппаратная архитектура актуальна для продуктового магазина. В соответствии с действующим законодательством терминалы кассиров оборудованы онлайн-кассами и POS-терминалами.

На рабочих станциях стоит следующее программное обеспечение:

  1. Операционная система рабочих станций и ноутбуков MS Windows 7;
  2. Пакет прикладных программ MSOffice 2013;
  3. Антивирусное программное обеспечение ESETNOD32 BusinessEdition.

На серверах установлена операционная система MS Windows Server 2008. На сервере базы данных установлена СУБД Microsoft SQL Server 2012 и серверная часть системы 1С:Бухгалтерия. Для доступа к данным на рабочем компьютере бухгалтера установлено клиентское приложение 1С:Бухгалтерия. На файловом сервере установлена также правовая система «КонсультантПлюс», которая обеспечивает доступ сотрудников компании ко всей правовой информации (законам, актам, распоряжениям, постановлениям и т. д.).

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

Рисунок 3 – Программная архитектура

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

3. Обоснование выбора системы для разработки прикладного решения

3.1. Сравнительный анализ готовых решений

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

Для примера рассмотрим наиболее популярные программные продукты:

  1. 1С:Розница:универсальное решение для управления розничной торговлей. Полностью автоматизирует все основные бизнес-процессы как отдельного магазина, так и крупной розничной сети. Позволяет организовать эффективное управление продажами и закупками, запасами и складом, персоналом магазина, ассортиментом и ценообразованием, маркетинговыми акциями и системами лояльности. Автоматизирует рабочее место кассира. Обеспечивает оперативное формирование отчетов для мониторинга и анализа показателей работы торговых точек [6];
  2. Штрих-М:Розничная торговля: программа объединяющая в себе возможности кассовой программы и программы для товарного учёта. Прекрасное решения для автоматизации небольших магазинов продуктовой и непродуктовой розницы [7].
  3. TradeMaster: веб-приложение для управленческого учёта и торгового учёта. При проведении любых движений в программе автоматически формируются документы: товарный чек, ТОРГ-12, товарные накладные, коммерческие предложения, счета на оплату, заказы в производство и доставку и т.п. Поддержка он-лайн кассы для 54-ФЗ [8].

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

  1. Возможность автоматизации полного цикла торговли (от закупок до реализации);
  2. Возможность применения систем лояльности;
  3. Возможность доработки по требованиям клиента;
  4. Возможность интеграции с имеющимися программами на предприятии;
  5. Наличие Web-интерфейса;
  6. Возможность удаленной работы с системой;
  7. Стоимость готового решения.

Сравнительный анализ приведен в таблице 3.

Таблица 3

Сравнительный анализ систем автоматизации

Параметры

1С:Розница 8

Штрих-М:Розничная торговля

TradeMaster

Возможность автоматизации полного цикла торговли

Есть

Есть

Есть

Возможность применения систем лояльности

Есть

Есть

Нет

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

Есть (своими силами или силами представителя фирмы-производителя)

Нет

Нет

Возможность интеграции с имеющимися программами на предприятии

Есть

Есть (через настройку обмена с базами системы 1С)

Нет

Наличие Web-интерфейса

Есть

Нет

Есть

Возможность удаленной работы с системой

Есть

Есть

Есть

Стоимость готового решения

13000+6300 раб/место

14000 + 9000 раб/место

От 5000 руб/месяц

Как видно из таблицы, наиболее выгодным и полноценным с точки зрения рассматриваемых параметров является система 1С:Розница 8.

3.2. Сравнительный анализ способов приобретения ИС

Приобретение информационной системы может быть осуществлено несколькими способами:

- покупка готового решения;

- покупка готового решения и его доработка по требованиям предприятия;

- заказ оригинального решения «под ключ»;

- собственная разработка решения.

Сравнительный анализ способов приобретения ИС приведен в таблице 4.

Таблица 4

Сравнительный анализ способов приобретения ИС

Способ приобретения

Достоинства и недостатки способа приобретения

Покупка готового решения

Достоинства:

- простота решения;

- быстрое воплощение решения.

Недостатки:

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

- высокая стоимость готовых решений;

- невозможность доработки, модернизации.

Покупка и доработка решения

Достоинства:

- простота решения;

- быстрое воплощение решения;

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

Недостатки:

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

- высокая стоимость готовых решений.

Заказ решения «под ключ»

Достоинства:

- учитывает все требования заказчика вплоть до интерфейса системы;

- обычно предполагает обучение персонала и сопровождение системы, то есть возможность доработки и модернизации;

- отсутствуют излишние функции в программе.

Недостатки:

- высокая стоимость разработки.

Собственная разработка

Достоинства:

- учитывает все требования заказчика вплоть до интерфейса системы;

- обычно предполагает обучение персонала и сопровождение системы, то есть возможность доработки и модернизации;

- отсутствуют излишние функции в программе.

- невысокая стоимость разработки.

Недостатки:

- возможно потребуется длительное время для разработки решения

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

3.3. Сравнительный анализ компаний – разработчиков ИС

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

  1. Компания «1С» -ведущий российский разработчик ПО, специализируется на разработке, дистрибьюции, издании и поддержке компьютерных программ делового и домашнего назначения.«1С» работает с пользователями через разветвленную партнерскую сеть, которая включает более 10 000 постоянных партнеров в 600 городах 25 стран.По итогам 2007 года компания занимает 14,4 % российского рынка ERP в денежном выражении. В 2008 году фирма вышла на второе место на рынке ERP России, увеличив свою долю до 18,7 % в денежном выражении [9].
  2. Компания «Штрих-М» - ведущий российский разработчик и производитель высокотехнологичных систем автоматизации бизнеса, один из пионеров отрасли автоматизации торговли в России.На сегодняшний день группа компаний «Штрих-М» - крупнейший холдинг, владеющий четырьмя заводами в Центральном федеральном округе, оснащенными по последнему слову техники [10].
  3. Компания «АТОЛ» - лидер в области автоматизации ритейла и сферы услуг. По данным авторитетного аналитического агентства «Cnews Analytics», в 2017 г. компания заняла 1 место рейтинга «Крупнейшие поставщики ИТ в рознице». Специализируется на разработке и поставке оборудования и программного обеспечения для автоматизации front-офиса сетевого и независимого ритейла (food и non-food), кафе, ресторанов, гостиниц, сферы услуг [11].

Для выполнения сравнительного анализа рассмотрим следующие параметры:

1) продолжительность работы компании на рынке,

2) штат компании,

3) партнеры компании,

4) используемые платформы,

5) гарантии компании.

Результат сравнительного анализа показан в таблице 5.

Таблица 5

Сравнительный анализ компаний – разработчиков ИС

Параметры

Штрих-М

АТОЛ

Продолжительность работы компании на рынке

С 1991 года

С 1987 года

С 2001 года

Штат компании

партнерская сетьвключает более 10 000 постоянных партнеров в 600 городах 25 стран

более 600 авторизованных организаций и свыше 1500 сервисных центров в России и СНГ

порядка 700 аккредитованных при АТОЛ Центров сервисного обслуживания, а также более 100 авторизованных сервис-партнёров

Партнеры компании

продуктовые розничные сети «Пятёрочка», «Магнит», а также ОАО «КамАЗ», ФГУП «Почта России», Банк Газпромбанк (АО), ООО «Издательство «Эксмо», ОАО «РЖД» и т.д.

продуктовые розничные сети «Пятёрочка», «Магнит», «Auchan», «Globus» и др.; непродуктовые сети «Эльдорадо», «М.Видео», и т.д.; операторы сотовой связи МТС, «Вымпелком» («Билайн») и «Мегафон», сети АЗС Роснефть, ТНК-BP, Татнефть, Лукойл

продуктовые розничные сети «Магнит», «Окей», «Мария Ра», операторы сотовой связи МТС, «Вымпелком» («Билайн») и «Мегафон», непродуктовые сети «Связной», «Евросеть», сети быстрого питания «Бургер Кинг», «KFC», а также ОАО "РЖД", Сбербанк и т.д.

Используемые платформы

Microsoft Windows и Linux

Microsoft Windows и Linux

Linux, Windows, macOS, Android и iOS

Гарантии компании

В пределах техподдержки

В пределах техподдержки

В пределах техподдержки

Как видно из таблицы, выбранные фирмы-разработчики ИС имеют практически одинаковые показатели.

4. Обоснование требований к разрабатываемому прикладному решению

4.1. Сравнительный анализ стратегий внедрения ИС

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

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

1. Параллельная стратегия - подразумевает одновременную работу старой (ручной) и новой систем, и их выходные документы сравниваются. Если они согласуются длительное время, осуществляется переход на новую систему.

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

3. «Пилотный проект» - это тактика «скачка», но применяемая к ограниченному числу процессов. Область применения стратегии - небольшой участок деятельности. Такой подход снижает риск и наиболее надежен.

4. «Узкое место» - предполагает, что план внедрения выполняется только для «узкого места» и для людей, работающих в нем. Точность данных повышается только для изделий в этом «узком месте»; переподготовка - только для людей, работающих в нем; анализ эффекта затрат делается только для него и т.д.[2].

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

Сравнительный анализ стратегий внедрения приведен в таблице 6.

Таблица 6

Сравнительный анализ стратегий внедрения ИС

Стратегия внедрения

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

Параллельная стратегия

Достоинства:

- Безопасно с точки зрения непрерывности технологического процесса

Недостатки:

- Высокие трудозатраты за счет одновременного ведения учета в двух системах

Скачок

Достоинства:

- Быстрый переход на новую систему

Недостатки:

- Небезопасно с точки зрения непрерывности технологического процесса

Пилотный проект

Достоинства:

- Быстрый переход на новую систему

Недостатки:

- Небезопасно с точки зрения непрерывности технологического процесса

- Применимо только для ограниченного числа процессов

Узкое место

Достоинства:

- Быстрый переход на новую систему

Недостатки:

- Применимо только для ограниченного числа процессов

5. Анализ среды разработки

5.1. Риски разработки и внедрения ИС

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

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

Вероятность возникновения риска - вероятность того, что событие риска наступит. Все риски имеют вероятность больше нуля и меньше 100%. Риск с вероятностью 0 не может произойти и не считается риском. Риск с вероятностью 100% также не является риском, поскольку это достоверное событие, которое должно быть предусмотрено планом проекта [4].

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

Традиционно выделяются следующие основные этапы жизненного цикла информационных систем:

  1. анализ требований,
  2. проектирование,
  3. реализация,
  4. внедрение,
  5. эксплуатация и сопровождение.

Возможные риски на каждом этапе жизненного цикла приведены в таблице 7.

Таблица 7

Риски разработки и внедрения ИС

Этап жизненного цикла

Возможные риски

Пути снижения вероятности возникновения

Анализ требований

  1. Незаинтересованность руководителей в проекте
  2. Некачественное описание предметной области
  3. Неточно указанные функции подсистем

1) Определить экономическую эффективность проекта

2) Использовать Case-средства для описания предметной области

3) Принимать участие в разработке требований

Проектирование

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

1) На этапе анализа требований утвердить окончательный вариант требований;

2) Использовать Case-средства для моделирования данных

3) Выполнить анализ имеющихся программных и технических средств

Реализация

  1. Риск неверного технического решения
  2. Низкая производительность исполнителя
  3. Недостаточность технических и программных средств для реализации поставленных задач

1) Анализ возможных технических решений для выбора оптимального

2) Разработка календарного плана разработки с запасом по срокам

3) Предусмотреть наращивание программных и технических средств

Внедрение

  1. Сложность переноса больших объемов данных в новую информационную базу
  2. Неготовность персонала к переходу на новую систему учета
  3. Проблемы установки платформы на ПК пользователя

1) Проработать и согласовать детальный план перехода на новую систему учета

2) Разработать детальные инструкции для персонала

3) Определить требуемую конфигурацию ПК заранее и при необходимости провести модернизацию ПК

Эксплуатация и сопровождение

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

1) Выполнять замеры производительности с определением и устранением узких мест

2,3) Разработать подробное руководство пользователя и инструкции для персонала

5.2. Возможные дефекты ИС

Дефект – это несоответствие результата выполнения программы ожидаемому результату.

Возможные дефекты на каждом этапе жизненного цикла приведены в таблице 8.

Таблица 8

Дефекты ИС

Этап жизненного цикла

Возможные дефекты и ошибки

Пути снижения вероятности возникновения

Анализ требований

1) Недостаточно полное описание требуемых функций

2) Недостаточно полное описание возможных вариантов поведения системы

3) Неполное описание возможных нештатных ситуаций

ИспользованиеCase-средства для моделирования поведения системы

Проектирование

1) Неправильное алгоритмическое описание обработки информации

2) Проектирование модели информационной базы, не обеспечивающей ее целостность

3) Отсутствие согласованности модулей при проектировании

1) Проектирование алгоритмов по принципу «сверху вниз» или «снизу вверх»

2) Выполнение нормализации информационной базы

3) Использование Case-средств при проектировании модульной структуры

Реализация

  1. Ошибки из-за неправильной записи математических выражений;
  2. Ошибки из-за неправильного программирования логики алгоритмов
  3. Ошибки несовместимости данных

Выполнять модульную отладку и тестирование

Внедрение

  1. Некорректная интеграция с имеющимися информационными системами
  2. Некорректный перенос данных в новую систему
  3. Проблемы с многопользовательским доступом в систему
  1. Проработать синхронизацию на уровне данных и протоколов обмена
  2. Выполнить пробное наполнение системы на этапе отладки
  3. Предусмотреть механизм блокирования транзакций при многопользовательском доступе

Эксплуатация и сопровождение

1) Отсутствие адекватной реакции на неправильные действия пользователей

2) Возможно несохранение данных при неправильном отключении системы

3) Возможно несохранение данных при сбоях технической системы

1) Предусмотреть все возможные действия пользователя на этапе реализации

2-3) Предусмотреть регулярную систему резервного копирования

5.3. Разграничение прав доступа к ИС

Права доступа — совокупность правил, регламентирующих порядок и условия доступа субъекта к объектам информационной системы (информации, её носителям, процессам и другим ресурсам) установленных правовыми документами или собственником, владельцем информации.

Права доступа определяют набор действий (например, чтение, запись, выполнение), разрешённых для выполнения субъектам (например, пользователям системы) над объектами данных. Для этого требуется некая система для предоставления субъектам различных прав доступа к объектам. Это система разграничения доступа субъектов к объектам, которая рассматривается в качестве главного средства защиты от несанкционированного доступа к информации или порче самой системы [1].

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

Таблица 9

Разграничение прав доступа к ИС

Группы пользователей

Работа со справочниками

Модуль продажи

Модуль поступления

Модуль формирования отчетности

Администратор системы

Полный

Полный

Полный

Полный

Менеджер

Полный

Чтение и запись

Чтение и запись

Полный

Продавец

Только чтение

Полный

Полный

Только чтение

Руководитель

Чтение и запись

Чтение и запись

Чтение и запись

Чтение и запись

6. Архитектура разрабатываемого прикладного решения

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

  1. Оформление поступления товаров от поставщиков;
  2. Оформление продажи товаров покупателям;
  3. Формирование отчетности;
  4. Ведение справочников.

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

  1. Модуль работы со справочниками;
  2. Модуль продажи;
  3. Модуль поступления;
  4. Модуль формирования отчетности.

Схема взаимодействия модулей приведена на рисунке 4.

Рисунок 4 – Схема взаимодействия модулей

Модуль продажи включает:

  1. Функцию оформления продажи;
  2. Функцию оформления возврата;
  3. Функцию расчета скидок;
  4. Функцию определения остатков товаров на складе.

Модуль поступления включает:

  1. Функцию оформления поступления товаров от поставщика;
  2. Функцию установки цены товаров;
  3. Функцию автоматического формирования заказа на поставку по остаткам на складе.

Модуль работы со справочниками включает функции:

  1. Заполнения справочников;
  2. Редактирования справочников;
  3. Удаление элементов справочников.

Модуль формирования отчетности включает функции формирования отчетов по установленным параметрам пользователей.

Поскольку система реализуется на платформе 1С, то она имеет архитектуру клиент-сервер. Информационная база хранится на сервере баз данных предприятия, а клиенты имеют доступ к ней по локальной сети.

7. Алгоритмы взаимодействия объектов конфигурации

Объекты конфигурации 1С представлены в основном следующими базовыми объектами конфигурации:

- перечисления;

- справочники;

- документы;

- регистры (сведений, накопления, расчета, бухгалтерии);

- отчеты [5].

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

Рисунок 5 – Схема взаимодействия объектов конфигурации

Справочник «Товары» является центральным справочником системы, в котором содержится информация о продаваемых в магазине продуктах. Справочник использует элементы двух других справочников – «Единицы измерения» и «Производители».

Справочник «Типы цен» содержит типы цен, по которым магазин может реализовывать товары. Для того, чтобы избежать ошибок при начале работы и в дальнейшем при продаже, в справочник вводится предопределенный элемент «Основная».

Справочник «Поставщики» содержит информацию о поставщиках товаров. Он используется справочником «Товары» для указания основного поставщика каждого товара.

Справочники «Пользователи» и «Кассы» содержат информацию о кассирах и кассах соответственно.

Документ «Продажа» отражает факт продажи. В документе используются справочники: «Кассы», «Пользователи», «Товары», «Типы цен». Документ формирует движения:

- Приход по регистру «Деньги в кассе»;

- Расход по регистру «Товары на складе».

Модули документа «Продажа» содержат следующие алгоритмы обработки:

- алгоритм определения остатков товара на складе – для контроля количества продаваемого товара;

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

- алгоритм определения цены товара на основании запроса к регистру «Цены на товары»;

- алгоритм формирования проводок по регистрам.

Документ «Возврат» отражает факт возврата товара покупателем. Документ вводится и заполняется на основании документа «Продажа». В документе используются справочники: «Кассы», «Пользователи», «Товары», «Типы цен». Документ формирует движения:

- Расход по регистру «Деньги в кассе»;

- Приход по регистру «Товары на складе».

Модули документа «Возврат» содержат следующие алгоритмы обработки:

- алгоритм заполнения документа на основании документа «Продажа»;

- алгоритм формирования проводок по регистрам.

Документ «Инкассация» отражает факт изъятия денег из кассы при закрытии смены. В документе используются справочник «Кассы. Документ формирует движения:

- Расход по регистру «Деньги в кассе»;

Модуль документа «Инкассация» содержит алгоритм формирования проводок по регистрам.

Документ «Поступление» отражает факт поступления товаров от поставщиков. В документе используются справочники: «Товары», «Поставщики». Документ формирует движения:

- Приход по регистру «Товары на складе».

Модули документа «Поступление» содержит алгоритм формирования проводок по регистрам.

Документ «Установка цены» устанавливает цену на товары. В документе используются справочники: «Товары», «Типы цен». Документ формирует движения по регистру сведений «Цены товаров». Документ может быть сформирован на основании документа «Поступление».

Модули документа «Установка цены» содержит следующие алгоритмы обработки:

- алгоритм ввода на основании и заполнения документа на основании документа «Поступление»;

- алгоритм формирования проводок по регистрам.

8. Описание основных объектов (элементов) разрабатываемого прикладного решения

Разработанное прикладное решение содержит следующие объекты конфигурации:

  1. Справочники:

- Справочник «Единицы измерения» (таблица 10)

Таблица 10

Реквизиты справочника «Единицы измерения»

Реквизит

Тип данных

Точность

Примечание

Код

Строка

9

Уникальный

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

Строка

25

Сокращенное Наименование

Строка

10

- Справочник «Производители» (таблица 11)

Таблица 11

Реквизиты справочника «Производители»

Реквизит

Тип данных

Точность

Примечание

Код

Строка

9

Уникальный

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

Строка

25

Полное наименование

Строка

80

Страна

Строка

80

- Справочник «Поставщики» (таблица 12)

Таблица 12

Реквизиты справочника «Производители»

Реквизит

Тип данных

Точность

Примечание

Код

Строка

9

Уникальный

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

Строка

25

Полное наименование

Строка

80

ИНН

Строка

14

Адрес

Строка

100

Телефон контактного лица

Строка

100

- Справочник «Товары» (таблица 13)

Таблица 13

Реквизиты справочника «Товары»

Реквизит

Тип данных

Точность

Примечание

Код

Строка

9

Уникальный

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

Строка

25

Полное наименование

Строка

80

Единица измерения

СправочникСсылка.ЕдиницыИзмерения

Производитель

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

Минимальный остаток

Число

10.2

Максимальный остаток

Число

10.2

Основной поставщик

СправочникСсылка.Поставщики

- Справочник «Кассы» (таблица 14)

Таблица 14

Реквизиты справочника «Кассы»

Реквизит

Тип данных

Точность

Примечание

Код

Строка

9

Уникальный

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

Строка

25

- Справочник «Пользователи» (таблица 15)

Таблица 15

Реквизиты справочника «Пользователи»

Реквизит

Тип данных

Точность

Примечание

Код

Строка

9

Уникальный

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

Строка

25

- Справочник «Типы цен» (таблица 16)

Таблица 16

Реквизиты справочника «Типы цен»

Реквизит

Тип данных

Точность

Примечание

Код

Строка

9

Уникальный

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

Строка

25

Описание

Строка

100

  1. Документы:

- Документ «Установка цен» (таблица 17)

Таблица 17

Реквизиты документа «Установка цены»

Реквизит

Тип данных

Точность

Примечание

Дата

Дата

Тип цены

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

Табличная часть

Товар

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

Цена

Число

10.2

- Документ «Поступление товаров» (таблица 18)

Таблица 18

Реквизиты документа «Поступление товаров»

Реквизит

Тип данных

Точность

Примечание

Дата

Дата

Потавщик

СправочникСсылка.Поставщики

Табличная часть

Товар

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

Цена

Число

10.2

Количество

Число

10.2

Стоимость

Число

10.2

- Документ «Продажа» (таблица 18)

Таблица 18

Реквизиты документа «Продажа»

Реквизит

Тип данных

Точность

Примечание

Дата

Дата

Кассир

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

Тип цен

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

По умолчанию – предпределенный «Оновная»

Касса

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

Скидка на чек

Число

10.2

Итого по чеку

Число

10.2

Получено

Число

10.2

Сдача

Число

10.2

Табличная часть

Товар

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

Цена

Число

10.2

Количество

Число

10.2

Скидка на позицию

Число

10.2

Стоимость

Число

10.2

Стоимость со скидкой

Число

10.2

- Документ «Возврат» (таблица 19)

Таблица 19

Реквизиты документа «Возврат»

Реквизит

Тип данных

Точность

Примечание

Дата

Дата

Продажа

ДокументСсылка.Продажа

Кассир

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

Тип цен

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

По умолчанию – предпределенный «Оновная»

Касса

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

Итого по чеку

Число

10.2

Табличная часть

Товар

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

Цена

Число

10.2

Количество

Число

10.2

Стоимость

Число

10.2

- Документ «Инкассация» (таблица 20)

Таблица 20

Реквизиты документа «Инкассация»

Реквизит

Тип данных

Точность

Примечание

Дата

Дата

Касса

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

Изъятая сумма

Число

10.2

  1. Регистры

- Регистр сведений «Цены товаров» (таблица 21)

Таблица 21

Структура регистра «Цены товаров»

Элемент

Тип данных

Точность

Примечание

Измерения

Товар

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

Тип цены

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

Ресурсы

Цена

Число

10.2

- Регистр накопления «Товары на складе» (таблица 22)

Таблица 22

Структура регистра «Товары на складе»

Элемент

Тип данных

Точность

Примечание

Измерения

Товар

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

Ресурсы

Количество

Число

10.2

- Регистр накопления «Деньги в кассе» (таблица 23)

Таблица 23

Структура регистра «Товары на складе»

Элемент

Тип данных

Точность

Примечание

Измерения

Касса

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

Ресурсы

Наличные

Число

10.2

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

Программный код размещен в модулях объектов и модулях форм объектов.

  1. Модуль документа «Установка цен» обеспечивает ввод документа на основании поступления товаров, а также проведение документа по ресгитрам:

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

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

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

Движение = Движения.ЦеныТоваров.Добавить();

Движение.Товар = ТекСтрокаЦеныТоваров.Товар;

Движение.ТипЦены = ТипЦены;

Движение.Цена = ТекСтрокаЦеныТоваров.Цена;

КонецЦикла;

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

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПоступлениеТоваров") Тогда

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

НоваяСтрока = ЦеныТоваров.Добавить();

НоваяСтрока.Цена = ТекСтрокаТовары.Количество;

НоваяСтрока.Товар = ТекСтрокаТовары.Товар;

КонецЦикла;

КонецЕсли;

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

  1. Модуль формы документа «Поступление товара» обеспечивает автоматический расчет стоимости товара:

Процедура ТоварыТоварПриИзменении(Элемент)

текстрока=элементыформы.Товары.ТекущиеДанные;

текстрока.стоимость=текстрока.количество*текстрока.цена;

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

  1. Модуль документа «Поступление товара» обеспечивает проведение документа по регистрам:

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

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

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

Движение = Движения.ТоварыНаСкладе.Добавить();

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

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

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

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

КонецЦикла;

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

  1. Модуль формы документа «Продажа» обеспечивает расчет стоимости товара с учетом скидок, определение цены товара, определение количества на складе, расчет итогов чека:

Процедура ТоварыТоварПриИзменении(Элемент)

текстрока=элементыформы.Товары.ТекущиеДанные;

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

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

"ВЫБРАТЬ

| ЦеныТоваров.Цена

|ИЗ

| РегистрСведений.ЦеныТоваров КАК ЦеныТоваров

|ГДЕ

| ЦеныТоваров.ТипЦены = &ТипЦены

| И ЦеныТоваров.Товар = &Товар";

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

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

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

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

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

текстрока.цена=выборкадетальныезаписи.цена;

текстрока.стоимость=текстрока.цена*текстрока.количество;

текстрока.стоимостьсоскидкой=текстрока.стоимость*(1-(скидканачек+текстрока.скидканапозицию)/100);

Итогопочеку=товары.Итог("СтоимостьСоСкидкой");

КонецЦикла;

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

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

"ВЫБРАТЬ

| ТоварыНаСкладеОстатки.КоличествоОстаток

|ИЗ

| РегистрНакопления.ТоварыНаСкладе.Остатки КАК ТоварыНаСкладеОстатки

|ГДЕ

| ТоварыНаСкладеОстатки.Товар = &Товар";

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

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

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

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

ЭлементыФормы.Надпись1.Заголовок=выборкадетальныезаписи.количествоостаток;

конеццикла;

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

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

текстрока=элементыформы.Товары.ТекущиеДанные;

текстрока.стоимость=текстрока.цена*текстрока.количество;

текстрока.стоимостьсоскидкой=текстрока.стоимость*(1-(скидканачек+текстрока.скидканапозицию)/100);

Итогопочеку=товары.Итог("СтоимостьСоСкидкой");

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

Процедура ТоварыСкидкаНаПозициюПриИзменении(Элемент)

текстрока=элементыформы.Товары.ТекущиеДанные;

текстрока.стоимостьсоскидкой=текстрока.стоимость*(1-(скидканачек+текстрока.скидканапозицию)/100);

Итогопочеку=товары.Итог("СтоимостьСоСкидкой");

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

Процедура СкидкаНаЧекПриИзменении(Элемент)

Для каждого стр из Товары ЦИкл

стр.стоимость=стр.цена*стр.количество;

стр.стоимостьсоскидкой=стр.стоимость*(1-(скидканачек+стр.скидканапозицию)/100);

конеццикла;

Итогопочеку=товары.Итог("СтоимостьСоСкидкой");

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

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

Сдача=Получено-ИтогоПоЧеку;

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

Процедура ТоварыПослеУдаления(Элемент)

Итогопочеку=товары.Итог("СтоимостьСоСкидкой");

Сдача=Получено-ИтогоПоЧеку;

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

Процедура ТоварыПриАктивизацииСтроки(Элемент)

текстрока=элементыформы.Товары.ТекущиеДанные;

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

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

"ВЫБРАТЬ

| ТоварыНаСкладеОстатки.КоличествоОстаток

|ИЗ

| РегистрНакопления.ТоварыНаСкладе.Остатки КАК ТоварыНаСкладеОстатки

|ГДЕ

| ТоварыНаСкладеОстатки.Товар = &Товар";

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

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

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

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

ЭлементыФормы.Надпись1.Заголовок=выборкадетальныезаписи.количествоостаток;

конеццикла;

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

  1. Модуль объекта документа «Продажа» обеспечивает проведение документа по регистрам:

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

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

Движения.ТоварыНаСкладе.Очистить();

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

Движение = Движения.ТоварыНаСкладе.Добавить();

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

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

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

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

КонецЦикла;

Движения.ДеньгиВКассе.Записывать = Истина;

Движения.ДеньгиВКассе.Очистить();

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

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

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

Движение.Касса = Касса;

Движение.ДатаОперации = Дата;

Движение.Наличные = ИтогоПоЧеку;

Движение.ДатаОпер = Дата;

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

  1. Модуль формы документа «Возврат» обеспечивает пересчет итога по чеку:

Процедура ТоварыПослеУдаления(Элемент)

Итогопочеку=товары.Итог("Стоимость");

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

  1. Модуль объекта документа «Возврат» обеспечивает ввод на основании продажи и проведение по регистрам:

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.Продажа") Тогда

ИтогоПоЧеку = ДанныеЗаполнения.ИтогоПоЧеку;

Касса = ДанныеЗаполнения.Касса;

Кассир = ДанныеЗаполнения.Кассир;

Продажа = ДанныеЗаполнения.Ссылка;

ТипЦен = ДанныеЗаполнения.ТипЦен;

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

НоваяСтрока = Товары.Добавить();

НоваяСтрока.Количество = ТекСтрокаТовары.Количество;

НоваяСтрока.Стоимость = ТекСтрокаТовары.СтоимостьСоСкидкой;

НоваяСтрока.Товар = ТекСтрокаТовары.Товар;

НоваяСтрока.Цена = ТекСтрокаТовары.Цена;

КонецЦикла;

КонецЕсли;

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

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

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

Движения.ТоварыНаСкладе.Очистить();

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

Движение = Движения.ТоварыНаСкладе.Добавить();

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

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

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

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

КонецЦикла;

Движения.ДеньгиВКассе.Записывать = Истина;

Движения.ДеньгиВКассе.Очистить();

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

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

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

Движение.Касса = Касса;

Движение.ДатаОперации = Дата;

Движение.Наличные = ИтогоПоЧеку;

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

  1. Модуль объекта документа «Инкассация» обеспечивает проведение документа по регистрам:

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

Движения.ДеньгиВКассе.Записывать = Истина;

Движения.ДеньгиВКассе.Очистить();

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

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

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

Движение.Касса = Касса;

Движение.ДатаОперации = Дата;

Движение.Наличные = ИзъятаяСумма;

Движение.ДатаОпер = Дата;

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

  1. Модель отчета «Отчет по кассе»:

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

ОтчетПоКассеИнициализация();

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

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

СохранитьЗначение("НастройкаОтчетыОтчетПоКассеОтчетПоКассе_74b127b4-1d6f-48ba-b37b-a28d98dfe291", ПостроительОтчетаОтчетПоКассе.ПолучитьНастройки());

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

Процедура ДействияФормыОтчетПоКассеНастройка(Кнопка)

Форма = ОтчетОбъект.ПолучитьФорму("ОтчетПоКассеНастройка");

Форма.ПостроительОтчета = ПостроительОтчетаОтчетПоКассе;

Настройка = ПостроительОтчетаОтчетПоКассе.ПолучитьНастройки();

Если Форма.ОткрытьМодально() = Истина Тогда

ОтчетПоКассеВывести();

Иначе

ПостроительОтчетаОтчетПоКассе.УстановитьНастройки(Настройка);

КонецЕсли;

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

Процедура ДействияФормыОтчетПоКассеСформировать(Кнопка)

ОтчетПоКассеВывести();

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

Процедура ОтчетПоКассеВывести()

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

ПостроительОтчетаОтчетПоКассе.Параметры.Вставить("Период1", Период1);

ПостроительОтчетаОтчетПоКассе.Параметры.Вставить("Период2", Период2);

ПостроительОтчетаОтчетПоКассе.Выполнить();

ПостроительОтчетаОтчетПоКассе.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;

ПостроительОтчетаОтчетПоКассе.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;

ПостроительОтчетаОтчетПоКассе.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;

ПостроительОтчетаОтчетПоКассе.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Классика);

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

ПостроительОтчетаОтчетПоКассе.ОформитьМакет();

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

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

Процедура ОтчетПоКассеИнициализация()

ПостроительОтчетаОтчетПоКассе.Текст =

"ВЫБРАТЬ

| ДеньгиВКассеОстаткиИОбороты.Касса КАК Касса,

| СУММА(ДеньгиВКассеОстаткиИОбороты.НаличныеНачальныйОстаток) КАК НаличныеНачальныйОстаток,

| СУММА(ДеньгиВКассеОстаткиИОбороты.НаличныеПриход) КАК НаличныеПриход,

| СУММА(ДеньгиВКассеОстаткиИОбороты.НаличныеРасход) КАК НаличныеРасход,

| СУММА(ДеньгиВКассеОстаткиИОбороты.НаличныеКонечныйОстаток) КАК НаличныеКонечныйОстаток,

| ДеньгиВКассеОстаткиИОбороты.Период

|ИЗ

| РегистрНакопления.ДеньгиВКассе.ОстаткиИОбороты(, , День, , ) КАК ДеньгиВКассеОстаткиИОбороты

|ГДЕ

| ДеньгиВКассеОстаткиИОбороты.Период МЕЖДУ &Период1 И &Период2

|

|СГРУППИРОВАТЬ ПО

| ДеньгиВКассеОстаткиИОбороты.Касса,

| ДеньгиВКассеОстаткиИОбороты.Период

|ИТОГИ

| СУММА(НаличныеНачальныйОстаток),

| СУММА(НаличныеПриход),

| СУММА(НаличныеРасход),

| СУММА(НаличныеКонечныйОстаток)

|ПО

| Касса";

ПостроительОтчетаОтчетПоКассе.ЗаполнитьНастройки();

ПостроительОтчетаОтчетПоКассе.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;

ПостроительОтчетаОтчетПоКассе.ТекстЗаголовка = "Отчет по кассе";

Настройка = ВосстановитьЗначение("НастройкаОтчетыОтчетПоКассеОтчетПоКассе_74b127b4-1d6f-48ba-b37b-a28d98dfe291");

Если Настройка <> Неопределено Тогда

ПостроительОтчетаОтчетПоКассе.УстановитьНастройки(Настройка);

КонецЕсли;

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

  1. Модуль формы отчета по продажам:

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

ОтчетПоПродажамИнициализация();

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

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

СохранитьЗначение("НастройкаОтчетыОтчетПоПродажамОтчетПоПродажам_b925ff45-4de7-4fbd-bda3-080b8b03955e", ПостроительОтчетаОтчетПоПродажам.ПолучитьНастройки());

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

Процедура ДействияФормыОтчетПоПродажамНастройка(Кнопка)

Форма = ОтчетОбъект.ПолучитьФорму("ОтчетПоПродажамНастройка");

Форма.ПостроительОтчета = ПостроительОтчетаОтчетПоПродажам;

Настройка = ПостроительОтчетаОтчетПоПродажам.ПолучитьНастройки();

Если Форма.ОткрытьМодально() = Истина Тогда

ОтчетПоПродажамВывести();

Иначе

ПостроительОтчетаОтчетПоПродажам.УстановитьНастройки(Настройка);

КонецЕсли;

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

Процедура ДействияФормыОтчетПоПродажамСформировать(Кнопка)

ОтчетПоПродажамВывести();

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

Процедура ОтчетПоПродажамВывести()

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

ЭлементыФормы.Диаграмма.Очистить();

ПостроительОтчетаОтчетПоПродажам.Параметры.Вставить("Дата1", Дата1);

ПостроительОтчетаОтчетПоПродажам.Параметры.Вставить("Дата2", Дата2);

ПостроительОтчетаОтчетПоПродажам.Выполнить();

ПостроительОтчетаОтчетПоПродажам.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;

ПостроительОтчетаОтчетПоПродажам.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;

ПостроительОтчетаОтчетПоПродажам.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;

ПостроительОтчетаОтчетПоПродажам.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Классика);

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

ПостроительОтчетаОтчетПоПродажам.ОформитьМакет();

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

ПостроительОтчетаОтчетПоПродажам.Вывести(ЭлементыФормы.Диаграмма);

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

Процедура ОтчетПоПродажамИнициализация()

ПостроительОтчетаОтчетПоПродажам.Текст =

"ВЫБРАТЬ

| ПродажаТовары.Товар КАК Товар,

| ПРЕДСТАВЛЕНИЕ(ПродажаТовары.Товар),

| ПродажаТовары.Количество КАК Количество

|ИЗ

| Документ.Продажа.Товары КАК ПродажаТовары

|ГДЕ

| ПродажаТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

|ИТОГИ

| СУММА(Количество)

|ПО

| ОБЩИЕ,

| Товар";

ПостроительОтчетаОтчетПоПродажам.ЗаполнитьНастройки();

ПостроительОтчетаОтчетПоПродажам.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;

ПостроительОтчетаОтчетПоПродажам.ТекстЗаголовка = "Отчет по продажам";

Настройка = ВосстановитьЗначение("НастройкаОтчетыОтчетПоПродажамОтчетПоПродажам_b925ff45-4de7-4fbd-bda3-080b8b03955e");

Если Настройка <> Неопределено Тогда

ПостроительОтчетаОтчетПоПродажам.УстановитьНастройки(Настройка);

КонецЕсли;

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

  1. Модуль формы отчета по остаткам товаров:

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

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

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

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

СохранитьЗначение("НастройкаОтчетыОтчетПоОстаткамТоваровОтчетПоОстаткамТоваров_3e80fb86-a761-4e0b-a66c-e8ddba30e73e", ПостроительОтчетаОтчетПоОстаткамТоваров.ПолучитьНастройки());

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

Процедура ДействияФормыОтчетПоОстаткамТоваровНастройка(Кнопка)

Форма = ОтчетОбъект.ПолучитьФорму("ОтчетПоОстаткамТоваровНастройка");

Форма.ПостроительОтчета = ПостроительОтчетаОтчетПоОстаткамТоваров;

Настройка = ПостроительОтчетаОтчетПоОстаткамТоваров.ПолучитьНастройки();

Если Форма.ОткрытьМодально() = Истина Тогда

ОтчетПоОстаткамТоваровВывести();

Иначе

ПостроительОтчетаОтчетПоОстаткамТоваров.УстановитьНастройки(Настройка);

КонецЕсли;

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

Процедура ДействияФормыОтчетПоОстаткамТоваровСформировать(Кнопка)

ОтчетПоОстаткамТоваровВывести();

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

Процедура ОтчетПоОстаткамТоваровВывести()

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

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

ПостроительОтчетаОтчетПоОстаткамТоваров.РазмещениеИзмеренийВСтроках = ТипРазмещенияИзмерений.Вместе;

ПостроительОтчетаОтчетПоОстаткамТоваров.РазмещениеРеквизитовИзмеренийВСтроках = ТипРазмещенияРеквизитовИзмерений.Отдельно;

ПостроительОтчетаОтчетПоОстаткамТоваров.РазмещениеРеквизитовИзмеренийВКолонках = ТипРазмещенияРеквизитовИзмерений.Отдельно;

ПостроительОтчетаОтчетПоОстаткамТоваров.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Классика);

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

ПостроительОтчетаОтчетПоОстаткамТоваров.ОформитьМакет();

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

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

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

ПостроительОтчетаОтчетПоОстаткамТоваров.Текст =

"ВЫБРАТЬ

| ТоварыНаСкладеОстатки.Товар,

| СУММА(ТоварыНаСкладеОстатки.КоличествоОстаток) КАК КоличествоОстаток,

| ТоварыНаСкладеОстатки.Товар.ПолноеНаименование,

| ТоварыНаСкладеОстатки.Товар.ЕдиницаИзмерения,

| ТоварыНаСкладеОстатки.Товар.Производитель,

| ТоварыНаСкладеОстатки.Товар.ОсновнойПоставщик

|ИЗ

| РегистрНакопления.ТоварыНаСкладе.Остатки КАК ТоварыНаСкладеОстатки

|

|СГРУППИРОВАТЬ ПО

| ТоварыНаСкладеОстатки.Товар,

| ТоварыНаСкладеОстатки.Товар.ПолноеНаименование,

| ТоварыНаСкладеОстатки.Товар.ЕдиницаИзмерения,

| ТоварыНаСкладеОстатки.Товар.Производитель,

| ТоварыНаСкладеОстатки.Товар.ОсновнойПоставщик";

ПостроительОтчетаОтчетПоОстаткамТоваров.ЗаполнитьНастройки();

ПостроительОтчетаОтчетПоОстаткамТоваров.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;

ПостроительОтчетаОтчетПоОстаткамТоваров.ТекстЗаголовка = "Отчет по остаткам товаров";

Настройка = ВосстановитьЗначение("НастройкаОтчетыОтчетПоОстаткамТоваровОтчетПоОстаткамТоваров_3e80fb86-a761-4e0b-a66c-e8ddba30e73e");

Если Настройка <> Неопределено Тогда

ПостроительОтчетаОтчетПоОстаткамТоваров.УстановитьНастройки(Настройка);

КонецЕсли;

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

  1. Модуль формы отчета «Заказ потавщику»

Процедура КнопкаСформироватьНажатие(Кнопка)

ТабДок=Новый Табличныйдокумент;

Макет = Отчеты.ЗаказПоставщику.ПолучитьМакет("Макет1");

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

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

"ВЫБРАТЬ

| ТоварыНаСкладеОстатки.Товар,

| ТоварыНаСкладеОстатки.КоличествоОстаток,

| ТоварыНаСкладеОстатки.Товар.МаксимальныйОстаток,

| ТоварыНаСкладеОстатки.Товар.МинимальныйОстаток,

| ТоварыНаСкладеОстатки.Товар.МаксимальныйОстаток - ТоварыНаСкладеОстатки.КоличествоОстаток КАК Поле1,

| ТоварыНаСкладеОстатки.Товар.МинимальныйОстаток - ТоварыНаСкладеОстатки.КоличествоОстаток КАК Поле2

|ИЗ

| РегистрНакопления.ТоварыНаСкладе.Остатки КАК ТоварыНаСкладеОстатки

|ГДЕ

| ТоварыНаСкладеОстатки.Товар.ОсновнойПоставщик = &ОсновнойПоставщик

| И ТоварыНаСкладеОстатки.КоличествоОстаток-ТоварыНаСкладеОстатки.Товар.МинимальныйОстаток<= 1";

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

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

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

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

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

ОбластьЗаголовок.Параметры.Поставщик=Поставщик.ПолноеНаименование();

ОбластьЗаголовок.Параметры.ДатаЗаказа=ТекущаяДата();

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

ТабДок.Показать();

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

10. Тестирование разработанного прикладного решения

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

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

Рисунок 6 – Создание пользователей системы

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

Рисунок 7 – Справочники системы

Также на рисунке 7 изображен справочник «Товары», являющийся центральным справочником системы.

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

- Задать несколько типов цен на продукты;

- Создать несколько документов продажи: с разными типами цен, с разными сочетаниями скидок;

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

Для установки цены создается два документа «Установка цены» с типами цен «Основная» и «Клубная»; клубная цена на определенные продукты ниже основной (рисунок 8).

Рисунок 8 – Документы «Установка цен»

Для оформления продажи создается документ «Продажа», в одном из которых используется основная цена (она выставляется в новых документах по умолчанию), в другом – клубная. В документах используется разное сочетание скидок. Как видно, расчеты в документах выполняются верно (рисунок 9).

Рисунок 9 – Документы «Продажа»

Далее необходимо протестировать функцию возврата. При этом на основании документа «Продажа» должен быть создан и заполнен документ «Возврат», из которого удаляются ненужные строки и оформляется возврат только выбранных продуктов (рисунок 10). Как видно из рисунков, документ заполняется правильно.

Рисунок 10 – Документы «Продажа» и «Возврат»

Также необходимо протестировать документ «Поступление», которым оформляется поступление товаров. В документе автоматически рассчитывается стоимость товаров на основе введенных цены и количества. Также на основании документа «Поступление» должна быть возможность ввести документ «Установка цен». Как видно из рисунка 11, оба документа работают корректно.

Рисунок 11 – Документы «Поступление» и «Установка цен»

Также для тестирования правильности функционирования отчетов необходимо создать документ, формирующий расходные движения по кассе – документ «Инкассация» (рисунок 12).

Рисунок 12 – Документ «Инкассация»

После этого можно протестировать отчет «Отчет по кассе», в котором показываются движения по кассам за период. Как видно, в отчете отражаются продажи как приход, инкассация и возврат как расход (рисунок 13).

Рисунок 13 – Отчет по кассе

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

Рисунок 14 – Отчет «Заказ поставщику»

Для проверки правильности формирования отчета «Заказ поставщику» можно сформировать отчет по остаткам товаров. По отчету видно, что продукты, попавшие в заказ поставщику, остались в количествах, меньших или равных минимальному остатку (рисунок 15). Количество заказываемого продукта рассчитывается таким образом, чтобы при поступлении не превысить максимальный остаток.

Рисунок 15 – Отчет по остаткам товаров

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

Рисунок 16 – Отчет по продажам

Процессы администрирования разработанного решения выполняются стандартными средствами 1С и поэтому не нуждаются в тестировании.

Как видно, разработанная система выполняет все заявленные функции корректно.

Заключение

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

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

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

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

3) Определены требования к разрабатываемому программному продукту. Определено, что для внедрения программного продукта лучше всего использовать стратегию «Пилотный проект».

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

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

Таким образом, в итоге выполнения работы реализована конфигурация для автоматизации работы продуктового магазина.

Разрабатываемая систем в перспективе должна быть интегрирована с основной учетной системой предприятия. Также необходимо проработать вопросы подключения к системе торгового оборудования: POS-терминалов, сканеров штрих-кодов, онлайн-кассы.

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

1. ГОСТ Р 50922-96. Защита информации. Основные термины и определения.

2. Баронов В.В. и др. Автоматизация управления предприятием. – М.: ИНФРА-М, 2005

3. Гончаров А, Хрусталева Е. Технологии интеграции «1С:Предприятия 8.2. 1С-Паблишинг, 2011

4. Грекул В.И. Управление внедрением информационных систем: Учебник / В.И. Грекул, Г.Н. Денищенко, Н.Л. Коровкина - М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2008. - 224 с.

5. Кашаев С. 1С:Предприятие 8.3. Программирование и визуальная разработка на примерах. – СПб:БХВ-Петербург, 2015

6. 1С:Розница 8.Описание отраслевого решения https://v8.1c.ru/retail/

7. Штрих-М: Розничная торговля. Описание готового решенияhttps://www.shtrih-m.ru/catalog/avtomatizatsiya-torgovli/shtrikh-m-roznichnaya-orgovlya/

8. TradeMaster: возможности для розничной торговли https://u4et.ru/trademaster

9. О компании 1С http://1c.ru/rus/firm1c/firm1c.htm

10. О компании Штрих-М https://www.shtrih-m.ru/about/index.php

11. О компании АТОЛhttps://www.atol.ru/company/