Главная страница
Навигация по странице:

  • Показатель

  • 715000,00 3 Фонд премий сотрудникам, участвующим в проекте 100000,00

  • Список использованных источников

  • Приложение 1. Текст программных модулей Модуль документа «Задача»

  • Диплом. автоматизация приема и обработки заявок отделом техподдержки ооо "компьютерные бизнес системы"


    Скачать 3.38 Mb.
    Названиеавтоматизация приема и обработки заявок отделом техподдержки ооо "компьютерные бизнес системы"
    АнкорДиплом
    Дата18.05.2023
    Размер3.38 Mb.
    Формат файлаpdf
    Имя файла2019-3.pdf
    ТипРеферат
    #1141515
    страница8 из 11
    1   2   3   4   5   6   7   8   9   10   11
    Показатель
    Операция
    Итого
    Проектирова
    ние,
    регистрация,
    контроль
    Ввод
    исходн
    ых
    данных
    Обработ
    ка
    данных
    Выда
    ча
    данн
    ых
    Контрол
    ь
    Оборудование
    ПК
    ПК
    ПК
    -
    Единица измерения
    Операция
    Знак
    Знак
    Знак
    Операци я
    -
    Объем, Q
    15796 608515 6154 60000 5
    15796
    -
    Среднечасовая норма выработки, Н
    (час
    -1
    )
    6 2000 2000 12000 12
    -
    Трудоемкость,
    T
    ОМ
    (час)
    2632,67 304,26 3,07 50 1316,33 4306,33
    Среднечасовая тарифная ставка, P (руб.)
    50 50 50 50 50
    -
    Заработная плата оператора,
    С
    З
    (руб.)
    131633,50 15213,0 0
    153,50 2500,
    00 65816,50
    -
    Прочие расходы,
    С
    g
    (руб.)
    92143,45 10649,1 0
    107,45 1750,
    00 46071,55
    -
    Стоимость амортизации оборудования,
    C
    a
    (руб.)
    -
    1000,95 15,35 250,0 0
    6581,65
    -
    Операционные расходы,
    С
    ОМ
    (руб.)
    223776,95 27383,4 0
    276,30 4500,
    00 118469,7 0
    374406,
    35
    Таким образом, расходы по статье «трудовые затраты» за год в базовом
    (ручном) варианте составят:
    T
    0
    = T

    + T

    = 3109,87 + 4306,33 = 7416,20 (человек/час);
    Общие СЗ за год в результате расчета в базовом (ручном) варианте составят:

    103
    C
    0
    = C

    + C

    = 2643390,3 + 374406,35 = 3017796,70 (руб.);
    В Таблице 3.3 приведен расчет операционных затрат при компьютерной обработке операций в предлагаемом варианте. Расчеты проведены по формулам (11)
    – (19).
    Таблица 3.3.
    Расчет операционных затрат при компьютерной обработке операций в новом варианте
    Показатель
    Операция
    И
    того
    Проектирова
    ние,
    регистрация,
    контроль
    Ввод
    данных
    Обработ
    ка
    Выда
    ча
    данн
    ых
    Визуальн
    ый
    контрол
    ь
    Оборудование
    ПК
    ПК
    ПК
    -
    Единица измерения
    Документ
    Символ Символ
    Симв ол
    Докумен т
    -
    Объем, Q
    15796 296935 317734 60000 5
    761
    -
    Среднечасовая норма выработки, Н
    (час
    -1
    )
    6 2000 200000 20000 12
    -
    Трудоемкость,
    T
    ОМ
    (час)
    2632,67 148,47 1,59 30,00 63,42 2876,15
    Среднечасовая тарифная ставка, P (руб.)
    50 50 50 50 50
    -
    Заработная плата оператора,
    С
    З
    (руб.)
    131633,50 7423,50 79,50 1500,
    00 3171,00
    -
    Прочие расходы,
    С
    g
    (руб.)
    92143,45 5196,45 55,65 1050,
    00 2219,70
    -
    Стоимость амортизации оборудования,
    C
    a
    (руб.)
    -
    742,35 7,95 150,0 0
    317,10
    -
    Операционные расходы,
    С
    ОМ
    (руб.)
    223776,95 13362,3 0
    143,10 2700,
    00 5707,80 245690,
    15
    Расчет затрат непосредственно на проектирование разрабатываемой АИС представлен в Таблице 3.4.

    104
    Таблица 3.4.
    Расчет затрат на проектирование АИС

    п/п
    Наименование затрат
    Сумма, руб.
    1
    Лицензия на использование системы разработки
    28000,00
    2
    Стоимость оборудования (сервер базы данных, сервер,
    приложений, каналы связи)
    715000,00
    3
    Фонд премий сотрудникам, участвующим в проекте
    100000,00
    Ежегодные расходы по статье «трудовые затраты» в новом варианте составляют:
    T
    1
    = 2876,15 (человек/час);
    Ежегодные расходы по статье «стоимостные затраты» в новом варианте составляют:
    C
    1
    = 245690,15 (руб.);
    На основании рассчитанных данных по формулам (1) – (6) рассчитаны ТЗ и СЗ, показанные в Таблице 3.5.
    Таблица 3.5.
    Показатели от внедрения новой АИС
    Затраты
    Абсолютное изменение затрат
    Коэффициент изменения затрат
    Индекс изменения затрат
    Базовый вариант
    Проектный вариант
    Трудое мкость
    Т
    0
    (чел./час)
    Т
    1
    (чел./час)
    ∆Т=Т
    0
    –Т
    1
    (чел./час)
    К
    Т
    =∆Т/Т
    0
     100%
    У
    Т

    0

    1 7416,20 2876,15 4540,05 61,22%
    2,579
    Стоимо сть
    С
    0
    (руб.)
    С
    1
    (руб.)
    ∆С=С
    0
    –С
    1
    (руб.)
    К
    С
    =∆С/С
    0
    *100%
    У
    С

    0

    1 3017796,7 245690,15 2772106,55 91,85 12,28
    Срок окупаемости расходов на внедрение разрабатываемой АИС, рассчитывается по формуле (7) и составляет:
    месяца
    года
    год
    руб
    руб
    C
    K
    T
    N
    ОК
    2 2
    )
    /
    (
    23
    ,
    393055
    .)
    (
    843000




    Коэффициент ЭЭ капитальных затрат, рассчитанный по формуле (21) равен:

    105
    Е
    р
    = 1/2.2 = 0.45
    Годовой экономический эффект был рассчитан по формуле (20) и составил:
    .)
    (
    23
    ,
    350905 843000 15
    ,
    0 23
    ,
    393055
    руб
    E
    K
    П
    Э
    н
    П







    На основании рассчитанных данных построены сравнительные диаграммы, представленные на рисунках (Рисунок 3.1 – Рисунок 3.4).
    Рисунок 3.1. Диаграмма сравнения изменения ТЗ

    106
    Рисунок 3.2. Диаграмма сравнения изменения СЗ
    Рисунок 3.3. Соотношение ТЗ базового варианта и абсолютного изменения затрат

    107
    Рисунок 3.4. Соотношение СЗ базового варианта и абсолютного изменения затрат
    Следует упомянуть, что кроме прямого эффекта от внедрения разрабатываемой
    АИС, присутствует также и косвенный эффект. Он выражается в том, что с точки зрения сотрудников работа с АИС становится в разы проще и понятнее, вследствие чего повышается эффективность работы сотрудников и снижается вероятность допущения ими ошибок.

    108
    Заключение
    В результате выполнения исследования были изучены особенности деятельности Службы и основные протекающие в ней процессы. Особое внимание уделено деятельности Службы по приему заявок на устранение проблем, связанных с эксплуатацией ИТ-инфраструктуры компании, как основному направлению ее деятельности. Изучены основные виды проблем и особенности работы Службы.
    Процесс прохождения заявки пользователя по решению какой-либо проблемы всесторонне изучен и проанализирован. Определены его этапы и участники, выявлены основные проблемы и недостатки.
    Сделан вывод о том, что эффективность эксплуатации ИТ–инфраструктуры зависит от организации процесса решения и устранения проблем, возникающих в ходе работы с ИТ-ресурсами. В значительной мере повысить эту эффективность можно путем внедрения в Службе автоматизированной информационной системы приема и обработки заявок и сопровождения процесса их решения на протяжении всего жизненного цикла заявки. Был сделан вывод о необходимости разработки и внедрения такой системы.
    Была поставлена основная задача разрабатываемой системы – автоматизация работы Службы в части учета заявок пользователей и их сопровождения.
    Определены требования к системе, разработана ее функциональная структура и функции каждой подсистемы. Был сделан вывод о необходимости разработки системы собственными силами.
    В качестве среды разработки системы выбрана платформа «1С:Предприятие
    8.3», как наиболее подходящая для целей системы. Рассмотрены основные особенности архитектуры этой системы, ее функциональность и механизмы, при помощи которых строятся прикладные решения. Найдены способы использования основных механизмов системы «1С:Предприятие 8.3» для целей дипломного проекта.
    В среде разработки «1С:Предприятие 8.3» была реализована конфигурация, выполняющая поставленную задачу. Были созданы объекты конфигурации, определена их структура, реквизиты, экранные формы, написаны программные модули, реализующие заданную функциональность этих объектов. Особое внимание

    109 уделено разработке структуры объектов информационной базы: справочников, регистров сведений, документов и регистров накопления.
    Проведенное тестирование разработанной конфигурации показывает, что она полностью удовлетворяет поставленной задаче, работает стабильно и без ошибок, обладает большой функциональностью и удобным интерфейсом. Разработанную конфигурацию можно внедрять в Службе.
    Внедрение разработанной системы в Службе должно резко увеличить эффективность процесса решения заявок пользователей, уменьшить время их прохождения, повысить производительность труда сотрудников.

    110
    Список использованных источников
    1. ГОСТ Р ИСО/МЭК 12207-99 «Информационная технология. Процессы жизненного цикла программных средств» (принят и введен в действие постановлением Госстандарта РФ от 23.12.1999 №675-ст).
    2. ГОСТ Р ИСО/МЭК 12207-99, Руководящий документ, Госстандарт России,
    Москва, 2014;
    3. ГОСТ Р ИСО/МЭК 15271-2002 «Информационная технология. Руководство по применению ГОСТ Р ИСО/МЭК 12207-99 (Процессы жизненного цикла программных средств)» (принят и введен в действие постановлением
    Госстандарта РФ от 05.06 2012 №227-ст).
    4. 101 совет начинающим разработчикам в системе "1С:Предприятие 8".
    Хрусталева Е. Ю. 214 с. 1С-Паблишинг, 2014 г.
    5. 1C:Предприятие 8.2. Практическое пособие разработчика. Примеры и типовые приемы (+диск). М.Г. Радченко, Е.Ю. Хрусталева. 968 с. 1С-
    Паблишинг, 2014 г.
    6. 1С:Предприятие 8.2. Коротко о главном. Новые возможности версии 8.2.
    Радченко М.Г. 690 с. 1С-Паблишинг, 2014 г.
    7. 1С:Предприятие 8.2. Практическое пособие разработчика. Примеры и типовые приемы. Радченко М.Г., Хрусталева Е.Ю. 620 с. 1С-Паблишинг, 2012 г.
    8. Арутюнов В.В. Теория экономических информационных систем: Московская финансово-промышленная академия. М., 2015. – 192 с.
    9. Архитектура и работа с данными "1С:Предприятия 8.2". Серия
    «1С:Профессиональная разработка». Радченко М. Г., Хрусталева Е. Ю. 650 с.
    1С-Паблишинг, 2013 г.
    10. Балдин К.В., Уткин В.Б. Информационные системы в экономике.
    М.:Издательско-торговая корпорация «Дашков и К», 2018. – 395 с.
    11. Вендров А.М. CASE технологии Современные методы и средства проектирования информационных систем М.: Финансы и статистика, 2014. -
    176 с.: ил.;
    12. Вендров А.М. Проектирование программного обеспечения экономических информационных систем. – М.: Финансы и статистика, 2000.-187с.

    111 13. Гагарина Л.Г., Киселев Д.В., Федотова Е.Л. Разработка и эксплуатация автоматизированных информационных систем / под ред.проф.Л.Г.Гагариной.
    – Москва: ИД «Форум»: Инфра-М, 2017 – 384 с.
    14. Диго С.М. Проектирование и использование баз данных Учебник. М.:
    Финансы и статистика. 2013 г;
    15. Ефимов Е.Н., Патрушина С.М., Панферова Л.Ф., Хашиева Л.И.
    Информационные системы в экономике. – Москва: ИКЦ «МарТ», 2014. – 352 с.
    16. Информационные системы в экономике: Учебник для студ. высш. учеб, заведений / В.Б. Уткин, К.В. Балдин. — М.: Издательский центр «Академия»,
    2014. — 288 с.
    17. Калянов
    Г.Н.
    CASE-технологии.
    Консалтинг при автоматизации предприятий.-М.: СИНТЕГ, 2015.-276с.
    18. Котлер Ф. Маркетинг менеджмент / Пер. с англ. под ред. Л.А. Волковой, Ю.Н.
    Каптунеревского. – СПб.: Питер, 2012. – 756с.р
    19. Липаев В.В. Программная инженерия. Методологические основы. М.: ТЕИС,
    2016. – 608 с.
    20. Максимов Н.В., Попов И.И., Голицына О.Л. Информационные системы.
    Учебное пособие. Форум, 2019 г. - 496 с.
    21. Матищев А.Н. Эффективность рекламы. – М.: Издательство «Финпресс»,
    2012. – 416с.
    22. Методология функционального моделирования IDEF0, Руководящий документ, Госстандарт России.;
    23. Основы построения баз данных под ред. А.Д. Хомоненко Санкт-Петербург,
    2014;
    24. Петров В.Н. Информационные системы. – СПб.: Питер, 2003. – 688 с.
    25. Проектирование экономических информационных систем:
    Учебник/Смирнова Г.Н., Сорокин А.А., Тельнов Ю.Ф.; Под ред. Тельнова
    Ю.Ф. – М.:Финансы и статистика, 2013. - 512 с.
    26. Профессиональная разработка в системе «1С:Предприятие 8» (+DVD-ROM).
    Издание 2. Ажеронок В.А., Габец А.П., Гончаров Д.И., Козырев Д.В.,

    112
    Кухлевский Д.С., Островерх А.В., Радченко М.Г., Хрусталева Е.Ю. Под редакцией М. Г. Радченко. 870 с. 1С-Паблишинг, 2013 г.
    27. Разработка управляемого интерфейса (+CD). Серия "1С:Профессиональная разработка". Ажеронок В.А., Островерх А. В., Радченко М. Г., Хрусталева Е.
    Ю. 740 с. 1С-Паблишинг, 2015 г.
    28. Реализация прикладных задач в системе "1С:Предприятие 8.2" (+CD). Серия "1С:Профессиональная разработка". Габец А.П., Козырев Д.В., Кухлевский
    Д.С., Хрусталева Е.Ю. 830 с. 1С-Паблишинг, 2014 г.
    29. Репин
    В.В., Елиферов В.Г. Процессный подход к управлению.
    Моделирование бизнес-процессов. – М.: РИА «Стандарты и качество», 2014.
    – 408 с., илл. – (Серия «Практический менеджмент»)
    30. Решение специальных прикладных задач в "1С:Предприятии 8.2". Серия "1С:Профессиональная разработка". Гончаров Д. И., Хрусталева Е. Ю. 935 с.
    1С-Паблишинг, 2015 г.
    31. 1С:Предприятие 8. Система программ [Электронный ресурс]. - http://v8.1c.ru/
    32. IntraService.Универсальная Service Desk система [Электронный ресурс]. - https://intraservice.ru/
    33. Новости и технологии торговли [Электронный ресурс]. – Режим доступа: http://www.torgrus.com
    34. Программирование для всех [Электронный ресурс]. – Режим доступа: http://www.realcoding.net/

    113
    Приложение 1. Текст программных модулей
    Модуль документа «Задача»
    // префикс номера документа
    Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка, Префикс)
    Префикс = Обмен.ПолучитьПрефиксНомера();
    КонецПроцедуры
    // при вводе нового документа
    Процедура ОбработкаЗаполнения(Основание, Значение)
    ОбщийСрв.ПриВводеНовойЗадачи(ЭтотОбъект); // заполнить все реквизиты по-умолчанию для новой задачи
    // если вводится на основании Контрагента
    Если ТипЗнч(Основание) = Тип("СправочникСсылка.Контрагенты") Тогда
    Контрагент = Основание;
    // основание - это контрагент
    Отвественный = Основание.Отвественный; // отвественный по задаче - ответсвенный по контрагенту
    Исполнитель = Исполнители.Добавить(); // первый исполнитель -
    Исполнитель.Исполнитель = Основание.Отвественный;
    Исполнитель.Процент = 100;
    КонецЕсли;
    // если вводится на основании другой задачи
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.Задача") Тогда
    ОбщийСрв.ПриВводеНовойЗадачи(ЭтотОбъект, Основание);
    ДокОснование = Документы.Задача.ПустаяСсылка();
    КонецЕсли;
    Если ТипЗнч(Основание) = Тип("Структура") Тогда //если вводлится новый из списка с установленным отбором
    // то данные заполняются автоматически из отбора "Заполнять из данных заполнения"
    КонецЕсли
    КонецПроцедуры
    // если копирование - то переопределить логику копирования
    Процедура ПриКопировании(ОбъектКопирования)
    Автор
    = ПараметрыСеанса.глПользователь; // автор - текущий пользователь
    Отвественный = ПараметрыСеанса.глПользователь; // автор - текущий пользователь
    Статус
    = Справочники.Статусы.Новая;
    // новая задача - статус Новая

    114
    ДокОснование = ОбъектКопирования.Ссылка; // Док основание - та задача из котрой скопировали
    Переписка.Очистить();
    Исполнители.Очистить();
    Подзадачи.Очистить();
    Номенклатура.Очистить();
    КонецПроцедуры
    // перед удалением документа
    Процедура ПередУдалением(Отказ)
    // проверка на закрытый период
    Если ОбщийСрв.ВЗакрытомПериоде(ЭтотОбъект) Тогда
    Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект)
    +
    "Находится в закрытом периоде. Удаление невозможно");
    Отказ = Истина;
    Возврат;
    КонецЕсли;
    // проверка Проведена
    Если (ЭтотОбъект.Проведен И Константы.ЗапретПроведенных.Получить()) И
    Не ПараметрыСеанса.глЗаписьВедетИсполнитель Тогда
    Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект)
    +
    "Уже выполнена. Удаление невозможно");
    Отказ = Истина;
    Возврат;
    КонецЕсли;
    // проверка прав
    Если
    Не
    ОбщийСрв.ПроверкаПрав(Автор,
    ПараметрыСеанса.глПользователь) Тогда
    Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект) + "Нет прав удалять чужой документ");
    Отказ = Истина;
    Возврат;
    КонецЕсли;
    // удалить вхождение этого документа в табличную часть Подзадачи любых остальных документов
    ТЗРодителей = СформироватьСписокРодителей(ЭтотОбъект.Ссылка); // сформировать ТЗ всех документов, в которые входит удаляемая
    Для Каждого СтрокаРодитель Из ТЗРодителей Цикл // для каждого родителя
    УдалитьПодзадачу(СтрокаРодитель.Ссылка, ЭтотОбъект.Ссылка); // удалить текущую(удяляемую) задачу из родителя
    КонецЦикла
    КонецПроцедуры

    115
    // удалить ЗадачаРебенок из табличной части Подзадачи у ЗадачаРодитель
    Процедура УдалитьПодзадачу(ЗадачаРодитель, ЗадачаРебенок)
    Если ЗадачаРодитель.Пустая() Тогда
    Возврат;
    КонецЕсли;
    ЗадачаРодительОбъект = ЗадачаРодитель.ПолучитьОбъект();
    СтруктураОтбора = Новый Структура("Подзадача", ЗадачаРебенок);
    МассивУдаляемыхСтрок
    =
    ЗадачаРодительОбъект.Подзадачи.НайтиСтроки(СтруктураОтбора);
    Для Каждого ЭлементМассива Из МассивУдаляемыхСтрок Цикл
    ЗадачаРодительОбъект.Подзадачи.Удалить(ЭлементМассива);
    КонецЦикла;
    ЗадачаРодительОбъект.Записать();
    КонецПроцедуры
    // сформироват ТЗ документов, в которые ПодЗадачаРебенок входит в таб часть
    Подзадачи ( вявном виде, не через рекурсию)
    Функция СформироватьСписокРодителей(ПодЗадачаРебенок)
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |
    Задачи.Ссылка
    |ИЗ
    |
    Документ.Задача.Подзадачи КАК ЗадачаПодзадачи
    |
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.Задача КАК Задачи
    |
    ПО ЗадачаПодзадачи.Ссылка = Задачи.Ссылка
    |ГДЕ
    |
    ЗадачаПодзадачи.Подзадача = &ПодзадачаРебенок
    |";
    Запрос.УстановитьПараметр("ПодзадачаРебенок", ПодзадачаРебенок);
    РезультатЗапроса = Запрос.Выполнить();
    ТЗ = РезультатЗапроса.Выгрузить();
    Возврат ТЗ;
    КонецФункции
    // провести все непроведенные подзадачи из ЗадачаОбъект и провести ее саму
    Процедура ВыполнитьВсеПодзадачиПринудительно(ЗадачаОбъект)

    116
    Для Каждого ТекСтрокаПодзадача Из ЗадачаОбъект.Подзадачи Цикл // по всем строкам таб. части Подзадачи
    Если ТекСтрокаПодзадача.Подзадача.Проведен <> Истина Тогда
    // если не была проведена
    ВыполнитьВсеПодзадачиПринудительно(ТекСтрокаПодзадача.Подзадача.По лучитьОбъект()); // провести все ее подзадачи
    ТекСтрокаПодзадача.Подзадача.ПолучитьОбъект().Записать(РежимЗаписиД
    окумента.Проведение, РежимПроведенияДокумента.Неоперативный); // провести ее саму
    Сообщить("Выполнена подзадача "
    +
    ОбщийСрв.ПредставлениеЗадачи(ТекСтрокаПодзадача.Подзадача));
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    // проверить, есть ли среди ТЧ Исполнители записи без отметки исполнения
    Функция ПроверитьИсполнение()
    Исполненно = Истина;
    Для Каждого ТекСтрокаИсполнитель Из Исполнители Цикл
    Если
    ТекСтрокаИсполнитель.ДатаИсполнения
    =
    Дата(01,01,0001,00,00,00) Тогда
    Сообщить("Задача не может быть выполнена, так как исполнитель \" + ТекСтрокаИсполнитель.Исполнитель +
    "\ не проставил отметку исполнения");
    Исполненно = Ложь;
    КонецЕсли;
    Если Не ТекСтрокаИсполнитель.РезультатИсполнения.Пустая() Тогда
    Если Не ТекСтрокаИсполнитель.РезультатИсполнения.Успех
    Тогда
    Сообщить("Задача не может быть выполнена, так как исполнитель \" + ТекСтрокаИсполнитель.Исполнитель +
    "\ проставил отрицательную отметку исполнения");
    Исполненно = Ложь;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Возврат Исполненно;
    КонецФункции
    // действия при проведении документа
    Функция ПриПроведении(Отказ)

    117
    // проверка того, что все исполнители проставили отметку об исполнении
    Если Константы.ПроверятьИсполнениеПриВыполнении.Получить() Тогда // общая константа
    Если
    ОбщийСрв.ПолучитьКонстанту(ТекущаяДата(),
    ОбщийСрв.ПолучитьГлПользователь(), "ПроверятьИсполнениеПриВыполнении")
    Тогда // настройка пользователя
    Если Не ПроверитьИсполнение() Тогда
    Отказ = Истина;
    Возврат Ложь;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    // проверка того, что все подзадачи проведены
    ЕстьНеВыполненыеПодзадачи = Ложь;
    Для Каждого ТекСтрокаПодзадача Из Подзадачи Цикл
    Если ТекСтрокаПодзадача.Подзадача.Проведен <> Истина Тогда
    Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект) + " имеет невыполненные подзадачи");
    ЕстьНеВыполненыеПодзадачи = Истина;
    КонецЕсли;
    КонецЦикла;
    Если ЕстьНеВыполненыеПодзадачи = Истина Тогда
    Если (Константы.ПринудительноВыполнятьПодзадачи.Получить()) И
    // общая константа
    (ОбщийСрв.ПолучитьКонстанту(ТекущаяДата(),
    ОбщийСрв.ПолучитьГлПользователь(),
    "ПринудительноВыполнятьПодзадачи"))
    Тогда // настройка пользователя
    Сообщить("Подзадачи будут выполнены принудительно...");
    ВыполнитьВсеПодзадачиПринудительно(ЭтотОбъект); // автоматически провести все подзадачи данной задачи
    Иначе // нельзя автоматически выполнять подзадачи
    Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект) + " не может быть выполнена");
    Отказ = Истина;
    Возврат Ложь;
    КонецЕсли;
    КонецЕсли;
    Возврат Истина
    КонецФункции
    // обработка проведения
    Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    Если Не ПриПроведении(Отказ) Тогда // проверить проведение подзадач

    118
    Возврат;
    КонецЕсли;
    // регистр ИспользованниеНоменклатуры
    Движения.ИспользованиеНоменклатуры.Записывать = Истина;
    Для Каждого ТекСтрокаНоменклатура Из Номенклатура Цикл
    Если ТекСтрокаНоменклатура.Наличие Тогда // если в ТЧ стоит признак наличия
    Продолжить;
    КонецЕсли;
    Если
    НЕ
    ТекСтрокаНоменклатура.Номенклатура.ВидНоменклатуры.Списывается Тогда // если номенклатуру не надо списывать
    Продолжить;
    КонецЕсли;
    Движение = Движения.ИспользованиеНоменклатуры.Добавить();
    Движение.Период = Дата;
    Движение.Номенклатура
    =
    ТекСтрокаНоменклатура.Номенклатура;
    Движение.Задача
    = ЭтотОбъект.Ссылка;
    Движение.Количество = ТекСтрокаНоменклатура.Количество;
    Движение.Сумма
    = ТекСтрокаНоменклатура.Сумма;
    КонецЦикла;
    КонецПроцедуры
    // обработка распроведения
    Процедура ОбработкаУдаленияПроведения(Отказ)
    Если Не ОтменитьПроведениеРодителей(ЭтотОбъект.Ссылка) Тогда // отменитиь проведение задач-родителей
    Отказ = Истина;
    Возврат;
    КонецЕсли;
    КонецПроцедуры
    // отменить проведение всех родителей ДокСсылкаРебенок
    Функция ОтменитьПроведениеРодителей(ДокСсылкаРебенок)
    МассивОтменяемых
    =
    ОбщийСрв.СформироватьСписокОтменяемых(ДокСсылкаРебенок);
    // сформировать массив распроводимых документов
    Если МассивОтменяемых.Количество() Тогда // если есть хоть один - сообщить
    Сообщить
    ("Отмена выполнения "
    +
    ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект)
    + " приводит к отмене выполнения задач-родителей...");

    119
    КонецЕсли;
    Для Каждого СтрокаОтменяемый Из МассивОтменяемых Цикл // для каждого документа из распроводимых
    Если
    ОбщийСрв.ВЗакрытомПериоде(СтрокаОтменяемый.Значение)
    Тогда // если находится в закрытом периоде
    Сообщить("Отмена выполенния "
    +
    ОбщийСрв.ПредставлениеЗадачи(ДокСсылкаРебенок)
    +
    " приводит к отмене выполенния "
    +
    ОбщийСрв.ПредставлениеЗадачи(СтрокаОтменяемый.Значение)
    + ", находящейся в закрытом периоде. Отмена не может быть выполнена");
    Возврат Ложь;
    КонецЕсли;
    Если
    Не
    ОбщийСрв.ПроверкаПрав(СтрокаОтменяемый.Значение.Автор,
    ПараметрыСеанса.глПользователь) Тогда // проверка прав
    Сообщить("Отмена выполенния "
    +
    ОбщийСрв.ПредставлениеЗадачи(ДокСсылкаРебенок)
    +
    " приводит к отмене выполенния "
    +
    ОбщийСрв.ПредставлениеЗадачи(СтрокаОтменяемый.Значение)
    + ", на редактирование которого у Вас нет прав.
    Отмена не может быть выполнена");
    Возврат Ложь;
    КонецЕсли;
    КонецЦикла;
    // распровести каждый
    Для Каждого СтрокаОтменяемый Из МассивОтменяемых Цикл
    Если СтрокаОтменяемый.Значение.ПолучитьОбъект().Проведен Тогда
    СтрокаОтменяемый.Значение.ПолучитьОбъект().Записать(РежимЗаписиДок умента.ОтменаПроведения);
    Сообщить("Отменено выполнение родительской "
    +
    ОбщийСрв.ПредставлениеЗадачи(СтрокаОтменяемый.Значение));
    КонецЕсли;
    КонецЦикла;
    Возврат Истина;
    КонецФункции
    // перед любой записью (включая проведение и распроведение) - проверка
    Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Головная = ЭтоГоловная(); // установить признак - головная или нет
    Если ОбщийСрв.ВЗакрытомПериоде(ЭтотОбъект) Тогда // провера на закрытый период

    120
    Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект)
    +
    "Находится в закрытом периоде. Редактирование невозможно");
    Отказ = Истина;
    Возврат;
    КонецЕсли;
    // проверка того что проведен (тогда редактирование запрещено)
    Если Не (РежимЗаписи = РежимЗаписиДокумента.Проведение Или
    РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения) Тогда
    Если
    (ЭтотОбъект.Проведен
    И
    Константы.ЗапретПроведенных.Получить())
    И
    Не
    ПараметрыСеанса.глЗаписьВедетИсполнитель
    И Не ПараметрыСеанса.ИдетОбменДанными Тогда
    Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект)
    +
    "Уже выполнена. Редактирование невозможно");
    Отказ = Истина;
    Возврат;
    КонецЕсли;
    КонецЕсли;
    // проверка прав
    Если
    Не
    ОбщийСрв.ПроверкаПрав(Автор,
    ПараметрыСеанса.глПользователь) Тогда
    Сообщить(ОбщийСрв.ПредставлениеЗадачи(ЭтотОбъект) + "Нет прав редактировать чужой документ");
    Отказ = Истина;
    Возврат;
    КонецЕсли;
    Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
    РеальнаяДатаВыполнения = ТекущаяДата(); // дата реального выполнения - дата проведения
    Если
    Константы.УстанавливатьЗавершенаУспешно.Получить()
    =
    Истина Тогда
    Статус = Справочники.Статусы.ЗавершенаУспешно; // статус - успешно
    КонецЕсли;
    КонецЕсли;
    Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
    РеальнаяДатаВыполнения = 0; // если распровели - значит нет реальной даты завершения
    Статус = Справочники.Статусы.ПустаяСсылка(); // и нет статуса
    КонецЕсли;
    КонецПроцедуры

    121
    // проверка на то, что данная задача не входит ни в одну другую в качетсве подзадачи
    Функция ЭтоГоловная()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |
    ЗадачаПодзадачи.Подзадача
    |ИЗ
    |
    Документ.Задача.Подзадачи КАК ЗадачаПодзадачи
    |
    ГДЕ ЗадачаПодзадачи.Подзадача
    = &ИскомаяЗадача
    |";
    Запрос.УстановитьПараметр("ИскомаяЗадача", ЭтотОбъект.Ссылка);
    Результат = Запрос.Выполнить();
    Возврат (Результат.Выбрать().Количество() = 0);
    КонецФункции
    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта