Контрольный пример реализации и его описание
Зарегистрируйся в два клика и получи неограниченный доступ к материалам,а также промокод на новый заказ в Автор24. Это бесплатно.
Проведем запуск и анализ показателей качества информационной системы согласно метрик Холстеда. Запустим 1С: Бухгалтерию 8.3 для администрирования учета капитальных вложений.
Рисунок 8. – Запуск 1С: Бухгалтерию 8.3 в режиме «конфигуратор» для администрирования
Для извлечения кода программного обеспечения
Рисунок 9. – Извлечение программного кода
Код, который будет проверен согласно метрик Холстеда представлен ниже.
#Область ОбработчикиСобытий
Функция ПоказателиМонитораРуководителяПолучить(Запрос)
// Доступ к данным регулируется правом доступа к методу веб-сервиса.
// Если у пользователя есть право на вызов веб-сервиса, то он получит все данные
// без учета прав на эти данные.
// Такая реализация необходима из-за того, что веб-сервис могут вызывать служебные пользователи:
// для них назначать доступ к данным не получится из-за отстуствия профиля и невозможности настроить РЛС.
УстановитьПривилегированныйРежим(Истина);
ПубликуемыеДанные = ВнешнийПрограммныйИнтерфейс.ПубликуемыеДанныеМонитора();
УстановитьПривилегированныйРежим(Ложь);
Возврат Ответ(ПубликуемыеДанные);
КонецФункции
Функция ПоказателиМонитораРуководителяДатаОбновленияПолучить(Запрос)
// Доступ к данным регулируется правом доступа к методу веб-сервиса.
// Если у пользователя есть право на вызов веб-сервиса, то он получит все данные
// без учета прав на эти данные.
// Такая реализация необходима из-за того, что веб-сервис могут вызывать служебные пользователи:
// для них назначать доступ к данным не получится из-за отстуствия профиля и невозможности настроить РЛС.
УстановитьПривилегированныйРежим(Истина);
ПубликуемыеДанные = ВнешнийПрограммныйИнтерфейс.ПубликуемыеДатыОбновленияМонитора();
УстановитьПривилегированныйРежим(Ложь);
Возврат Ответ(ПубликуемыеДанные);
КонецФункции
Функция ПоказателиМонитораРуководителяОбновитьЗапустить(Запрос)
// Доступ к данным регулируется правом доступа к методу веб-сервиса.
// Если у пользователя есть право на вызов веб-сервиса, то он получит все данные
// без учета прав на эти данные.
// Такая реализация необходима из-за того, что веб-сервис могут вызывать служебные пользователи:
// для них назначать доступ к данным не получится из-за отстуствия профиля и невозможности настроить РЛС.
УстановитьПривилегированныйРежим(Истина);
Результат = МониторРуководителя.ЗапуститьОбновлениеМонитораДляВнешнегоПрограммногоИнтерфейса();
УстановитьПривилегированныйРежим(Ложь);
Если Результат = Неопределено Тогда
// Фоновое задание запущено ранее и все еще выполняется.
Ответ = Новый HTTPСервисОтвет(202);
Иначе
// Фоновое задание запущено.
Ответ = Новый HTTPСервисОтвет(200);
КонецЕсли;
Возврат Ответ;
КонецФункции
Функция АктуальныеЗадачиПолучить(Запрос)
// Доступ к данным регулируется правом доступа к методу веб-сервиса.
// Если у пользователя есть право на вызов веб-сервиса, то он получит все данные
// без учета прав на эти данные.
// Такая реализация необходима из-за того, что веб-сервис могут вызывать служебные пользователи:
// для них назначать доступ к данным не получится из-за отстуствия профиля и невозможности настроить РЛС.
УстановитьПривилегированныйРежим(Истина);
ПубликуемыеДанные = ВнешнийПрограммныйИнтерфейс.ПубликуемыеНалоговыеСобытияКалендаряБухгалтера();
УстановитьПривилегированныйРежим(Ложь);
Возврат Ответ(ПубликуемыеДанные);
КонецФункции
Функция АктуальныеЗадачиДатаОбновленияПолучить(Запрос)
// Доступ к данным регулируется правом доступа к методу веб-сервиса.
// Если у пользователя есть право на вызов веб-сервиса, то он получит все данные
// без учета прав на эти данные.
// Такая реализация необходима из-за того, что веб-сервис могут вызывать служебные пользователи:
// для них назначать доступ к данным не получится из-за отстуствия профиля и невозможности настроить РЛС.
УстановитьПривилегированныйРежим(Истина);
ПубликуемыеДанные = ВнешнийПрограммныйИнтерфейс.ПубликуемыеДатыАктуальностиНалоговыхСобытийКалендаряБухгалтера();
УстановитьПривилегированныйРежим(Ложь);
Возврат Ответ(ПубликуемыеДанные);
КонецФункции
Функция АктуальныеЗадачиСтатусУстановить(Запрос)
ПараметрыМетода = Новый Структура("Идентификатор, Выполнено");
ПараметрыИзЗапроса = СоответствиеИзСтрокиJSON(Запрос.ПолучитьТелоКакСтроку());
ПараметрыМетода.Идентификатор = ПараметрыИзЗапроса.Получить("id");
ПараметрыМетода.Выполнено = ПараметрыИзЗапроса.Получить("done");
Для Каждого ПараметрМетода Из ПараметрыМетода Цикл
Если Не ЗначениеЗаполнено(ПараметрМетода.Значение) Тогда
Ответ = Новый HTTPСервисОтвет(400, НСтр("ru = 'Переданы некорректные параметры'"));
Прервать;
КонецЕсли;
КонецЦикла;
// Доступ к данным регулируется правом доступа к методу веб-сервиса.
// Если у пользователя есть право на вызов веб-сервиса, то он получит все данные
// без учета прав на эти данные.
// Такая реализация необходима из-за того, что веб-сервис могут вызывать служебные пользователи:
// для них назначать доступ к данным не получится из-за отстуствия профиля и невозможности настроить РЛС.
Попытка
УстановитьПривилегированныйРежим(Истина);
ВнешнийПрограммныйИнтерфейс.УстановитьСтатусЗадачи(ПараметрыМетода);
УстановитьПривилегированныйРежим(Ложь);
// Успешно изменили статус задачи.
Ответ = Новый HTTPСервисОтвет(200);
Исключение
// Не удалось изменить статус задачи.
ТекстОшибки = СтрШаблон(
НСтр("ru = 'Не удалось изменить статус задачи %1 по причине:
|%2'"),
ПараметрыМетода.Идентификатор, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ЗаписьЖурналаРегистрации("ExternalAPI",
УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки);
Ответ = Новый HTTPСервисОтвет(400, ТекстОшибки);
КонецПопытки;
Возврат Ответ;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция Ответ(Данные)
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Accept-Charset", "utf-8");
Ответ.Заголовки.Вставить("Content-Type", "application/json;charset=utf-8");
Ответ.Заголовки["Cache-Control"] = "no-cache";
Ответ.УстановитьТелоИзСтроки(ДанныеJSON(Данные));
Возврат Ответ;
КонецФункции
Функция ДанныеJSON(Данные)
ЗаписьJSON = Новый ЗаписьJSON;
ПараметрыJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, " ");
ЗаписьJSON.УстановитьСтроку(ПараметрыJSON);
ЗаписатьJSON(ЗаписьJSON, Данные);
Возврат ЗаписьJSON.Закрыть();
КонецФункции
Функция СоответствиеИзСтрокиJSON(Строка)
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(Строка);
Ответ = ПрочитатьJSON(ЧтениеJSON, Истина);
Возврат Ответ
КонецФункции
#КонецОбласти
Таблица 6
Зарегистрируйся, чтобы продолжить изучение работы
50% курсовой работы недоступно для прочтения
Закажи написание курсовой работы по выбранной теме всего за пару кликов. Персональная работа в кратчайшее время!