Материал: Автоматизация процесса продажи нефтепродуктов для ООО «Агронефтепродукт»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
90
13. Пржиялковский В.В. Введение в Oracle. М.: НОУ "Интуит", 2016. 358с.
14. Руководство по установке для SQL Server в Linux [Электронный ресурс] //
URL:https://docs.microsoft.com/ru-ru/sql/linux/sql-server-linux-setup?view=sql-
server-2017 (дата обращения: 04.07.2019)
15. Сравнение языков программирования [Электронный ресурс] //
URL:https://ru.wikipedia.org/wiki/Сравнение_языков_программирования (дата
обращения: 04.07.2019)
16. Устав ООО «Агронефтепродукт»
17. Флойд К.С. Введение в MySQL. 2-е изд. М.: Интуит, 2016. 280 c.
18. Документация к Postgres Pro Standard 11.4.1 [Электронный ресурс] //
URL:https://postgrespro.ru/docs/postgrespro/11/ (дата обращения: 04.07.2019)
19. Шавенько Н.К. Основы теории информации и кодирования. Учебное пособие.
М,: Изд-во МИИГАиК, 2015. 125 с.
20. Шарп Д. Microsoft Visual C#. Подробное руководство. 8-е издание СПб.:
Питер, 2017. 848 с.
21. Моргунов Е. П. PostgreSQL. Основы языка SQL: учеб. пособие / Е. П.
Моргунов; под ред. Е. В. Рогова, П. В. Лузанова. СПб.: БХВ-Петербург,
2018. 336 с.
22. CRM [Электронный ресурс] // URL:http://solutions.1c.ru/crm (дата
обращения: 04.07.2019)
23. Bitrix CRM [Электронный ресурс] //
URL:https://www.bitrix24.ru/features/crm.php (дата обращения: 04.07.2019)
24. Dynamics CRM [Электронный ресурс] // URL:https://www.microsoft.com/ru-
ru/dynamics365/sales (дата обращения: 04.07.2019)
25. RetailCRM [Электронный ресурс] // URL:https://www.retailcrm.ru/about (дата
обращения: 04.07.2019)
26. SAP CRM [Электронный ресурс] // URL:http://sap-crm.ru/ (дата обращения:
04.07.2019)
27. Terrasoft CRM [Электронный ресурс] // URL:https://www.terrasoft.ru/sales (дата
обращения: 04.07.2019)
28. Wire CRM [Электронный ресурс] // URL:https://wirecrm.com/ (дата обращения:
04.07.2019)
91
Приложения
Приложение 1: Код модуля формы обработки «Загрузка продаж на АЗС»
&НаСервере
Процедура ВыполнитьЗагрузкуНаСервере(АдресФайла, Загружать)
ФайлПриемник = ПолучитьИмяВременногоФайла("xml");
ДанныеХранилища = ПолучитьИзВременногоХранилища(АдресФайла);
ДанныеХранилища.Записать(ФайлПриемник);
Объект.ИмяФайлаДанных = ФайлПриемник;
Если НЕ ЗначениеЗаполнено(Объект.КассаККМ) Тогда
сообщить("не выбрана Касса ККМ");
Возврат;
КонецЕсли;
Если Загружать Тогда
//сравним код АЗС из файла с кассой
ПозКодКассы = СтрНайти(Объект.КассаККМ.Наименование, "АЗС-");
Если ПозКодКассы = 0 Тогда
сообщить("в наименовании кассы не удалось найти код АЗС",
СтатусСообщения.Внимание);
Иначе
КодКассы = Число(СокрЛП(Сред(Объект.КассаККМ.Наименование,
ПозКодКассы+4, 2)));
Если НЕ Число(Объект.КодАЗС) = КодКассы Тогда
сообщить("в файле код кассы не соответствует выбранной
Кассе ККМ", СтатусСообщения.ОченьВажное);
Возврат;
КонецЕсли;
КонецЕсли;
Для Каждого Стр Из ТЗ_ВидыТоплива Цикл
Если НЕ ЗначениеЗаполнено(Стр.Номенклатура) Тогда
сообщить("в таблице 'Виды топлива' не задано соответствие
для вида " + Стр.Топливо);
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Стр.Коэф) Тогда
сообщить("в таблице 'Виды топлива' не задан Коэффициент
(зависит от ед.изм.) для вида " + Стр.Топливо);
Возврат;
КонецЕсли;
КонецЦикла;
Иначе
//очищаем табл.контрагентов
ТЗ_КонтрДоговора.Очистить();
КонецЕсли;
ТЗ_Топливо = РеквизитФормыВЗначение("ТЗ_ВидыТоплива");
ТЗ_Контр = РеквизитФормыВЗначение("ТЗ_КонтрДоговора");
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
ЗаполнитьЗначенияСвойств(ОбъектДляСервера, Объект);
ЕстьЗаправкиСотрудников = ОбъектДляСервера.ВыполнитьЗагрузкуXML(Загружать,
ТЗ_Топливо, ТЗ_Контр); //Соответствие_ВидыТоплива);
Если НЕ Загружать Тогда
ЗначениеВРеквизитФормы(ОбъектДляСервера, "Объект");
ЗначениеВРеквизитФормы(ТЗ_Топливо, "ТЗ_ВидыТоплива");
ЗначениеВРеквизитФормы(ТЗ_Контр, "ТЗ_КонтрДоговора");
КонецЕсли;
ЭтаФорма.Элементы.НадписьЗаправкиСотрудников.Заголовок =
?(ЕстьЗаправкиСотрудников, "В файле есть данные о заправках сотрудников", "");
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьЗагрузку(Команда)
Если СокрЛП(ИмяФайлаОбмена) = "" Тогда
Сообщить("Не выбран файл для загрузки!");
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.КассаККМ) Тогда
Сообщить("Не указана Касса ККМ!");
Возврат;
КонецЕсли;
ОчиститьСообщения();
ИмяФайла = СокрЛП(ИмяФайлаОбмена);
//читаем файл
ВыбФайл = Новый Файл(ИмяФайла);
Если НЕ ВыбФайл.Существует() Тогда
Сообщить("Файл не существует!");
Возврат;
КонецЕсли;
Объект.ИмяФайла = ВыбФайл.Имя;
ДвоичныеДанные = Новый ДвоичныеДанные(СокрЛП(ИмяФайлаОбмена));
АдресФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый
УникальныйИдентификатор);
ВыполнитьЗагрузкуНаСервере(АдресФайла, Истина);
КонецПроцедуры
&НаКлиенте
Процедура КаталогФайловНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если НЕ ЗначениеЗаполнено(Объект.КассаККМ) Тогда
Сообщить("Не указана Касса ККМ!");
Возврат;
КонецЕсли;
ДиалогВыбораФайла = Новый
ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
// Установка каталога выбора файла по умолчанию
ДиалогВыбораФайла.Каталог = "C:\Topaz\TopazOffice\RemoteServer\Reports";
// Фильтр по маске файла, соответствующей отчету о закрытии смены
ДиалогВыбораФайла.Фильтр = "Отчеты о закрытии смены|CloseSession*.XML";
Если ДиалогВыбораФайла.Выбрать() Тогда
ИмяФайлаОбмена = ДиалогВыбораФайла.ПолноеИмяФайла;
ИмяФайла = СокрЛП(ИмяФайлаОбмена);
//читаем файл
ВыбФайл = Новый Файл(ИмяФайла);
Если НЕ ВыбФайл.Существует() Тогда
Сообщить("Файл не существует!");
Возврат;
КонецЕсли;
ОчиститьСообщения();
Объект.ИмяФайла = ВыбФайл.Имя;
ДвоичныеДанные = Новый ДвоичныеДанные(СокрЛП(ИмяФайлаОбмена));
АдресФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый
УникальныйИдентификатор);
ВыполнитьЗагрузкуНаСервере(АдресФайла, Ложь); //сначала покажем
пользователю таблицы топлива и контрагентов
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ЭтаФорма.Элементы.НадписьЗаправкиСотрудников.Заголовок = "";
КонецПроцедуры
&НаКлиенте
Процедура ТЗ_КонтрДоговораДоговорПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТЗ_КонтрДоговора.ТекущиеДанные;
ТекущаяСтрока.ВидЦены = ПолучитьНаСервере(ТекущаяСтрока.Договор,
"К_ВидЦены");
КонецПроцедуры
&НаСервере
Функция ПолучитьНаСервере(Откуда, Реквизит)
Возврат Откуда.К_ВидЦены;
КонецФункции
&НаСервере
Функция ПолучитьНаСервереЕдИзм(Откуда)
Возврат Откуда.ЕдиницаИзмерения;
КонецФункции
&НаКлиенте
Процедура ТЗ_ВидыТопливаНоменклатураПриИзменении(Элемент)
ТекущаяСтрока = Элементы.ТЗ_ВидыТоплива.ТекущиеДанные;
ТекущаяСтрока.ЕдИзм = ПолучитьНаСервереЕдИзм(ТекущаяСтрока.Номенклатура);
КонецПроцедуры
&НаКлиенте
Процедура КассаККМПриИзменении(Элемент)
ОчиститьСообщения();
Если ЗначениеЗаполнено(ИмяФайлаОбмена) Тогда
//с правильной кассой надо перечитать файл
ДвоичныеДанные = Новый ДвоичныеДанные(СокрЛП(ИмяФайлаОбмена));
АдресФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные, Новый
УникальныйИдентификатор);
ВыполнитьЗагрузкуНаСервере(АдресФайла, Ложь); //сначала покажем
пользователю таблицы топлива и контрагентов
КонецЕсли;
КонецПроцедуры
Источник: https://baza.diplomsite.ru/previewfile/2132