Диплом: Автоматизация управлением процесса отгрузки товара в ООО "ТЭК Викинг"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
119
EndFunction
// Возвращает значение для идентификации общего типа "Регистры расчета"
//
// Тип: Строка
//
Function ИмяТипаРегистрыРасчета() Экспорт
Возврат "РегистрыРасчета";
EndFunction
// Возвращает значение для идентификации общего типа "Документы"
//
// Тип: Строка
//
Function ИмяТипаДокументы() Экспорт
Возврат "Документы";
EndFunction
// Возвращает значение для идентификации общего типа "Справочники"
//
// Тип: Строка
//
Function ИмяТипаСправочники() Экспорт
Возврат "Справочники";
EndFunction
// Возвращает значение для идентификации общего типа "Перечисления"
//
// Тип: Строка
//
Function ИмяТипаПеречисления() Экспорт
Возврат "Перечисления";
120
EndFunction
// Function-свойство: возвращает значение для идентификации общего типа
"Отчеты"
//
// Тип: Строка
//
Function ИмяТипаОтчеты() Экспорт
Возврат "Отчеты";
EndFunction
// Function-свойство: возвращает значение для идентификации общего типа
"Обработки"
//
// Тип: Строка
//
Function ИмяТипаОбработки() Экспорт
Возврат "Обработки";
EndFunction
// Возвращает значение для идентификации общего типа "ПланыОбмена"
//
// Тип: Строка
//
Function ИмяТипаПланыОбмена() Экспорт
Возврат "ПланыОбмена";
EndFunction
// Возвращает значение для идентификации общего типа "Планы видов
характеристик"
//
// Тип: Строка
//
Function ИмяТипаПланыВидовХарактеристик() Экспорт
121
Возврат "ПланыВидовХарактеристик";
EndFunction
// Возвращает значение для идентификации общего типа "Бизнес-процессы"
//
// Тип: Строка
//
Function ИмяТипаБизнесПроцессы() Экспорт
Возврат "БизнесПроцессы";
EndFunction
// Возвращает значение для идентификации общего типа "Задачи"
//
// Тип: Строка
//
Function ИмяТипаЗадачи() Экспорт
Возврат "Задачи";
EndFunction
// Возвращает значение для идентификации общего типа "Планы счетов"
//
// Тип: Строка
//
Function ИмяТипаПланыСчетов() Экспорт
Возврат "ПланыСчетов";
EndFunction
// Возвращает значение для идентификации общего типа "Планы видов расчета"
//
// Тип: Строка
//
Function ИмяТипаПланыВидовРасчета() Экспорт
Возврат "ПланыВидовРасчета";
EndFunction
122
// Возвращает значение для идентификации общего типа "Константы"
//
// Тип: Строка
//
Function ИмяТипаКонстанты() Экспорт
Возврат "Константы";
EndFunction
// Возвращает значение для идентификации общего типа "Журналы документов"
//
// Тип: Строка
//
Function ИмяТипаЖурналыДокументов() Экспорт
Возврат "ЖурналыДокументов";
EndFunction
// Возвращает значение для идентификации общего типа "Последовательности"
//
// Тип: Строка
//
Function ИмяТипаПоследовательности() Экспорт
Возврат "Последовательности";
EndFunction
// Возвращает значение для идентификации общего типа "РегламентныеЗадания"
//
// Тип: Строка
//
Function ИмяТипаРегламентныеЗадания() Экспорт
Возврат "РегламентныеЗадания";
EndFunction
ProcedureХранилищеУдалить(МенеджерХранилища, КлючОбъекта,
КлючНастроек, ИмяПользователя)
123
If ПравоДоступа("СохранениеДанныхПользователя", Метаданные) Then
МенеджерХранилища.Удалить(КлючОбъекта, КлючНастроек, ИмяПользователя);
EndIf;
КонецПроцедуры
ProcedureВключитьИспользованиеЖурналаРегистрации(СписокУровней =
Неопределено) Экспорт
МассивУровней = Новый Массив();
If СписокУровней = Неопределено Then
МассивУровней.Добавить(УровеньЖурналаРегистрации.Информация);
МассивУровней.Добавить(УровеньЖурналаРегистрации.Ошибка);
МассивУровней.Добавить(УровеньЖурналаРегистрации.Предупреждение);
МассивУровней.Добавить(УровеньЖурналаРегистрации.Примечание);
Else
МассивУровней =
УровниСобытияЖурналаРегистрацииПоСтроке(СписокУровней);
EndIf;
МонопольныйРежимУстановленРанее = МонопольныйРежим();
УстановитьМонопольныйРежим(Истина);
Попытка
УстановитьИспользованиеЖурналаРегистрации(МассивУровней);
Исключение
If Не МонопольныйРежимУстановленРанее Then
УстановитьМонопольныйРежим(Ложь);
EndIf;
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
Function ЗначениеРазделителяСеанса() Экспорт
If НЕ ОбщегоНазначенияПовтИсп.РазделениеВключено() Then
Возврат 0;
124
Else
ЗначениеРазделителя = Неопределено;
ПриПолученииЗначенияРазделителяСеанса(ЗначениеРазделителя);
Возврат ЗначениеРазделителя;
EndIf;
EndFunction
// Возвращает флаг использования разделителя ОбластьДанных для текущего
сеанса.
//
// Возвращаемое значение:
// Булево - Истина разделение используется, Else нет.
//
Function ИспользованиеРазделителяСеанса() Экспорт
ИспользованиеРазделителя = Неопределено;
ПриПолученииИспользованияРазделителяСеанса(ИспользованиеРазделителя);
Возврат ИспользованиеРазделителя;
EndFunction
ProcedureОбновитьДанныеКэшаВерсий(Знач Идентификатор, Знач
ТипДанных, Знач ПараметрыПолучения) Экспорт
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТаблицаКэша.ДатаОбновления КАК ДатаОбновления,
| ТаблицаКэша.Данные КАК Данные,
| ТаблицаКэша.ТипДанных КАК ТипДанных
|ИЗ
| РегистрСведений.КэшПрограммныхИнтерфейсов КАК ТаблицаКэша
|ГДЕ
125
| ТаблицаКэша.Идентификатор = &Идентификатор
| И ТаблицаКэша.ТипДанных = &ТипДанных";
Идентификатор = Идентификатор;
Запрос.УстановитьПараметр("Идентификатор", Идентификатор);
Запрос.УстановитьПараметр("ТипДанных", ТипДанных);
НачатьТранзакцию();
ОшибкаУстановкиБлокировки = Ложь;
Попытка
СтруктураКлюча = Новый Структура("Идентификатор, ТипДанных",
Идентификатор, ТипДанных);
Ключ =
РегистрыСведений.КэшПрограммныхИнтерфейсов.СоздатьКлючЗаписи(Структур
аКлюча);
Попытка
ЗаблокироватьДанныеДляРедактирования(Ключ);
Исключение
// Данные уже обновляются из другого сеанса
ОшибкаУстановкиБлокировки = Истина;
ВызватьИсключение;
КонецПопытки;
Блокировка_ = Новый БлокировкаДанных;
ЭлементБлокировки_ =
Блокировка.Добавить("РегистрСведений.КэшПрограммныхИнтерфейсов");
ЭлементБлокировки_.УстановитьЗначение("Идентификатор", Идентификатор);
ЭлементБлокировки_.УстановитьЗначение("ТипДанных", ТипДанных);
Блокировка_.Заблокировать();
Результат = Запрос.Выполнить();
// Убедимся что данные требуют обновления
If НЕ Результат.Пустой() Then
ВыборкаЗапроса = Результат.Выбрать();
126
ВыборкаЗапроса.Следующий();
If НЕ ЗаписьКэшаВерсийУстарела(ВыборкаЗапроса) Then
// Данные актуальны
ОтменитьТранзакцию();
Возврат;
EndIf;
EndIf;
Набор =
РегистрыСведений.КэшПрограммныхИнтерфейсов.СоздатьНаборЗаписей();
Набор.Отбор.Идентификатор.Установить(Идентификатор);
Набор.Отбор.ТипДанных.Установить(ТипДанных);
Запись = Набор.Добавить();
Запись.Идентификатор = Идентификатор;
Запись.ТипДанных = ТипДанных;
Запись.ДатаОбновления = ТекущаяУниверсальнаяДата();
If Не ОбщегоНазначенияПовтИсп.РазделениеВключено() Или Не
ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных() Then
Данные = ПодготовитьДанныеКэшаВерсий(ТипДанных, ПараметрыПолучения);
Запись.Данные = Новый ХранилищеЗначения(Данные);
Else
Набор.ДополнительныеСвойства.Вставить("ПараметрыПолучения",
ПараметрыПолучения);
EndIf;
Набор.Записать();
ЗафиксироватьТранзакцию();
Исключение
ОтменитьТранзакцию();
If ОшибкаУстановкиБлокировки Then
Возврат;
Else
127
ВызватьИсключение;
EndIf;
КонецПопытки;
КонецПроцедуры
// Подготавливает данные для кэша программных интерфейсов.
//
// Параметры:
// ТипДанных -
ПеречислениеСсылка.ТипыДанныхКэшаПрограммныхИнтерфейсов -
// тип обновляемых данных
// ПараметрыПолучения - Массив - дополнительные параметры получения данных
в кэш
//
Function ПодготовитьДанныеКэшаВерсий(Знач ТипДанных, Знач
ПараметрыПолучения) Экспорт
If ТипДанных =
Перечисления.ТипыДанныхКэшаПрограммныхИнтерфейсов.ВерсииИнтерфейса
Then
Данные = ПолучитьВерсииИнтерфейсаВКэш(ПараметрыПолучения[0],
ПараметрыПолучения[1]);
ElseIf ТипДанных =
Перечисления.ТипыДанныхКэшаПрограммныхИнтерфейсов.ОписаниеWebСерви
са Then
Данные = ПолучитьWSDL(ПараметрыПолучения[0], ПараметрыПолучения[1],
ПараметрыПолучения[2], ПараметрыПолучения[3]);
Else
ШаблонТекста = НСтр("ru = 'Неизвестный тип данных кэша версий: %1'");
ТекстСообщения =
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста
, ТипДанных);
128
ВызватьИсключение(ТекстСообщения);
EndIf;
Возврат Данные;
EndFunction
// Возвращает факт устаревания записи кэша версий
//
// Параметры:
// Запись - РегистрСведенийМенеджерЗаписи.КэшПрограммныхИнтерфейсов -
запись
// факт устаревания которой требуется проверить
//
// Возвращаемое значение:
// Булево - признак устаревания записи
//
Function ЗаписьКэшаВерсийУстарела(Знач Запись) Экспорт
If Запись.ТипДанных =
Перечисления.ТипыДанныхКэшаПрограммныхИнтерфейсов.ОписаниеWebСерви
са Then
Возврат НЕ ЗначениеЗаполнено(Запись.ДатаОбновления)
Else
Возврат Запись.ДатаОбновления + 86400 < ТекущаяУниверсальнаяДата();
EndIf;
EndFunction
Приложение Б Скриншоты разработанной конфигурации

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)