Uploaded by bulatkarapaev

Отчет по ТП 1С Система учета по продаже кофе

advertisement
Министерство науки и высшего образования Российской Федерации
Федеральное государственное автономное образовательное учреждение
высшего образования
«Казанский (Приволжский) федеральный университет»
Институт вычислительной математики и информационных технологий
ОТЧЁТ
по производственной технологической (проектно-технологической)
практике
Обучающийся Карапаев Б.А., 09-052
(ФИО, группа)
Руководитель ВКР от КФУ
ст. преподаватель кафедры анализа данных
и технологий программирования Вахитов Г.З.
(должность, ФИО)
________________
(подпись)
__________________
(подпись)
Руководитель практики от КФУ
ст. преподаватель кафедры анализа данных
и технологий программирования Жажнева И.В.
__________________
Оценка за практику _______________
__________________
(должность, ФИО)
(подпись)
(подпись руководителя ВКР)
Дата сдачи отчета __23.05.2024_____
Казань, 2024
Содержание
Введение ................................................................................................................... 3
1. Проектирование системы учета и контроля ..................................................... 5
1.1. Анализ предметной области ........................................................................ 5
1.2. Создание прототипа системы учета и контроля ........................................ 5
2. Реализация системы учета и контроля .............................................................. 6
2.1. Листинг кода обработчика .......................................................................... 6
2.2. Листинг кода справочника Услуги ........................................................... 13
2.2. Листинг кода справочника Клиенты ......................................................... 15
Заключение ............................................................................................................ 16
Список использованных источников .................................................................. 17
2
Введение
Целью производственной технологической (проектно-технологической)
практики направления подготовки 09.03.03 «Прикладная информатика»
согласно программе практики, является закрепление теоретических знаний,
практических умений и навыков, полученных в процессе освоения дисциплин
основной образовательной программы: «Информатика», «Базы данных»
приобретение практического опыта решения профессиональных задач.
Основными задачами производственной технологической (проектнотехнологической) практики являются:
-
изучение
основ
встроенного
языка
программирования
1С:Предприятие;
-
реализация прототипа рекомендательной системы
-
отработка навыков, полученных при прохождении дисциплин
«Информатика», «Базы данных» при реализации профессиональных задач;
-
закрепление знаний в области программирования 1С Предприятие;
-
формирование
навыков
самостоятельного
решения
задач
профессиональной деятельности с применением современных технологий и
систем управления, включающих анализ предметной области, разработку и
реализацию проектов, описание пользовательского интерфейса;
-
получение навыков обработки собранных материалов и оформления
отчета по практике.
Технологической (проектно-технологической) практика проходила на
базе Института вычислительной математики и информационных технологий
Казанского (Приволжского) федерального университета.
Сроки прохождения практики: с 08.04.2024 по 23.05.2024.
Руководители практики:
доцент кафедры анализа данных и технологий программирования
Вахитов Г.З.
старший преподаватель кафедры анализа данных и технологий
программирования Жажнева И.В.
3
Индивидуальное задание на практику включало:
1. Изучение основ встроенного языка программирования
1С:Предприятие.
2. Изучение конструктора запросов.
3. Проектирование системы учета и контроля.
4. Написание процедур и функций для формы списков и формы
элементов.
5. Оформление отчета по практике. Защита выполненных работ.
4
1. Проектирование веб-приложения
1.1. Анализ предметной области
Система должна представлять собой систему учета, с удобной
навигацией по магазинам, возможностью просмотра товаров, их цен. В
системе должна быть возможность просмотра расписания работников. Товар
в системе учета должен иметь полную информацию, а именно цена, дата
поступления, дата и время продажи. Системой предусмотрено 1 уровень
привилегий — это администратор. Администратор должен иметь доступ в
админ-панель, в которой предусмотрена возможность добавления, удаление и
редактирования информации. При разработке информационной системы
должны быть соблюдены нормы норм чередования умственной и физической
нагрузки.
У каждого сотрудника должна быть собственная карточка. В карточке
сотрудника должно быть, расписание сотрудника, информация о сотруднике,
зарплата сотрудника.
В системе учета и контроля должен быть расчет затрат и прибыли
В результате анализа предметной области, цели и поставленных задач
возникла необходимость разработки многопользовательского приложения для
автоматического анализа и мониторинга работы кофейни. Вся система будет
написана в приложение 1С предприятие.
1.2. Создание прототипа системы учета и контроля
Для создания основных функции системы учета и контроля по продажам
кофе на 1C были использованы 5 справочников, 4 документа и 6 регистров и 1
обработчик событий.
В справочнике Салоны было создано 2 реквизита. Реквизит Адрес и
реквизит
Телефон.
В
справочнике
Услуги
было
создан
реквизит
Длительности. В справочнике Сотрудники было создано 3 реквизита.
Должность, Телефон и Адрес. У справочника Должности не было
дополнительных реквизитов. Справочник Клиенты имел 4 реквизита таких как
Телефон,Email,ДатаРождения, Комментарий.
В этой системе учета есть такие документы как Запись, Продажа,
Оплата, Зарплата. Эти документы используют такие созданные перечисления
как ДниНедели,СпособОплаты,ТипыДенежныхСредств.
Для создания прототипа были созданы Регистры сведений такие как
Цены,ИсторияЗаписей,ПроцентыПоЗарплате. И Регистры накопления такие
5
как Продажи,Деньги,Зарплата.Эти Регистры используются у справочника и
документах.
2. Реализация системы учета и контроля
2.1. Листинг кода обработчика
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Дата = ТекущаяДата();
СоздатьИзмеренияПланировщика();
Салон = Справочники.Салоны.ОсновнойСалон();
ОбновитьПериодотображенияПланировщика();
ЗаполнитьЖурналЗаписей();
КонецПроцедуры
&НаСервере
Процедура ОбновитьПериодотображенияПланировщика ()
Начало = НачалоДня(Дата) + 9*3600;
Конец = НачалоДня(Дата) + 19*3600;
Планировщик.ТекущиеПериодыОтображения.Очистить();
Планировщик.ТекущиеПериодыОтображения.Добавить(Начало,Конец)
;
КонецПроцедуры
&НаСервере
Процедура СоздатьИзмеренияПланировщика ()
Измерение = Планировщик.Измерения.Добавить("Сотрудник");
Выборка = Справочники.Сотрудники.Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.ПометкаУдаления Тогда
6
Продолжить;
КонецЕсли;
ЗначенияИзмерений =
Измерение.Элементы.Добавить(Выборка.Ссылка);
ЗначенияИзмерений.Текст = Выборка.Наименование +
Символы.ПС + Выборка.Должность;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьЖурналЗаписей ()
Планировщик.Элементы.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|
Запись.Дата КАК Дата,
|
Запись.Салон КАК Салон,
|
Запись.Сотрудник КАК Сотрудник,
|
ПРЕДСТАВЛЕНИЕ(Запись.Услуга) КАК Услуга,
|
Запись.Длительность КАК Длительность,
|
Запись.Сумма КАК Сумма,
|
Запись.Клиент КАК Клиент,
|
Запись.ДатаОкончания КАК ДатаОкончания,
|
Запись.Комментарий КАК Комментарий,
|
Запись.Ссылка КАК Ссылка,
|
Запись.Клиент.Телефон КАК Телефон,
|
Запись.Цвет КАК Цвет
|ИЗ
7
|
Документ.Запись КАК Запись
|ГДЕ
|
Запись.Проведен
|
И Запись.Салон = &Салон
|
И Запись.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания";
Запрос.УстановитьПараметр("Салон", Салон);
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(Дата));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(Дата));
РезультатЗапроса = Запрос.Выполнить();
Выборка= РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
ЗначенияИзмерений = Новый Соответствие;
ЗначенияИзмерений.Вставить("Сотрудник",
Выборка.Сотрудник);
ЖирныйШрифт = Новый Шрифт(,,Истина);
ПредставлениеКлиента = Строка(Выборка.Клиент) + ", " +
Выборка.Телефон;
МассивСтрок = Новый Массив;
МассивСтрок.Добавить(Новый
ФорматированнаяСтрока(ПредставлениеКлиента,ЖирныйШрифт));
МассивСтрок.Добавить(Символы.ПС);
МассивСтрок.Добавить(Выборка.Услуга);
МассивСтрок.Добавить(Символы.ПС);
Если ЗначениеЗаполнено(Выборка.Комментарий) Тогда
МассивСтрок.Добавить("--" + Выборка.Комментарий);
КонецЕсли;
8
ЭлементПланировщика =
Планировщик.Элементы.Добавить(Выборка.Дата,Выборка.ДатаОкончания);
ЭлементПланировщика.ЗначенияИзмерений = Новый
фиксированноеСоответствие(ЗначенияИзмерений);
ЭлементПланировщика.Значение = Выборка.Ссылка;
ЭлементПланировщика.Текст = Новый
ФорматированнаяСтрока(МассивСтрок);
Цвет = Выборка.Цвет.Получить();
Если Цвет = Неопределено Тогда
Цвет = WebЦвета.БледноЛиловый;
КонецЕсли;
ЭлементПланировщика.ЦветФона =Цвет
КонецЦикла;
ЗаполнитьДиаграмму();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДиаграмму ()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|
ДеньгиОбороты.ТипДенежныхСредств КАК
ТипДенежныхСредств,
|
ДеньгиОбороты.СуммаПриход КАК СуммаПриход
|ИЗ
|
РегистрНакопления.Деньги.Обороты(&ДатаНачала,
&ДатаОкончания, , ) КАК ДеньгиОбороты";
Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(Дата));
Запрос.УстановитьПараметр("ДатаОкончания", КонецДня(Дата));
9
РезультатЗапроса = Запрос.Выполнить();
Диаграмма.Обновление = Ложь;
Диаграмма.Очистить();
Выборка = РезультатЗапроса.Выбрать();
Точка = Диаграмма.Точки.Добавить("");
Пока Выборка.Следующий() Цикл
Серия =
Диаграмма.Серии.Добавить(Строка(Выборка.ТипДенежныхСредств));
Диаграмма.УстановитьЗначение(Точка,Серия,
Выборка.СуммаПриход);
КонецЦикла;
Диаграмма.Обновление = Истина;
КонецПроцедуры // ()
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ОбновитьПериодОтображенияПланировщика();
ЗаполнитьЖурналЗаписей();
КонецПроцедуры
&НаКлиенте
Процедура СалонПриИзменении(Элемент)
ОбновитьПериодОтображенияПланировщика();
ЗаполнитьЖурналЗаписей();
КонецПроцедуры
&НаКлиенте
Процедура ПланировщикПередСозданием(Элемент, Начало, Конец,
ЗначенияИзмерений, Текст, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
10
ЗначенияЗаполнения = Новый Структура;
ЗначенияЗаполнения.Вставить("Салон",Салон);
ЗначенияЗаполнения.Вставить("Дата",Начало);
ЗначенияЗаполнения.Вставить("ДатаОкончания",Конец);
ЗначенияЗаполнения.Вставить("Сотрудник",ЗначенияИзмерений["Сотр
удник"]);
СтруктураПараметров = Новый
структура("ЗначенияЗаполнения",ЗначенияЗаполнения);
ОткрытьФорму("Документ.Запись.ФормаОбъекта",СтруктураПараметр
ов);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Изменение_запись" Тогда
ЗаполнитьЖурналЗаписей();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПланировщикПередНачаломРедактирования(Элемент,
НовыйЭлемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ВыделенныеЭлементы = Элемент.ВыделенныеЭлементы;
ЭлементПланировщика = ВыделенныеЭлементы[0];
СтруктураПараметров = Новый
Структура("Ключ",ЭлементПланировщика.Значение);
ОткрытьФорму("Документ.Запись.ФормаОбъекта",СтруктураПараметр
ов);
КонецПроцедуры
11
&НаКлиенте
Процедура ПланировщикПередУдалением(Элемент, Отказ)
Отказ = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ПланировщикПриОкончанииРедактирования(Элемент,
НовыйЭлемент, ОтменаРедактирования)
ВыделенныеЭлементы = Элемент.ВыделенныеЭлементы;
ЭлементПланировщика = ВыделенныеЭлементы[0];
ЗначенияРеквизитов = Новый Структура;
ЗначенияРеквизитов.Вставить("Дата",ЭлементПланировщика.Начало);
ЗначенияРеквизитов.Вставить("ДатаОкончания",ЭлементПланировщик
а.Конец);
ЗначенияРеквизитов.Вставить("Сотрудник",ЭлементПланировщика.Значения
Измерений["Сотрудник"]);
ОбновитьДанныеЗаписи(ЭлементПланировщика.Значение,ЗначенияРеквизит
ов);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ОбновитьДанныеЗаписи(Запись,ЗначенияРеквизитов)
ОбъектЗаписи = Запись.ПолучитьОбъект();
ЕстьИзмения = Ложь;
Для каждого Реквизит Из ЗначенияРеквизитов Цикл
Если
ОбъектЗаписи[Реквизит.Ключ] <>
Тогда
ЕстьИзмения = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЕстьИзмения Тогда
12
Реквизит.Значение
ЗаполнитьЗначенияСвойств(ОбъектЗаписи,
ЗначенияРеквизитов);
ОбъектЗаписи.Длительность = (ОбъектЗаписи.ДатаОкончания ОбъектЗаписи.Дата) / 60 ;
ОбъектЗаписи.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;
ОбъектЗаписи.Записать(РежимЗаписиДокумента.Проведение);
КонецПроцедуры
2.2. Листинг кода формы справочника Услуги
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если Цена = 0 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Укажите цену";
Сообщение.Поле = "Цена";
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
ПроцедураПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
ТекДата = НачалоДня(ТекущаяДата());
НаборЗаписей = РегистрыСведений.Цены.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Период.Установить(ТекДата);
НаборЗаписей.Отбор.Услуга.Установить(ТекущийОбъект.Ссылка);
НаборЗаписей.Прочитать();
ЕстьИзменения = Ложь;
Если НаборЗаписей.Количество() = 0 Тогда
Запись = НаборЗаписей.Добавить();
13
Запись.Период = ТекДата;
Запись.Услуга = ТекущийОбъект.Ссылка;
Запись.Цена = Цена;
ЕстьИзменения = Истина;
Иначе
Запись = НаборЗаписей[0];
Если Запись.Цена <> Цена тогда
Запись.Цена = Цена;
ЕстьИзменения = истина;
КонецЕсли;
КонецЕсли;
НаборЗаписей.Записать();
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|
ЦеныСрезПоследних.Цена КАК Цена
|ИЗ
|
РегистрСведений.Цены.СрезПоследних(,
Услуга
&Услуга) КАК ЦеныСрезПоследних";
Запрос.УстановитьПараметр("Услуга", ТекущийОбъект.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Если не РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Цена = Выборка.Цена;
КонецЕсли;
КонецПроцедуры;
14
=
2.3. Листинг кода справочника Клиенты
&НаКлиенте
Процедура ИсторияЗаписей(Команда)
Если Объект.Ссылка.Пустая() Тогда
Возврат;
КонецЕсли;
ИмяОткрываемойФормы
="РегистрСведений.ИсторияЗаписей.ФормаСписка" ;
СтруктураОтбора = Новый Структура("Клиент", Объект.Ссылка);
СтруктураПараметров = Новый Структура("Отбор",СтруктураОтбора);
ОткрытьФорму(ИмяОткрываемойФормы,СтруктураПараметров,ЭтотО
бъект,,,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца)
КонецПроцедуры
15
Заключение
За время прохождения производственной технологической (проектнотехнологической) практики мной приобретены следующие компетенции:
Шифр
Расшифровка приобретаемой компетенции
компетенции
ОПК-4
Способен участвовать в разработке стандартов, норм и
правил, а также технической документации, связанной с
профессиональной деятельностью
ОПК-7
Способен разрабатывать алгоритмы и программы,
пригодные для практического применения
ОПК-8
Способен принимать участие в управлении проектами
создания информационных систем на стадиях жизненного
цикла
16
Список использованных источников
Оформление книг, учебников
1. М.
Г.
Радченко,1C:Предприятие
8.3.
Практическое
пособие
разработчика. Примеры и типовые приемы.: учебное пособие / М. Г. Радченко,
Е. Ю. Хрусталева. – 3-е изд., Москва : СФУ, 2022. - 10 с.
2. Архитектура платформы 1C:Предприятие[Электронный ресурс]. URL:
https://v8.1c.ru/platforma/sreda-bystroy-razrabotki/
23.05.2023).
17
(дата
обращения:
Download