DOI: 10.12731/2227-930X-2023-13-1-90-101 УДК 004.67
ОПТИМИЗАЦИЯ ИНВЕНТАРНОГО
УЧЕТА ОСНОВНЫХ СРЕДСТВ ПУТЕМ СОЗДАНИЯ TELEGRAM БОТА
Р. О. Насибулин, Е.А. Сафонова, Д.Р. Абдуллин, Г.А. Гареева
В данной статье рассмотрен процесс оптимизации инвентарного учета основных средств путем создания Telegram бота. Особенностью систем, реализованных при помощи ботов, является простота использования и минимизация ресурсов, затраченных на хранение программного обеспечения, что в значительной степени упрощает взаимодействие с системой. Одной из популярных на сегодняшний день платформ для развертывания ботов является мессенджер Telegram.
Цель - создание инструмента для инвентарного учета основных средств, взаимодействия с базой данных, создания отчетов в формате Excel и проведения инвентаризации при помощи распознавания QR-кода.
Метод или методология проведения работы. В статье рассматривается способ, который реализует инвентарный учет основных средств и проведение инвентаризации. Для реализации используется: база данных SQLite и язык программирования Python.
Результат: разработан уникальный инструмент, который реализует функции добавления, хранения и взаимодействия с данными основных средств.
Область применения результатов: данные объектов, хранящиеся в базе данных, целесообразно использовать для проведения инвентаризации и мониторинга текущего баланса основных средств.
Ключевые слова: Python; инвентарный учет; Telegram; бот; QR-код
Для цитирования. Насибулин Р.О., Сафонова Е.А., Абдуллин Д.Р., Гареева Г.А. Оптимизация инвентарного учета основных средств путем создания Telegram бота //International Journal of Advanced Studies. 2023. Т. 13, № 1. С. 90-101. DOI: 10.12731/2227-930X-2023-13-1-90-101
OPTIMIZATION OF FIXED ASSETS INVENTORY BY CREATING A TELEGRAM BOT
R.O. Nasibulin, E.A. Safonova, D.R. Abdullin, G.A. Gareeva
This article is about the optimization of fixed assets inventory by means of Telegram bot. The feature ofthe systems which are realized with the help ofbots is the ease of use and minimization of resources spent on software storage, which greatly simplifies the interaction with the system. One of today's popular platforms for deploying bots is the Telegram messenger.
Purpose - create a tool for inventory of fixed assets, interaction with the database, creation of reports in Excel format and carrying out stock-taking with the help of QR code recognition.
Method or methodology of the work. The article considers the method that implements the inventory of fixed assets and carrying out an inventory. For the implementation it is used: the SQLite database and the programming language Python.
Result: developed a unique tool that implements the functions of adding, storing and interacting with the data of fixed assets.
Scope of the results: object data stored in the database is reasonable to use for inventory and monitoring the current balance offixed assets.
Keywords: Python; inventory; Telegram; bot; QR-code
For citation. Nasibulin R.O., SafonovaE.A., Abdullin D.R., Gareeva G.A. Optimization of Fixed Assets Inventory by Creating a Telegram Bot //International Journal of Advanced Studies, 2023, vol. 13, no. 1, pp. 90-101. DOI: 10.12731/2227-930X-2023-13-1-90-101
Введение
Инвентаризация основных средств является трудоемким процессом, требующим большого объема затрат времени, в то же время его необходимость и важность трудно переоценить. Каждая организация имеет определенное количество основных средств, их число значительно увеличивается, если речь идет о производственной фирме.
Процедура инвентаризации обязательно проводится в любой компании. Она необходима для оценки имущества и его фактического состояния на конкретный момент времени. Проведение инвентаризации является одним из важных этапов подготовки к годовой отчетности.
Для снижения затрат времени и труда целесообразно внедрить оптимизацию инвентаризационного процесса. В случае его упрощения будут получены качественные и достоверные результаты деятельности, которые в дальнейшем можно будет использовать для принятия различных управленческих решений [2, 4].
Цель работы: разработать программный продукт для добавления, хранения и взаимодействия с данными основных средств в базе данных, а также возможности проводить инвентаризацию при помощи распознавания QR-кода. Процесс распознавания инвентарной карточки представлен на рисунке 1.
Данный проект был реализован при помощи модуля Aiogram. Преимуществом данного модуля является простота использования, а также полностью асинхронный метод работы, что позволило сделать бота более быстрым и оптимизированным. Основным функционалом данного бота является:
- Хранение и взаимодействие с объектами в базе данных;
- Генерация и считывание "карточек" объектов с QR-кодом;
- Создание отчетов в формате файлов Excel;
- Извлечение информации из файлов в формате Excel с последующим добавление в базу данных [11].
Хранение и взаимодействие с объектами в базе данных.
N5 ООООООЗ Название: Ноутбук Категория: Компьютерная техника Кабинет: 106
Группа ПО: 1 курсг 3 курс, 2 курс Описание: Новая партия
Редактировать /
Рис. 1. Результат распознавания инвентарной карточки
В качестве системы управления базой данных (далее СУБД) в данном проекте был использован встроенный в Python - модуль SQLite. Данный модуль подходит под цели и функции нашего проекта, так как особенностью данной СУБД является простота использования и быстрая скорость отклика на запросы. Несмотря на отсутствие возможности одновременного изменения записей несколькими пользователями, это не сильно отразится на работе бота, так как данный недостаток был устранен при помощи асинхронного метода работы бота. Помимо этого, была разработана система безопасности в виде фильтров доступа, которые проверяют, является ли взаимодействие с пользователем безопасным [1, 3]. Пример SQL запроса для получения информации из базы данных представлен на рисунке 2.
18 async def sqladdcomniand(state):
19 async with state.proxy() as data:
20 cur.execute("INSERT INTO lin_table VALUES (?, ?, ?, ?, ?)", tuple(data.values()))
21 base.commit()
22
23 async def sql_key_edit(stote):
24 async with state. proxyQ as data:
25 cur.execute("INSERT INTO user_table VALUES (?, ?, ?, ?, ?, ?)", tuple(data.valuesQ))
26 base.commit()
27
28 async def sqlreadQ:
29 return cur.execute("SELECT * FROM lin_table').fetchallQ
30
31 async def sql_read_office():
32 return cur.execute("SELECT DISTINCT office FROM lin_table").fetchallQ
33
34 async def sql_read_group():
35 I return cur.execute("SELECT DISTINCT groups FROM lin_table").fetchallQ
Рис. 2. SQL запрос для получения информации из базы данных
Добавление новых объектов в базу данных осуществляется по принципу опроса: при нажатии на соответствующую кнопку, бот активирует машину состояний FSM и начинает отправлять вопросы об объекте. Бот определяет инвентарный номер, название объекта, его категорию и место расположения [5].
Дата создания объекта определяется автоматически и заносится в базу данных с остальной информацией. Редактирование имеющихся записей происходит по такому же принципу, но с возможностью оставить предыдущее значение. Для более удобного визуального представления процесса добавления новых объектов была построена схема в нотации IDEF0, изображенная на рисунке 3.
Генерация и считывание "карточек" объектов с Q-кодом.
Для упрощенного взаимодействия с системой был выбран метод с использованием QR-кодов. Это позволило избежать затраты на приобретение специализированного оборудования для считывания информации и использовать камеру мобильного телефона. Данный метод был реализован при помощи модуля "qrcode" - необходим для генерации самого QR-кода и библиотеки "Pillow", которая обрабатывает изображение и добавляет в него второстепенную информацию, такую как: инвентарный номер, категорию объекта и, при необходимости, логотип организации [8, 9]. Для получения информации об объекте потребуется отправить боту
фотографию с изображенным на ней QR-кодом, и бот отобразит нужную информацию. Пример "карточки" объекта изображен на рисунке 4.
Зашифрованный ино.номер
Рис. 3. Диаграмма процесса добавления новых объектов
Категория объекта
ими
Компьютерная ' Инвентарный
номер
техника
Рис. 4. Инвентарная "карточка" объекта
Взаимодействие базы данных с Excel файлами.
Отображение информации об объектах из базы данных реализовано в виде текстовых сообщений. Но это не всегда удобно, так как пользователю может потребоваться провести одновременное изменение большого количества записей. В данном случае пользо-
ватель может воспользоваться функцией "Взаимодействие с Excel" и получить файл в соответствующем формате. Данная функция реализована благодаря модулю "openpyxl", который позволяет не только выгрузить нужную пользователю информацию, но и импортировать Excel-файл в базу данных [6, 10]. Пример функций выгрузки базы данных в файле Excel представлен на рисунке 5.
16 async def excel_craft_run():
17 corn = sqlite3.connect("database.db")
18 df = pd.read_sql('SELECT * FROM linkable', conn)
19 df.to_excel{"inventory.xlsx", indejf=False)
20
21 async def excel_invent{):
22 corn = sqliteB.connect("database.db")
df = pd.read_sql("SELECT * FROM inventprocess"j conn)
24 df.to_excel{'inventory.xlsx", index=False)
Рис. 5. Пример функций выгрузки базы данных в файле Excel
Существенным также является вопрос о системе безопасности.
Мессенджер Telegram является открытой площадкой. Данный факт делает небезопасным взаимодействие с ботом, не продумав соответствующие методы защиты информации. Одним из таких методов является система фильтров, которая проверяет, входит ли пользователь в закрытую группу. Если у пользователя есть членство в группе, которая указана в коде бота, то этому пользователю присваивается статус "обычный юзер". Он может просматривать записи из базы данных, проводить поиск и считывать QR-код, на этом его права заканчиваются. Второй фильтр определяет является ли пользователь администратором группы, и, если пользователь проходит проверку, ему присваивается статус "администратор". Права пользователя с таким статусом не ограничены. Помимо проверки членства в группе, существует еще один фильтр, который отвечает за пропуск пользователей с "временными правами". Данный тип прав выдается исключительно администратором и включает в себя возможность просмотра информации или редактирования базы данных.
В данном исследовании был разработан программный модуль для инвентарного учета основных средств, т.е. инструмент, который реализует функции добавления, хранения и взаимодействия с данными, создания отчетов в формате Excel и проведения инвентаризации при помощи распознавания QR-кода. Разработка была осуществлена на языке программирования Python. Для распознавания инвентарных карточек с изображенным на них QR-кодом была задействована библиотека OpenCV [7].
Результат работы
На основе языка программирования Python и базы данных SQLite был разработан программный продукт для учета основных объектов организации, взаимодействия с базой данных и возможности взаимодействия с файлами Excel. Помимо этого, была реализована возможность создания инвентарных карточек объектов и сканирования QR-кода, изображенного на них. Процесс инвентаризации был оптимизирован путем упрощенного ввода инвентарного номера, закодированного в QR-коде, и автоматического добавления данного объекта в список имеющихся активов.
Распознавания инвентарной карточки включает в себя следующие этапы:
1. Пользователь отправляет фотографию с QR-кодом.
2. Программа распознает текст с QR-кода.
3. Запускается поиск совпадений с элементами базы данных.
4. При обнаружении совпадений программа отобразит подходящий объект. В противном случае отобразится надпись: "Совпадений не обнаружено".
5. Далее с объектом можно будет взаимодействовать.
Список литературы 1. Блинова У. Ю., Астахова Е. Ю., Голышева Н. И. и др. Документирование хозяйственных операций и ведение бухгалтерского учета
имущества организации. Учебник. М.: КноРус, 2021. 306 с.
2. Гартвич А. Бухгалтерский учет в таблицах и схемах / А. Гартвич. СПб.: Питер, 2019. 288 с.
3. Джеймс Р. Грофф. SQL. Полное руководство / Джеймс Р. Грофф, Пол Н. Вайнберг, Эндрю Дж. Оппель. СПб.: Вильямс, 2019. 957 с.
4. Инвентаризация и учет основных средств (ОС) // Первый Бит - 2022 [Электронный ресурс]. Режим доступа: https://nizhnekamsk.1cbit. ru/blog/effektivnaya-inventarizatsiya-i-uchyet-os/
5. Леевик Ю.С. Бухгалтерский финансовый учет / Ю.С. Леевик. СПб.: Питер, 2018. 208 с.
6. Мельник М.В. Бухгалтерский учет и анализ (для бакалавров) / М.В. Мельник, Н.К. Муравицкая, Е.Б. Герасимова. М.: КноРус,
2018. 272 с.
7. Прохоренок Н.А. OpenCV и Java. Обработка изображений и компьютерное зрение / Н.А. Прохоренок. СПб.: БХВ-Петербург, 2018. 320 с.
8. Садыкова, Т. М. Бухгалтерский учет и анализ: Учебник / Садыкова Т.М., Церпенто С.И. М.:ИЦ РИОР, НИЦ ИНФРА-М, 2018. 256 с.
9. Федоров Д.Ю. Программирование на языке высокого уровня Python: учебное пособие для прикладного бакалавриата / Д. Ю. Федоров. 2-е изд., перераб. и доп. Москва: Издательство Юрайт,
2019. 161 с.
10. Фельдман, И. А. Бухгалтерский учет: учебник для вузов / И. А. Фельдман. Москва: Издательство Юрайт, 2019. 287 с.
11. Alex Root Jr. Aiogram Documentation, November 2022 [Электронный ресурс]. Режим доступа: https://readthedocs.org/projects/aiogram/ downloads/pdf/latest/
References
1. Blinova U. Yu., Astakhova E. Yu., Golysheva N. I. et al. Doramen-tation of business transa^ions and amounting of the organization's property. Textbook. M.: KnoRus, 2021. 306 p.
2. Garish A. Amounting in tables and ^arts / A. Garish. St. Petersburg: Piter, 2019. 288 p.
3. James R. Graff. SQL. The Complete Guide / James R. Graff, Paul N. Weinberg, Andrew J. Oppel. St. Petersburg: Williams, 2019. 957 p.
4. Inventory and accounting of fixed assets (OS) // First Bit - 2022 [Electronic resource]. Access mode: https://nizhnekamsk.1cbit.ru/blog/ef-fektivnaya-inventarizatsiya-i-uchyet-os/
5. Leevik Yu.S. Accounting financial accounting / Yu.S. Leevik. St. Petersburg: Piter, 2018. 208 p.
6. Melnik M.V. Accounting and analysis (for bachelors) / M.V. Melnik, N.K. Muravitskaya, E.B. Gerasimov. M.: KnoRus, 2018. 272 p.
7. Prokhorenok N.A. OpenCV and Java. Image processing and computer vision / N.A. Prokhorenok. St. Petersburg: BHV-Peterburg, 2018. 320 p.
8. Sadykova, T.M. Accounting and analysis: Textbook / Sadykova T.M., Tserpento S.I. M.: ITs RIOR, NITs INFRA-M, 2018. 256 p.
9. Fedorov D.Yu. Programming in the high-level language Python: textbook for applied undergraduate studies / D. Yu. Fedorov. 2nd ed., revised. and additional Moscow: Yurayt Publishing House, 2019. 161 p.
10. Feldman, I. A. Accounting: a textbook for universities / I. A. Feldman. Moscow: Yurayt Publishing House, 2019. 287 p.
11. Alex Root Jr. Aiogram Documentation, November 2022 [Electronic resource]. Access mode: https://readthedocs.org/projects/aiogram/ downloads/pdf/latest/
ДАННЫЕ ОБ АВТОРАХ
Насибулин Руслан Ойратович, студент
Казанский национальный исследовательский технический
университет им. А.Н. Туполева-КАИ
ул. Академика Королева, 1, г. Набережные Челны, 423814,
Российская Федерация
drakon.2011.23.11@mail.ru
Сафонова Екатерина Алексеевна, студент
Казанский национальный исследовательский технический университет им. А.Н. Туполева-КАИ
ул. Академика Королева, 1, г. Набережные Челны, 423814,
Российская Федерация
sea55555@bk.ru
Абдуллин Даниль Мансурович, студент
Казанский национальный исследовательский технический
университет им. А.Н. Туполева-КАИ
ул. Академика Королева, 1, г. Набережные Челны, 423814,
Российская Федерация
AbdullinDM@stud.kai. ru
Гареева Гульнара Альбертовна, заведующий кафедрой Информационных систем, канд. пед. наук, доцент Казанский национальный исследовательский технический университет им. А.Н. Туполева-КАИ ул. Академика Королева, 1, г. Набережные Челны, 423814, Российская Федерация gagareeva1977@mail. ru
DATA ABOUT THE AUTHORS Ruslan O. Nasibulin, student
Kazan National Research Technical University named after A.N. Tupolev-KAI
1, Akademika Koroleva Str., Naberezhnye Chelny, 423814, Russian Federation drakon.2011.23.11@mail.ru
Ekaterina A. Safonova, student
Kazan National Research Technical University named after A.N. Tupolev-KAI
1, Akademika Koroleva Str., Naberezhnye Chelny, 423814, Russian Federation sea55555@bk.ru
Danil M. Abdullin, student
Kazan National Research Technical University named after A.N. Tupolev-KAI
1, Akademika Koroleva Str., Naberezhnye Chelny, 423814, Russian Federation AbdullinDM@stud.kai. ru
Gulnara A. Gareeva, Head of the Department of Information Systems, Candidate of
Pedagogical sciences, Associate professor
Kazan National Research Technical University named after
A.N. Tupolev-KAI
1, Akademika Koroleva Str., Naberezhnye Chelny, 423814, Russian Federation gagareeva1977@mail. ru SPIN-code: 3279-8465 Scopus Author ID: 36801593200 ResearcherID: U-1728-2015 ORCID: https://orcid.org/0000-0002-8539-4541
Поступила 18.01.2023
После рецензирования 29.01.2023
Принята 10.02.2023
Received 18.01.2023 Revised 29.01.2023 Accepted 10.02.2023