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

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
109
Возврат Истина;
EndFunction
// Function ИнформационнаяБазаФайловая определяет режим эксплуатации
// информационной базы файловый (Истина) или Серверный (Ложь).
// При проверке используется СтрокаСоединенияИнформационнойБазы, которую
// можно указать явно.
//
// Параметры:
// СтрокаСоединенияИнформационнойБазы - Строка - параметр используется, If
// нужно проверить строку соединения не текущей информационной базы.
//
// Возвращаемое значение:
// Булево.
//
Function ИнформационнаяБазаФайловая(Знач
СтрокаСоединенияИнформационнойБазы = "") Экспорт
If ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Then
СтрокаСоединенияИнформационнойБазы =
СтрокаСоединенияИнформационнойБазы();
EndIf;
Возврат Найти(Врег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
EndFunction
// Формирует соответствие для удаления объектов.
//
Function ПолучитьОбщийСписокИсключенийПоискаСсылок() Экспорт
МассивИсключенийИзСобытия = Новый Массив;
ОбработчикиСобытия = ОбработчикиСлужебногоСобытия(
"СтандартныеПодсистемы.БазоваяФункциональность\ПриДобавленииИсключени
йПоискаСсылок");
Для Каждого Обработчик Из ОбработчикиСобытия Цикл
110
Обработчик.Модуль.ПриДобавленииИсключенийПоискаСсылок(МассивИсключе
нийИзСобытия);
КонецЦикла;
МассивИсключенийИзПереопределяемогоМодуля =
ОбщегоНазначенияПереопределяемый.ПолучитьИсключенияПоискаСсылок();
ИсключенияПоискаСсылок = Новый Соответствие;
ДобавитьИсключенияПоискаСсылок(ИсключенияПоискаСсылок,
МассивИсключенийИзСобытия);
ДобавитьИсключенияПоискаСсылок(ИсключенияПоискаСсылок,
МассивИсключенийИзПереопределяемогоМодуля);
Возврат ИсключенияПоискаСсылок;
EndFunction
Function ЭтоПодчиненныйУзелРИБ() Экспорт
Возврат ПланыОбмена.ГлавныйУзел() <> Неопределено;
EndFunction
// Возвращает Истина при необходимости обновления конфигурации
информационной базы подчиненного узла РИБ.
// В главном узле всегда - Ложь.
//
Function ТребуетсяОбновлениеКонфигурацииПодчиненногоУзлаРИБ() Экспорт
Возврат ЭтоПодчиненныйУзелРИБ() И КонфигурацияИзменена();
EndFunction
Function ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
If ОбщегоНазначенияПовтИсп.РазделениеВключено()
И Не ОбщегоНазначенияПовтИсп.ДоступноИспользованиеРазделенныхДанных()
Then
Отказ = Истина;
Возврат Ложь;
EndIf;
If Форма.Параметры.Свойство("АвтоТест") И
111
ПравоДоступа("Администрирование", Метаданные) Then
// Возврат при получении формы для анализа.
Возврат Ложь;
EndIf;
If
ОбщегоНазначенияКлиентСервер.ПодсистемаСуществует("СтандартныеПодсисте
мы.ОбновлениеВерсииИБ") Then
МодульОбновлениеИнформационнойБазы =
ОбщегоНазначенияКлиентСервер.ОбщийМодуль("ОбновлениеИнформационнойБ
азы");
If
МодульОбновлениеИнформационнойБазы.ВыполняетсяОбновлениеИнформацио
ннойБазы() Then
Отказ = Истина;
Возврат Ложь;
EndIf;
EndIf;
Возврат Истина;
EndFunction
Function ИмяБазовогоТипаПоОбъектуМетаданных(ОбъектМетаданных) Экспорт
If Метаданные.Документы.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаДокументы();
ElseIf Метаданные.Справочники.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаСправочники();
ElseIf Метаданные.Перечисления.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаПеречисления();
ElseIf Метаданные.РегистрыСведений.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаРегистрыСведений();
ElseIf Метаданные.РегистрыНакопления.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаРегистрыНакопления();
112
ElseIf Метаданные.РегистрыБухгалтерии.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаРегистрыБухгалтерии();
ElseIf Метаданные.РегистрыРасчета.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаРегистрыРасчета();
ElseIf Метаданные.ПланыОбмена.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаПланыОбмена();
ElseIf Метаданные.ПланыВидовХарактеристик.Содержит(ОбъектМетаданных)
Then
Возврат ИмяТипаПланыВидовХарактеристик();
ElseIf Метаданные.БизнесПроцессы.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаБизнесПроцессы();
ElseIf Метаданные.Задачи.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаЗадачи();
ElseIf Метаданные.ПланыСчетов.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаПланыСчетов();
ElseIf Метаданные.ПланыВидовРасчета.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаПланыВидовРасчета();
ElseIf Метаданные.Константы.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаКонстанты();
ElseIf Метаданные.ЖурналыДокументов.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаЖурналыДокументов();
ElseIf Метаданные.Последовательности.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаПоследовательности();
ElseIf Метаданные.РегламентныеЗадания.Содержит(ОбъектМетаданных) Then
Возврат ИмяТипаРегламентныеЗадания();
Else
Возврат "";
EndIf;
EndFunction
113
// Проверка того, что тип имеет ссылочный тип данных
//
Function ЭтоСсылка(Тип) Экспорт
Возврат Справочники.ТипВсеСсылки().СодержитТип(Тип)
ИЛИ Документы.ТипВсеСсылки().СодержитТип(Тип)
ИЛИ Перечисления.ТипВсеСсылки().СодержитТип(Тип)
ИЛИ ПланыВидовХарактеристик.ТипВсеСсылки().СодержитТип(Тип)
ИЛИ ПланыСчетов.ТипВсеСсылки().СодержитТип(Тип)
ИЛИ ПланыВидовРасчета.ТипВсеСсылки().СодержитТип(Тип)
ИЛИ БизнесПроцессы.ТипВсеСсылки().СодержитТип(Тип)
ИЛИ
БизнесПроцессы.ТипВсеСсылкиТочекМаршрутаБизнесПроцессов().СодержитТип
(Тип)
ИЛИ Задачи.ТипВсеСсылки().СодержитТип(Тип)
ИЛИ ПланыОбмена.ТипВсеСсылки().СодержитТип(Тип);
EndFunction
// Только для использования в процедуре
ОбщегоНазначенияПереопределяемый.Заполнить-
// ТаблицуПереименованияОбъектовМетаданных() для описания переименований
объектов метаданных.
//
// Параметры:
// Итог - передается в процедуру подсистемой БазоваяФункциональность.
// ВерсияИБ - Строка - версия при переходе на которую нужно выполнить
переименование.
// СтароеПолноеИмя - Строка - старое полное имя объекта метаданных, которое
нужно переименовать.
// НовоеПолноеИмя - Строка - новое полное имя объекта метаданных, на которое
нужно переименовать.
// ИдентификаторБиблиотеки - Строка - внутренний идентификатор библиотеки, к
114
которой относится ВерсияИБ,
// для основной конфигурации не требуется.
//
ProcedureДобавитьПереименование(Итог, ВерсияИБ, СтароеПолноеИмя,
НовоеПолноеИмя, ИдентификаторБиблиотеки = "") Экспорт
СтароеИмяКоллекции = ВРег(ИмяКоллекции(СтароеПолноеИмя));
НовоеИмяКоллекции = ВРег(ИмяКоллекции(НовоеПолноеИмя));
ЗаголовокОшибки =
НСтр("ru = 'Ошибка в процедуре
ЗаполнитьТаблицуПереименованияОбъектовМетаданных
|общего модуля ОбщегоНазначенияПереопределяемый.'");
If СтароеИмяКоллекции <> НовоеИмяКоллекции Then
ВызватьИсключение
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ЗаголовокОшибки + Символы.ПС + Символы.ПС
+ НСтр("ru = 'Не совпадают имена типов старого объекта метаданных:
|""%1""
|и нового объекта метаданных:
|""%2"".'"),
СтароеПолноеИмя,
НовоеПолноеИмя);
EndIf;
If Итог.КоллекцииБезКлюча[СтароеИмяКоллекции] = Неопределено Then
СписокДопустимыхТипов = "";
Для каждого КлючИЗначение Из Итог.КоллекцииБезКлюча Цикл
СписокДопустимыхТипов = СписокДопустимыхТипов +
КлючИЗначение.Значение + "," + Символы.ПС;
КонецЦикла;
СписокДопустимыхТипов = СокрП(СписокДопустимыхТипов);
СписокДопустимыхТипов = ?(ЗначениеЗаполнено(СписокДопустимыхТипов),
115
Лев(СписокДопустимыхТипов, СтрДлина(СписокДопустимыхТипов) - 1), "");
ВызватьИсключение
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ЗаголовокОшибки + Символы.ПС + Символы.ПС
+ НСтр("ru = 'Объект метаданных ""%1"" и остальные
|объекты метаданных этого типа обновляются автоматически.
|
|Переименование требуется только для следующих типов:
|%2.'"),
СтароеПолноеИмя,
НовоеПолноеИмя,
СписокДопустимыхТипов);
EndIf;
If ЗначениеЗаполнено(ИдентификаторБиблиотеки) Then
Библиотека = ВРег(ИдентификаторБиблиотеки) <> ВРег(Метаданные.Имя);
Else
ИдентификаторБиблиотеки = Метаданные.Имя;
Библиотека = Ложь;
EndIf;
ПорядокБиблиотеки = Итог.ПорядокБиблиотек[ИдентификаторБиблиотеки];
If ПорядокБиблиотеки = Неопределено Then
ПорядокБиблиотеки = Итог.ПорядокБиблиотек.Количество();
Итог.ПорядокБиблиотек.Вставить(ИдентификаторБиблиотеки,
ПорядокБиблиотеки);
EndIf;
ВерсияБиблиотеки = Итог.ВерсииБиблиотек[ИдентификаторБиблиотеки];
If ВерсияБиблиотеки = Неопределено Then
ВерсияБиблиотеки =
ОбновлениеИнформационнойБазы.ВерсияИБ(ИдентификаторБиблиотеки);
Итог.ВерсииБиблиотек.Вставить(ИдентификаторБиблиотеки,
116
ВерсияБиблиотеки);
EndIf;
If ВерсияБиблиотеки = "0.0.0.0" Then
// При начальном заполнении переименования не требуются.
Возврат;
EndIf;
Попытка
Результат = ОбщегоНазначенияКлиентСервер.СравнитьВерсии(ВерсияИБ,
ВерсияБиблиотеки);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
If Библиотека Then
ВызватьИсключение
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ЗаголовокОшибки + Символы.ПС + Символы.ПС
+ НСтр("ru = 'При сравнении указанной версии ""%1""
|с текущей версией ""%2""
|указанной библиотеки ""%3""
|произошла ошибка:
|""%4"".'"),
ВерсияИБ,
ВерсияБиблиотеки,
ИдентификаторБиблиотеки,
КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
Else
ВызватьИсключение
СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
ЗаголовокОшибки + Символы.ПС + Символы.ПС
+ НСтр("ru = 'При сравнении указанной версии ""%1""
|с текущей версией конфигурации ""%2""
117
|произошла ошибка:
|""%3"".'"),
ВерсияИБ,
ВерсияБиблиотеки,
КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
EndIf;
КонецПопытки;
If Результат > 0 Then
ЧастиВерсии =
СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ВерсияИБ
, ".");
ОписаниеПереименования = Итог.Таблица.Добавить();
ОписаниеПереименования.ПорядокБиблиотеки = ПорядокБиблиотеки;
ОписаниеПереименования.ВерсияЧасть1 = Число(ЧастиВерсии[0]);
ОписаниеПереименования.ВерсияЧасть2 = Число(ЧастиВерсии[1]);
ОписаниеПереименования.ВерсияЧасть3 = Число(ЧастиВерсии[2]);
ОписаниеПереименования.ВерсияЧасть4 = Число(ЧастиВерсии[3]);
ОписаниеПереименования.СтароеПолноеИмя = СтароеПолноеИмя;
ОписаниеПереименования.НовоеПолноеИмя = НовоеПолноеИмя;
ОписаниеПереименования.ПорядокДобавления =
Итог.Таблица.Индекс(ОписаниеПереименования);
EndIf;
КонецПроцедуры
// Возвращает признак того, что объект метаданных используется в общих
реквизитах-разделителях.
//
// Параметры:
// ОбъектМетаданных - Строка; ОбъектМетаданных - If объект метаданных задан
строкой, происходит обращение к модулю повторного использования.
118
// Разделитель - имя общего реквизита-разделителя, на разделение которыми
проверяется объект метаданных.
//
// Возвращаемое значение:
// Булево - Истина, If объект метаданных используется хотя бы в одном общем
разделителе.
//
Function ЭтоРазделенныйОбъектМетаданных(Знач ОбъектМетаданных, Знач
Разделитель) Экспорт
If ТипЗнч(ОбъектМетаданных) = Тип("Строка") Then
ПолноеИмяОбъектаМетаданных = ОбъектМетаданных;
Else
ПолноеИмяОбъектаМетаданных = ОбъектМетаданных.ПолноеИмя();
EndIf;
РазделенныеОбъектыМетаданных =
ОбщегоНазначенияПовтИсп.РазделенныеОбъектыМетаданных(Разделитель);
Возврат
РазделенныеОбъектыМетаданных.Получить(ПолноеИмяОбъектаМетаданных) <>
Неопределено;
EndFunction
Function ИмяТипаРегистрыНакопления() Экспорт
Возврат "РегистрыНакопления";
EndFunction
// Возвращает значение для идентификации общего типа "Регистры бухгалтерии"
//
// Тип: Строка
//
Function ИмяТипаРегистрыБухгалтерии() Экспорт
Возврат "РегистрыБухгалтерии";

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

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