Рисунок 51 - Пример обязательного поля
По мере поступления информации и документов пользователь добавляет и изменяет содержание заявки. Пользователь имеет возможность отправлять данные перевозчика и необходимые договора по почте рисунок 52.
Рисунок 52 - Форма отправки электронных документов
Для заявки пользователь в праве создавать заказчиков рисунок 53, перевозчиков рисунок 54 и плательщиков рисунок 55.
Рисунок 53 - Создание заказчика
Рисунок 54 - Создание перевозчика
Рисунок 55 - Создание перевозчика
После окончания грузоперевозки и получения товарно-транспортных документов дальнейшим сопровождением заявки занимается бухгалтер. Бухгалтер отправляет необходимые документы и занимается оплатами. Все завершенные и правильно оформленные заявки попадают в отчет доходность заявок в котором пользователь может увидеть свою зарплату за текущий месяц рисунок 56. В отчете пользователь видит только свою зарплату. Дельта менеджера -- это сколько пользователь может получить максимум, а дельта менеджера ттн сколько получит из-за неправильно заполненных документов.
Рисунок 56 - Зарплата менеджера
5. Аварийные ситуации
При возникновении нештатных аварийных ситуациях или появлении неизвестных ошибок пользователь сообщает о них ответственному программисту или системному администратору. При возникновении ошибок, связанных с заполнением данных или неправильно заполненными данными пользователю выводиться соответствующее сообщение о данной ошибке. По полученному сообщению, пользователь может узнать в каком поле, и какая ошибка появилась.
ЗАКЛЮЧЕНИЕ
В ходе проведенного анализа предметной области была выявлена проблема в ведении хозяйственной деятельности предприятия. После изучения данной проблемы было проведено проектирование и разработка новой автоматизированной системы. В процессе проектирование были определены задачи и требования к системе, было выбрано необходимое программное обеспечение и проведен его анализ, разработаны концептуальные, логические и физические модели, спроектированы и разработаны алгоритмы работы автоматизированной системы. В пояснительной записке были описаны основные методы и функции системы и проведено ее тестирование. Ошибок при выполнении данного тестирования не обнаружено.
Результатом дипломного проектирования является разработанная автоматизированная система ведения хозяйственной деятельности предприятия для ООО «Виктори». Программа будет использоваться пользователями на предприятии для ведения и сопровождения транспортных перевозок.
Разработанная система отвечает всем предъявленным требования, её внедрение позволит сократить время на поиск, анализ, внесение и перенос информации о транспортных перевозках. А также повысить скорость реакции ответственного бухгалтера на поступлении и отправку новых документов и оплат. Автоматизированная система ведения хозяйственной деятельности была рекомендована и успешна внедрена в работу организации ООО «Виктори». В ходе внедрения были выявлены дополнительные функциональные требования, к системе которые можно в дальнейшем реализовать для более качественной работы системы.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Баронов, В. В. Автоматизация управления предприятием / В. В. Баронов, Г. Н. Калянов, Ю. И. Попов // Москва: Издательство Инфра-М, 2000. - С.238
2. Калянов, Г.Н. Консалтинг при автоматизации предприятий: подходы, методы, средства / Г. Н. Калянов // Москва: Издательство Инфра-М, 2000. - С.172
3. Информация об прикладных объектах программы 1С:Предприятие : сайт компании 1С ИТС. Режим доступа: https://its.1c.ru/
4. Моргунов, Е. В. PostgreSQL. Основы языка SQL / Е. П. Моргунов, Е. В. Рогова, П. В. Лузанова // Спб.: Издательство БХВ-Петербург, 2018. - С. 336
5. Чудинов, И. Л. Организация баз данных: Учебное пособие / И. Л.
Чудинов, В. В. Осипова // Томск: Издательство Томского политехнического университета, 2012. - С.139
6. Тиори Т. Проектирование структур базы данных / Т. Тиори, Дж. Фрай // Москва: Издательство Мир, 1985. - С.287
7. Радченко, М. Г. 1С:Предприятие 8.3. Практическое пособие разработчика/ М. Г. Радченко, Е. Ю. Хрусталева // Москва: Издательство 1С-Паблишинг, 2013. - С.964
8. Унгер Р. UX-дизайн. Практическое руководство по проектированию опыта взаимодействия / Р. Унгер, К. Чендлер // Москва: Издательство Символ, 2011. - С.327
9. Хрусталева Е. Ю. Разработка сложных отчетов в «1С:Предприятии 8.3». Система компоновки данных/ Е. Ю. Хрусталева // Москва: Издательство 1С-Паблишинг, 2013. - С.513
ПРИЛОЖЕНИЕ 1
(обязательное)
Логическая модель
ПРИЛОЖЕНИЕ 2
(Обязательное)
Справка о внедрении автоматизированной системы
ПРИЛОЖЕНИЕ 3
(Справочное)
Листинг кода программы
Ниже представлена функция выгрузки поступлений товаров и услуг в подключенную базу данных.
&НаСервере
// ============================================
// Выгрузить только поступление товаров и услуг
// ============================================
Функция ВыгрузитьПТУ(Док, ОрганизацияТам)
_Перевозчик = НайтиКонтрагента(Док.Перевозчик);
ПеревозчикТам = НайтиОбъектТам(_Перевозчик, 1);
Если ПеревозчикТам = Неопределено Тогда
ПеревозчикТам = СоздатьОбъектТам(_Перевозчик, 1);
КонецЕсли;
ДокТам2 = НайтиДокументТам(Док,1);
Если ДокТам2 = Неопределено Тогда
ДокТам2 = Бух1С.Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
Бух1С.ЗаполнениеДокументов.Заполнить(ДокТам2);
ДокТам2.ВидОперации = Бух1С.Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Услуги; //ПеречислениеСсылка.ВидыОперацийПоступлениеТоваровУслуг
Иначе
Если ДокТам2.Проведен Тогда
ДокТам2.Записать(Бух1С.РежимЗаписиДокумента.ОтменаПроведения);
КонецЕсли;
ДокТам2.Услуги.Очистить();
КонецЕсли;
ДокТам2.Организация = ОрганизацияТам;
ДокТам2.ВалютаДокумента = Бух1С.Константы.ВалютаРегламентированногоУчета.Получить();
ДокТам2.Контрагент = ПеревозчикТам;
ТипДоговора = Бух1С.Перечисления.ВидыДоговоровКонтрагентов.СПоставщиком;
Если ЗначениеЗаполнено(Док.СчетП) тогда
ДокТам2.НомерВходящегоДокумента = СокрЛП(Док.СчетП);
ДокТам2.ДатаВходящегоДокумента = Док.СчетПДата;
ДокТам2.Дата = Док.СчетПДата;
_СчетП = "Счет " + СокрЛП(Док.СчетП) + " от " + Формат(Док.СчетПДата,"ДФ=dd.MM.yyyy");
Иначе
Сообщить("Для документа "+Док+" не найден счет от перевозчика!" + Символы.ПС + "Использован основной договор!");
_СчетП = "С поставщиком";
КонецЕсли;
//КонецЕсли;
ДоговорТам2 = ПолучитьОснДоговорТам(ПеревозчикТам, ТипДоговора, _СчетП, ДокТам2);
ДокТам2.ДоговорКонтрагента = ДоговорТам2;
ДокТам2.СчетУчетаРасчетовСКонтрагентом = Бух1С.ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками;
ДокТам2.СчетУчетаРасчетовПоАвансам = Бух1С.ПланыСчетов.Хозрасчетный.РасчетыПоАвансамВыданным;
ДокТам2.Комментарий = "@Документ загружен из УТ №" + ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Док.Номер, Истина, Истина) + " от " + Формат(Док.Дата, "ДФ=dd.MM.yyyy");
// Заполняем табличную часть
ТЧ = Док.Услуги;
НужнаЛиСчетФактура = Ложь;
Если Док.ОплатаП_Форма = Справочники.Э_ФормыОплаты.БН тогда
ДокТам2.СуммаВключаетНДС = Истина;
ДокТам2.НДСВключенВСтоимость = Ложь;
Сумма = 0;
СуммаНДС = 0;
Для Каждого СтрТЧ Из ТЧ Цикл
Если ЗначениеЗаполнено(СтрТЧ.ОплатаП_Ставка) тогда
УслугаТам = НайтиОбъектТам(СтрТЧ.Услуга, 2);
Если УслугаТам = Неопределено Тогда
Сообщить("Для номенклатуры " + СтрТЧ.Услуга.Наименование + " не настроено соответствие", СтатусСообщения.Важное);
УслугаТам = СоздатьОбъектТам(СтрТЧ.Услуга, 2);
КонецЕсли;
НовСтр2 = ДокТам2.Услуги.Добавить();
//*
НовСтр2.Номенклатура = Бух1С.Справочники.Номенклатура.НайтиПоКоду("00000000172");
//*
НовСтр2.Содержание = "по маршруту: " + Док.Маршрут + ", " + Формат(Док.ДатаЗагрузки,"ДФ=dd.MM.yyyy") + "-" + Формат(Док.ДатаВыгрузки,"ДФ=dd.MM.yyyy");
//НовСтр2.Номенклатура = УслугаТам;
НовСтр2.Количество = 1;
НовСтр2.Сумма = СтрТЧ.ОплатаП_Ставка;
НовСтр2.Цена = СтрТЧ.ОплатаП_Ставка;
НовСтр2.СтавкаНДС = Бух1С.Перечисления.СтавкиНДС.НДС18;
НовСтр2.СуммаНДС = СтрТЧ.ОплатаП_Ставка * 18/118 ;
Сумма = Сумма + СтрТЧ.ОплатаП_Ставка;
СуммаНДС = СуммаНДС + СтрТЧ.ОплатаП_Ставка * 18/118;
НовСтр2.СчетЗатрат = Бух1С.ПланыСчетов.Хозрасчетный.НайтиПоКоду("20.01");
НовСтр2.СчетУчетаНДС = Бух1с.ПланыСчетов.Хозрасчетный.НайтиПоКоду("19.03");
НовСтр2.СчетЗатратНУ = Бух1С.ПланыСчетов.Хозрасчетный.НайтиПоКоду("20.01");
НовСтр2.СубконтоНУ1 = Бух1С.Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000003");
НовСтр2.СубконтоНУ2 = Бух1С.Справочники.СтатьиЗатрат.НайтиПоКоду("000000032");
НовСтр2.СубконтоНУ3 = Бух1С.Справочники.Номенклатура.НайтиПоКоду("00000000172");
НовСтр2.Субконто1 = Бух1С.Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000003");
НовСтр2.Субконто2 = Бух1С.Справочники.СтатьиЗатрат.НайтиПоКоду("000000032");
НовСтр2.Субконто3 = Бух1С.Справочники.Номенклатура.НайтиПоКоду("00000000172");
КонецЕсли;
КонецЦикла; // по ТЧ
НужнаЛиСчетФактура = Истина;
Иначе
Для Каждого СтрТЧ Из ТЧ Цикл
Если ЗначениеЗаполнено(СтрТЧ.ОплатаП_Ставка) тогда
УслугаТам = НайтиОбъектТам(СтрТЧ.Услуга, 2);
Если УслугаТам = Неопределено Тогда
Сообщить("Для номенклатуры " + СтрТЧ.Услуга.Наименование + " не настроено соответствие", СтатусСообщения.Важное);
УслугаТам = СоздатьОбъектТам(СтрТЧ.Услуга, 2);
КонецЕсли;
НовСтр2 = ДокТам2.Услуги.Добавить();
НовСтр2.Содержание = "по маршруту: " + Док.Маршрут + ", " + Формат(Док.ДатаЗагрузки,"ДФ=dd.MM.yyyy") + "-" + Формат(Док.ДатаВыгрузки,"ДФ=dd.MM.yyyy");
НовСтр2.Номенклатура = Бух1С.Справочники.Номенклатура.НайтиПоКоду("00000000172");;
НовСтр2.Количество = 1;
НовСтр2.Сумма = СтрТЧ.ОплатаП_Ставка;
НовСтр2.Цена = СтрТЧ.ОплатаП_Ставка;
НовСтр2.СтавкаНДС = Бух1С.Перечисления.СтавкиНДС.БезНДС;
НовСтр2.СуммаНДС = 0;
НовСтр2.СчетЗатрат = Бух1С.ПланыСчетов.Хозрасчетный.НайтиПоКоду("20.01");
НовСтр2.СчетЗатратНУ = Бух1С.ПланыСчетов.Хозрасчетный.НайтиПоКоду("20.01");
НовСтр2.СубконтоНУ1 = Бух1С.Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000003");
НовСтр2.СубконтоНУ2 = Бух1С.Справочники.СтатьиЗатрат.НайтиПоКоду("000000032");
НовСтр2.СубконтоНУ3 = Бух1С.Справочники.Номенклатура.НайтиПоКоду("00000000172");
НовСтр2.Субконто1 = Бух1С.Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000003");
НовСтр2.Субконто2 = Бух1С.Справочники.СтатьиЗатрат.НайтиПоКоду("000000032");
НовСтр2.Субконто3 = Бух1С.Справочники.Номенклатура.НайтиПоКоду("00000000172");
Если НДСОрганизации(Док.Организация) тогда
//НовСтр2.СчетУчетаНДС = Бух1с.ПланыСчетов.Хозрасчетный.НайтиПоКоду("19.03");
//НовСтр2.СчетЗатрат = Бух1С.ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1");
//НовСтр2.СчетЗатратНУ = Бух1С.ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1");
КонецЕсли;
КонецЕсли;
КонецЦикла; // по ТЧ
КонецЕсли;
Попытка
ДокТам2.Записать();
СохранитьПривязкуДокТам(Док, ДокТам2);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Попытка
Если НужнаЛиСчетФактура = Истина тогда
СозданиеСчетФактурыДляНДС(НужнаЛиСчетФактура,Док,ОрганизацияТам,ПеревозчикТам,ДокТам2,Сумма,СуммаНДС)
КонецЕсли;
ДокТам2.Записать(Бух1С.РежимЗаписиДокумента.Проведение);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Возврат ДокТам2;
КонецФункции
Ниже представлена процедура переноса документов в подключенную базу данных.
&НаСервере
Процедура ВыполнитьОбменНаСервере()
Если Бух1С = неопределено тогда
ПодключитьИБ();
КонецЕсли;
Если Бух1С = неопределено тогда
Сообщить("Бухгалтерия не подключена! Выгрузка невозможна.");
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("НачДата", НачалоДня(НачалоПериода));
Запрос.УстановитьПараметр("КонДата", КонецДня(КонецПериода));
Виктори = Организация;
Запрос.УстановитьПараметр("Орг", Виктори);
Запрос.Текст = "ВЫБРАТЬ
| СРС.Ссылка
|ИЗ
| Документ.СчетНаОплатуКлиенту КАК СРС
|ГДЕ
| СРС.Проведен
| И СРС.Организация = &Орг
| И СРС.Дата МЕЖДУ &НачДата И &КонДата";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Док = Выборка.Ссылка;
ОрганизацияТам = НайтиОбъектТам(Док.Организация, 3);
КонтрагентТам = НайтиОбъектТам(Док.Контрагент, 1);
Если КонтрагентТам = Неопределено Тогда
КонтрагентТам = СоздатьОбъектТам(Док.Контрагент, 1);
КонецЕсли;
Сообщить(Док);
ВыгрузитьРТУ(Док.ДокументОснование, КонтрагентТам, ОрганизацияТам,Виктори);
КонецЦикла;
Если Поступления тогда
ВыгрузкаПРС();
КонецЕсли;
Номера = Новый Запрос;