Руководство по установке
Сервисной системы «АРИНА» 2.0
Установка демонстрационной базы
Запустить файл «setup.exe» и следовать указаниям мастера установки. В результате, на Ваш компьютер будут установлены демонстрационная версия конфигурации «Сервисная система «АРИНА» 2.0». Она автоматически будет добавлена в список баз 1С 8.
Демонстрационная версия кроме объектов, непосредственно относящихся к системе «АРИНА» содержит несколько стандартных объектов, используемых в типовых конфигурациях 1С (чтобы не дублировать стандартный функционал) и несколько простых справочников, документов и регистров, которые используются для демонстрации возможностей системы «АРИНА».
Установка защиты
Поставка лицензии включает в себя три ключа активации (У Вас есть возможность трижды активировать лицензию при переустановке операционной системы).
Активировать лицензии можно с помощью нашей программы «Мастер Активации» или нашего портала (должна быть установлена Java), на сайте: http://ems.protect-online.ru:8080/ems/customerLogin.html
Активировать лицензии нужно только после установки драйвера (haspdinst.exe). Если в Вашей системе присутствует сервер ключей HASP, то для установки драйвера его будет необходимо остановить.
Убедиться в установке драйвера можно зайдя на страницу:
http://localhost:1947/_int_/ACC_help_index.html , если страница отображается корректно – драйвер установлен успешно.
Драйвер ключа и мастер активации можно скачать здесь: https://yadi.sk/d/5eJUXC9Af3qi4.
ВНИМАНИЕ! Если Вы устанавливаете ДЕМО-версия системы «АРИНА», то Вам необходимо устанавливать драйвер ключа защиты из комплекта поставки ДЕМО-версии. Этот драйвер содержит встроенную лицензию с активацией на 30 дней. Стандартный драйвер имеет смысл устанавливать только на лицензионную версию системы «АРИНА», так как в противнос случае она не будет работать!
Посмотреть установленные лицензии на ПК можно в Admin Control Center, по ссылке: http://localhost:1947/_int_/devices.html
Пример установки драйвера можно посмотреть на сайте: https://yadi.sk/i/pEyX3OmpfNxEH
Установка системы «АРИНА» на другую конфигурацию 1С 8
Для того, чтобы установить сервисную систему «АРИНА» 2.0 на имеющуюся у Вас конфигурацию нужно проделать несколько действий:
-
Открыть Вашу конфигурацию 1С в режиме «Конфигуратор».
Если Ваша конфигурация стоит на поддержке, то для установки системы «АРИНА» 2.0 Вам необходимо включить возможность изменений. Для этого выберите пункт меню «Конфигурация\Поддержка\Настройка поддержки»
В открывшейся форме настройки поддержки поставщика нажмите кнопку «Включить возможность изменения» и ответьте «Да» на вопрос системы.
В появившемся окне «Настройка правил поддержки», в разделе «Объекты с правилом «Изменения разрешены» выбрать пункт «Объект поставщика редактируется с сохранением поддержки» и нажмите кнопку «ОК».
После этого, окно конфигурации примет следующий вид:
Выбрать пункт меню «Конфигурация\Сравнить, объединить с конфигурацией из файла»
На запрос системы указать файл «Арина 2.0 - Поставка.cf», входящий в комплект поставки.
В открывшемся окне сравнения конфигураций, отключить все пометки, сняв пометку с корневой ветки.
В подменю «Действия» выбрать пункт «Отметить по подсистемам файла»
В настройке отключить пометку в ветке «Конфигурация» и установить пометку в ветке «АРИНА» и нажать на кнопку «Установить».
После того, как установятся пометки нажать кнопку «Выполнить».
В открывшемся окне «Неразрешимые ссылки» нажать кнопку «Продолжить»
Теперь нужно внести изменения в объекты и модули, существующие в обеих конфигурациях. При изменении модулей рекомендуется сохранять отметки «//**** Арина» для того, чтобы в дальнейшем было легко найти изменения, относящиеся к системе «АРИНА».
Изменения «Модуля внешнего соединения»
В раздел переменных модуля добавить код
//**** Арина +
Перем СписокИсключенийДляБлокировки Экспорт;
Перем ВыполнениеНаКлиенте Экспорт;
Перем ЧетыреКавычки Экспорт;
//**** Арина -
После всех процедур и функция, в основной раздел модуля
//**** Арина +
СписокИсключенийДляБлокировки = Новый СписокЗначений;
ЧетыреКавычки = " """" ";
//**** Арина –
Изменения «Модуля обычного приложения»
В раздел переменных модуля добавить код
//**** Арина +
Перем КонсольЗаданийОткрыта Экспорт; //**** Признак, что консоль уже открыта
Перем СписокИсключенийДляБлокировки Экспорт;
Перем ЧетыреКавычки Экспорт;
//**** Консоль Заявок / Задач / Мероприятий / Оповещений
Перем ОбработкаКонсольЗаявок Экспорт;
//**** Внешние формы объектов системы
Перем КэшОбработокВнешнихФормОбъектов Экспорт;
Перем КэшОткрытыхДополнительныхФормОбъектов Экспорт;
//**** Арина -
В конец процедуры «ПриНачалеРаботыСистемы()» добавить код
//**** Арина +
ФормаОповещенияЗадачОткрыта = Ложь;
//**** Открываем Консоль Заявок и Задач, если надо
КонсольЗаданийОткрыта = Ложь;
ОткрытьКонсоль();
ПроверитьОповещенияСистемы();
Если ПараметрыСеанса.ТекущийПользователь <> Неопределено Тогда
ПодключитьОбработчикОжидания("ПроверитьОповещенияСистемы", 120);
ПодключитьОбработчикОжидания("ОткрытьКонсоль", 120);
ПодключитьОбработчикОжидания("ОчиститьКэшДополнительныхФомОбъектов", 600);
ПодключитьОбработчикОжидания("ВыполнитьРегламентныеЗаданияПользователя", 120);
Иначе
ОтключитьОбработчикОжидания("ПроверитьНапоминанияОСообщении");
ОтключитьОбработчикОжидания("ОткрытьКонсоль");
ОтключитьОбработчикОжидания("ОчиститьКэшДополнительныхФомОбъектов");
ОтключитьОбработчикОжидания("ВыполнитьРегламентныеЗаданияПользователя");
КонецЕсли;
//**** Обновление регистров подсистемы "Статусы объектов" для использования "Видов статусов". В версии 1.0 не "Видов статусов" не было.
ПроверитьОбработатьВидыСтатусовОбъектов();
//**** Арина -
В конец процедуры «ПриЗавершенииРаботыСистемы ()» добавить код
//**** Арина +
ОтключитьОбработчикОжидания("ПроверитьНапоминанияОСообщении");
ОтключитьОбработчикОжидания("ОткрытьКонсоль");
ОтключитьОбработчикОжидания("ОчиститьКэшДополнительныхФомОбъектов");
ОтключитьОбработчикОжидания("ВыполнитьРегламентныеЗаданияПользователя");
//**** Арина -
После всех процедур модуля добавить код
//**** Арина +
//**** Процедура проверяет и при необходимости открывает консоль Заявок
Процедура ОткрытьКонсоль() Экспорт
Если КонсольЗаданийОткрыта Тогда
Возврат;
КонецЕсли;
//**** Открываем Консоль Заявок и Задач, если надо
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Арина_НастройкаЗадачИОбращенийПользователей.АвтоматическиОткрыватьКонсоль
|ИЗ
| РегистрСведений.Арина_НастройкаЗадачИОбращенийПользователей КАК Арина_НастройкаЗадачИОбращенийПользователей
|ГДЕ
| Арина_НастройкаЗадачИОбращенийПользователей.Пользователь = &Пользователь";
Запрос.УстановитьПараметр("Пользователь", ПараметрыСеанса.ТекущийПользователь);
Результат = Запрос.Выполнить().Выгрузить();
Если Результат.Количество() <> 0 Тогда
Если Результат[0].АвтоматическиОткрыватьКонсоль Тогда
НужнаяФорма = ОбработкаКонсольЗаявок.ПолучитьФорму("Арина_ОсновнаяФормаКонсоли", , "КлючУникальности_Заявки_Консоль");
НужнаяФорма.Открыть();
КонецЕсли;
Иначе
//**** Если не нашли личной настройки для пользователя, ищем настройку для его папки
ПапкаПользователя = ПараметрыСеанса.ТекущийПользователь.Родитель;
Пока НЕ ПапкаПользователя.Пустая() Цикл
Запрос.Текст = "ВЫБРАТЬ
| Арина_НастройкаЗадачИОбращенийПользователей.АвтоматическиОткрыватьКонсоль
|ИЗ
| РегистрСведений.Арина_НастройкаЗадачИОбращенийПользователей КАК Арина_НастройкаЗадачИОбращенийПользователей
|ГДЕ
| Арина_НастройкаЗадачИОбращенийПользователей.Пользователь = &Папка";
Запрос.УстановитьПараметр("Папка", ПапкаПользователя);
Результат = Запрос.Выполнить().Выгрузить();
Если Результат.Количество() <> 0 Тогда
Если Результат[0].АвтоматическиОткрыватьКонсоль Тогда
НужнаяФорма = ОбработкаКонсольЗаявок.ПолучитьФорму("Арина_ОсновнаяФормаКонсоли", , "КлючУникальности_Заявки_Консоль");
НужнаяФорма.Открыть();
КонецЕсли;
Прервать;
КонецЕсли;
ПапкаПользователя = ПапкаПользователя.Родитель;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
//**** Процедура очищает кэш откытых дополнительных форм объектов от тех форм, которые уже закрыты
Процедура ОчиститьКэшДополнительныхФомОбъектов() Экспорт
СписокНаУдаление = Новый СписокЗначений;
Для каждого ТекЭл Из КэшОткрытыхДополнительныхФормОбъектов Цикл
Если ТекЭл.Значение <> Неопределено И ТипЗнч(ТекЭл.Значение) = Тип("Форма") И НЕ ТекЭл.Значение.Открыта() Тогда
СписокНаУдаление.Добавить(ТекЭл.Ключ);
КонецЕсли;
КонецЦикла;
Для каждого ТекЭл Из СписокНаУдаление Цикл
КэшОткрытыхДополнительныхФормОбъектов.Удалить(ТекЭл.Значение);
КонецЦикла;
КонецПроцедуры
//**** Проверяет и если нужно отображает оповещения для текущего пользователя по регистрру "Арина_ОповещенияПользователям"
Процедура ПроверитьОповещенияСистемы() Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Арина_ОповещенияПользователям.Пользователь,
| Арина_ОповещенияПользователям.Объект,
| Арина_ОповещенияПользователям.Момент,
| Арина_ОповещенияПользователям.ТекстОповещения,
| Арина_ОповещенияПользователям.Прочитано
|ИЗ
| РегистрСведений.Арина_ОповещенияПользователям КАК Арина_ОповещенияПользователям
|ГДЕ
| Арина_ОповещенияПользователям.Момент <= &ТекущийМомент
| И Арина_ОповещенияПользователям.Пользователь = &Пользователь";
Запрос.УстановитьПараметр("ТекущийМомент", ТекущаяДата());
Запрос.УстановитьПараметр("Пользователь", ПараметрыСеанса.ТекущийПользователь);
Результат = Запрос.Выполнить().Выгрузить();
Для каждого ТекСтрока Из Результат Цикл
Если Арина_ОбщийМодуль.ПолучитьСпособОтображенияОповещений().ВсплывающимОкном Тогда
ФормаОповещение = РегистрыСведений.Арина_ОповещенияПользователям.ПолучитьФорму("ФормаОповещения",, Строка(ТекСтрока.Объект) + СокрЛП(Строка(ТекСтрока.ТекстОповещения)));
ФормаОповещение.Объект = ТекСтрока.Объект;
ФормаОповещение.Момент = ТекСтрока.Момент;
ФормаОповещение.ТекстОповещения = ТекСтрока.ТекстОповещения;
ФормаОповещение.Открыть();
КонецЕсли;
Если НЕ ТекСтрока.Прочитано Тогда
НужнаяСсылка = ?(ЗначениеЗаполнено(ТекСтрока.Объект), ПолучитьНавигационнуюСсылку(ТекСтрока.Объект), "");
ПоказатьОповещениеПользователя("Оповещение 1С " + СокрЛП(ПолучитьЗаголовокСистемы()), ТекСтрока.Объект, ТекСтрока.ТекстОповещения, БиблиотекаКартинок.Оповещение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//**** Процедура обрабатывает регситры сведений, относящиеся к подсистеме "Статусы объектов" и заполняет незаполненные поля "Вид статуса" значением по умолчению
Процедура ПроверитьОбработатьВидыСтатусовОбъектов()
//**** Регистр истории статусов объектов
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Арина_ИсторияСтатусовОбъектов.Объект
|ИЗ
| РегистрСведений.Арина_ИсторияСтатусовОбъектов КАК Арина_ИсторияСтатусовОбъектов
|ГДЕ
| Арина_ИсторияСтатусовОбъектов.Вид = ЗНАЧЕНИЕ(Справочник.Арина_ВидыСтатусовОбъектов.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| Арина_ИсторияСтатусовОбъектов.Объект";
СписокОбъектов = Запрос.Выполнить().Выгрузить();
Сообщили = Ложь;
#Если Клиент Тогда
Если СписокОбъектов.Количество() <> 0 Тогда
Сообщить("Обработка данных подсистемы ""статусы объектов"" к работе с новой версией...", );
Сообщили = Истина;
КонецЕсли;
#КонецЕсли
Для каждого ТекСтрока Из СписокОбъектов Цикл
Набор = РегистрыСведений.Арина_ИсторияСтатусовОбъектов.СоздатьНаборЗаписей();
Набор.Отбор.Объект.Установить(ТекСтрока.Объект);
Набор.Прочитать();
Для каждого Запись Из Набор Цикл
Запись.Вид = Справочники.Арина_ВидыСтатусовОбъектов.Основной;
КонецЦикла;
Попытка
Набор.Записать(Истина);
Исключение
КонецПопытки;
КонецЦикла;
//**** Регистр нужных подписей для подсистемы статусов
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Арина_НужныеПодписиДляУстановкиСтатусаОбъекта.Объект
|ИЗ
| РегистрСведений.Арина_НужныеПодписиДляУстановкиСтатусаОбъекта КАК Арина_НужныеПодписиДляУстановкиСтатусаОбъекта
|ГДЕ
| Арина_НужныеПодписиДляУстановкиСтатусаОбъекта.Вид = ЗНАЧЕНИЕ(Справочник.Арина_ВидыСтатусовОбъектов.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| Арина_НужныеПодписиДляУстановкиСтатусаОбъекта.Объект";
СписокОбъектов = Запрос.Выполнить().Выгрузить();
#Если Клиент Тогда
Если СписокОбъектов.Количество() <> 0 И НЕ Сообщили Тогда
Сообщить("Обработка данных подсистемы ""статусы объектов"" к работе с новой версией...", );
Сообщили = Истина;
КонецЕсли;
#КонецЕсли
Для каждого ТекСтрока Из СписокОбъектов Цикл
Набор = РегистрыСведений.Арина_НужныеПодписиДляУстановкиСтатусаОбъекта.СоздатьНаборЗаписей();
Набор.Отбор.Объект.Установить(ТекСтрока.Объект);
Набор.Прочитать();
Для каждого Запись Из Набор Цикл
Запись.Вид = Справочники.Арина_ВидыСтатусовОбъектов.Основной;
КонецЦикла;
Попытка
Набор.Записать(Истина);
Исключение
КонецПопытки;
КонецЦикла;
//**** Регистр поставленных подписей для подсистемы статусов
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Арина_ПоставленныеПодписиДляУстановкиСтатусаОбъекта.Объект
|ИЗ
| РегистрСведений.Арина_ПоставленныеПодписиДляУстановкиСтатусаОбъекта КАК Арина_ПоставленныеПодписиДляУстановкиСтатусаОбъекта
|ГДЕ
| Арина_ПоставленныеПодписиДляУстановкиСтатусаОбъекта.Вид = ЗНАЧЕНИЕ(Справочник.Арина_ВидыСтатусовОбъектов.ПустаяСсылка)
|
|СГРУППИРОВАТЬ ПО
| Арина_ПоставленныеПодписиДляУстановкиСтатусаОбъекта.Объект";
СписокОбъектов = Запрос.Выполнить().Выгрузить();
#Если Клиент Тогда
Если СписокОбъектов.Количество() <> 0 И НЕ Сообщили Тогда
Сообщить("Обработка данных подсистемы ""статусы объектов"" к работе с новой версией...", );
Сообщили = Истина;
КонецЕсли;
#КонецЕсли
Для каждого ТекСтрока Из СписокОбъектов Цикл
Набор = РегистрыСведений.Арина_ПоставленныеПодписиДляУстановкиСтатусаОбъекта.СоздатьНаборЗаписей();
Набор.Отбор.Объект.Установить(ТекСтрока.Объект);
Набор.Прочитать();
Для каждого Запись Из Набор Цикл
Запись.Вид = Справочники.Арина_ВидыСтатусовОбъектов.Основной;
КонецЦикла;
Попытка
Набор.Записать(Истина);
Исключение
КонецПопытки;
КонецЦикла;
//**** Справочник "Настройки обработки статусов объектов"
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Арина_НастройкиОбработкиСтатусовОбъектов.Ссылка
|ИЗ
| Справочник.Арина_НастройкиОбработкиСтатусовОбъектов КАК Арина_НастройкиОбработкиСтатусовОбъектов
|ГДЕ
| НЕ Арина_НастройкиОбработкиСтатусовОбъектов.ЭтоГруппа
| И Арина_НастройкиОбработкиСтатусовОбъектов.ВидСтатуса = ЗНАЧЕНИЕ(Справочник.Арина_ВидыСтатусовОбъектов.ПустаяСсылка)";
Результат = Запрос.Выполнить().Выгрузить();
Для каждого ТекСтрока Из Результат Цикл
СпрОбъект = ТекСтрока.Ссылка.ПолучитьОбъект();
СпрОбъект.ВидСтатуса = Справочники.Арина_ВидыСтатусовОбъектов.Основной;
Попытка
СпрОбъект.ОбменДанными.Загрузка = Истина;
СпрОбъект.Записать();
Исключение
КонецПопытки;
КонецЦикла;
КонецПроцедуры
//**** Процедура перебирает имеющиеся регламентные задания текущего пользователя по регистру "Арина_РегламентныеЗаданияДляПользователей" и выполняет записанный там программный код
Процедура ВыполнитьРегламентныеЗаданияПользователя() Экспорт
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Арина_РегламентныеЗаданияДляПользователей.Пользователь,
| Арина_РегламентныеЗаданияДляПользователей.ТекстПрогКода,
| Арина_РегламентныеЗаданияДляПользователей.УИДРегЗадания
|ИЗ
| РегистрСведений.Арина_РегламентныеЗаданияДляПользователей КАК Арина_РегламентныеЗаданияДляПользователей
|ГДЕ
| Арина_РегламентныеЗаданияДляПользователей.Пользователь = &Пользователь";
Запрос.УстановитьПараметр("Пользователь", ПараметрыСеанса.ТекущийПользователь);
Результат = Запрос.Выполнить().Выгрузить();
Для каждого ТекСтрока Из Результат Цикл
ТекстКода = СокрЛП(ТекСтрока.ТекстПрогКода);
Если ТекстКода <> "" Тогда
Попытка
Выполнить(ТекстКода);
//**** Удаляем отработанное задание
Набор = РегистрыСведений.Арина_РегламентныеЗаданияДляПользователей.СоздатьНаборЗаписей();
Набор.Отбор.Пользователь.Установить(ПараметрыСеанса.ТекущийПользователь);
Набор.Отбор.УИДРегЗадания.Установить(ТекСтрока.УИДРегЗадания);
Набор.Записать(Истина);
Исключение
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//**** Арина -
После всех операторов в основой части модуля добавить код
//**** Арина +
СписокИсключенийДляБлокировки = Новый СписокЗначений;
ОбработкаКонсольЗаявок = Обработки.Арина_КонсольЗаявокПоручений.Создать();
КэшОбработокВнешнихФормОбъектов = Новый Соответствие;
КэшОткрытыхДополнительныхФормОбъектов = Новый Соответствие;
ЧетыреКавычки = " """" ";
//**** Арина –
В обще форме «ФормаСтруктурыПодчиненности» необходимо проверить использование правильного имени критерия отбора для подчиненных объектов. В системе «АРИНА» используется имя критерия отбора «СвязанныеДокументы», как в конфигурации 1С «Управление торговлей 10». В конфигурации 1С «Бухгалтерия предприятия 2» обычно используется имя критерия отбора «СтруктураПодчиненности». Для того, чтобы не возникало ошибок в работе системы Вам необходимо заменить в модуле общей формы «ФормаСтруктурыПодчиненности» наименование критерия отбора на правильное.
Расширение критерия отбора для структуры подчиненности
Откройте свойства критерия отбора, который отвечает за построение структуры подчиненности. В типовых конфигурациях 1С, на вкладке «Данные», для поля «Тип» установлено только одно значение «ДокументСсылка». Для полноценной работы системы «АРИНА» рекомендуется добавить в состав типов данных критерия отбора «СправочникСсылка», «БизнесПроцессСсылка», и« ЗадачаСсылка» , сделав его «Составным».
Переключившись на вкладку «Состав» Вам нужно включить в состав критерия отбора реквизиты «Основание» и «ТабличнаяЧасть:ПрикрепленныеОбъекты\Объект» для трех документов системы АРИНА: «Арина_ЗаявкаПоручение», «Арина_ЗадачаИсполнителю» и «Арина_МероприятиеДело»
В интерфейс «Полный» нужно вставить подменю «Система АРИНА», скопировав его из интерфейса «Арина_Интерфейс»
Для пользователя(ей), которые будут иметь доступ к настройкам системы АРИНА, необходимо включить роль «АдминистраторСистемы»
В свойствах документов «Арина_ЗаявкаПоручение», «Арина_ЗадачаИсполнителю» и «Арина_МероприятиеДело», в разделе «Ввод на основании\Вводится на основании» необходимо указать те, документы, справочники, Бизнес-процессы или Задачи, на основании которых Вы предполагаете создавать «Заявки», «Задачи исполнителю» или «Мероприятия» системы «АРИНА»
ВНИМАНИЕ! Если в системе не зарегистрировано ни одного пользователя, то Вы не сможете нормально использовать систему «АРИНА».
Для полноценной работы подсистемы «Правила обработки объектов» необходимо изменить процедуру, отвечающую за установку доступности поля кода у справочников и номера у документов, задач и бизнес-процессов. Обычно эта процедура называется «УстановитьДоступностьПоляВводаНомера».
В начало процедуры необходимо вставить код
//**** Арина +
Если Метаданные.Справочники.Содержит(МетаданныеОбъекта) Тогда
Арина_ОбщийМодуль.Арина_ОбработкаСправочникПриОткрытииФормы(МетаданныеОбъекта, ФормаОбъекта);
ИначеЕсли Метаданные.Документы.Содержит(МетаданныеОбъекта) Тогда
Арина_ОбщийМодуль.Арина_ОбработкаДокументПриОткрытииФормы(МетаданныеОбъекта, ФормаОбъекта);
КонецЕсли;
//**** Арина -
Если У Вас оригинальная конфигурация, построенная не на базе типовых конфигураций фирмы 1С, то Вы можете добавить этот код в начало обработчика «ПриОткрытии» формы объектов Вашей конфигурации.
Для тех объектов, которые Вы собираетесь подключить к подсистеме «Дополнительные формы объектов» необходимо произвести изменения в модуле основной формы объекта.
В обработчик «ПередОткрытием» Формы объекта нужно добавить код
//**** Арина +
//**** Используется для работы механизма дополнительных форм объектов
Арина_ОбщийМодуль.ПередОткрытиемФормыОбъекта(ЭтаФорма, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//**** Арина -
Для тех объектов, которые Вы предполагаете подключить к подсистеме статусов, необходимо произвести изменения в модуле основной формы объекта.
На форму объекта необходимо добавить элементы отображения текущих статусов и управления ими. Добавленные элементы нужно привязать к правому верхнему углу формы объекта.
Эти элементы можно скопировать с формы любого из документов, входящих в систему АРИНА: «Арина_ЗаявкаПоручение», «Арина_ЗадачаИсполнителю» или «Арина_МероприятиеДело». После этого нужно произвести в модуле формы объекта следующие изменения:
Добавить перед основным разделом модуля процедуры
//*************************************************************************************************************************************************
//**** С Т А Т У С Ы Д О К У М Е Н Т А
Процедура КнопкаИсторияСтатусовНажатие(Элемент)
Арина_ОбщийМодуль.ОтобразитьИсториюСтатусовОбъекта(Ссылка);
ОбновитьВидимостьТекущегоСтатуса();
КонецПроцедуры
Процедура КнопкаПолногоДереваПодписейНажатие(Элемент)
Арина_ОбщийМодуль.ОтобразитьДеревоПодписейПодСтатусамиПереходаОбъекта(Ссылка);
КонецПроцедуры
Процедура КнопкаПоставленныеПодписиНажатие(Элемент)
Арина_ОбщийМодуль.ОтобразитьПоставленныеПодписиПодОбъектом(Ссылка);
КонецПроцедуры
Процедура НадписьСтатусНажатие(Элемент)
//Если ЭтоНовый() ИЛИ Модифицированность() Тогда
Если ЭтоНовый() ИЛИ Модифицированность Тогда
Предупреждение("Для установки статуса объект необходимо сначала записать!", 25);
Возврат;
КонецЕсли;
Арина_ОбщийМодуль.ПоставитьПодписьПодСтатусомОбъекта(Ссылка);
Прочитать();
ОбновитьВидимостьТекущегоСтатуса();
КонецПроцедуры
Процедура ОбновитьВидимостьТекущегоСтатуса()
Арина_ОбщийМодуль.ОбновитьВидимостьТекущегоСтатусаОбъекта(Ссылка, ЭлементыФормы.НадписьСтатус);
КонецПроцедуры
Процедура КнопкаОбновитьДеревоНужныхПодписейНажатие(Элемент)
Если ЭтоНовый() ИЛИ Модифицированность Тогда
Предупреждение("Для обновления дерева подписей документ необходимо сначала записать!", 25);
Возврат;
КонецЕсли;
Арина_ОбщийМодуль.УстановкаСтатусовОбъектаПриЗаписи(ЭтотОбъект, Ложь);
ОбновитьВидимостьТекущегоСтатуса();
КонецПроцедуры
В процедуру обработчика «ПриОткрытии» добавить код
//**** Арина +
ОбновитьВидимостьТекущегоСтатуса();
//**** Арина -
В процедуру обработчика «ОбработкаОповещения» добавиь код
//**** Арина +
Если Метаданные.Справочники.Содержит(Метаданные()) Тогда
ИмяСобытияСтатусов = "УстановкаПодписи_" + Метаданные().Имя + "_" + СокрЛП(Строка(ЭтотОбъект.Код));
ИначеЕсли Метаданные.Документы.Содержит(Метаданные()) Тогда
ИмяСобытияСтатусов = "УстановкаПодписи_" + Метаданные().Имя + "_" + СокрЛП(Строка(ЭтотОбъект.Номер));
КонецЕсли;
Если ИмяСобытия = ИмяСобытияСтатусов Тогда
Прочитать();
ОбновитьВидимостьТекущегоСтатуса();
КонецЕсли;
//**** Арина -
В процедуру обработчика «ПриЗаписи» добавить код
//**** Арина +
ОбновитьВидимостьТекущегоСтатуса();
//**** Арина -
|