Очередной специфический "Кейс" - Автоподписание в ТМ

8 0

В общем, я уже ранее писал: Лень - двигатель прогресса. Если бы человек любил ходить, он никогда бы не сделал Феррари) Вот и в моем случае: сделал десяток маршрутов вручную, да плюнул - не для того учился. А коль решение принято и делать все же надо, я подошел к процессу творчески.

Ранее, на форуме уже писали о пользе и этике Автоподписания, а так же о их методах поэтому эту стороны вопроса рассматривать я не стану, я расскажу лишь о методе "Ленивой замены" показателя:

1. Определим маршруты, где нам надо произвести замену:

SprComponents = References.SYSREF_STANDARD_ROUTES.GetComponent()
    View = SprComponents.CreateView('Главное')
    View.ViewMode = vmSelect 
    View.MultiSelection = TRUE
    View.MainForm.Show
if View.MainForm.Result = mrOK
//.................

Нет времени фильтровать (точнее описывать это и подстаривать), да и мне это ровно на раз и надо, так что достаточно и такой простенькой конструкции.

2. Формируем списки и получаем необходимые нам сведения:

Index2 = 0                                                
            while (Index2) < View.SelectedRecordCount
               Dot = References.SYSREF_STANDARD_ROUTES.GetObjectByID(View.SelectedRecordsID(Index2))
               OldStr = '<Property Name="AutoSign" Type="5" Description="Автоматическое подписание" DescriptionLocalizeID="COMMON.DIRBLOCK_DESC_DF627E34_8C4C_4A08_A28B_F22264746A1B" Visible="true" ParentProperty="SigningRequired" IsOut="false" ValueType="0" AllowedTypes="5" AllowedValueTypes="1;0"><ValueParamNames/><Value Value="false"/></Property></Properties>'
               NewStr = '<Property Name="AutoSign" Type="5" Description="Автоматическое подписание" DescriptionLocalizeID="COMMON.DIRBLOCK_DESC_DF627E34_8C4C_4A08_A28B_F22264746A1B" Visible="true" ParentProperty="SigningRequired" IsOut="false" ValueType="0" AllowedTypes="5" AllowedValueTypes="1;0"><ValueParamNames/><Value Value="True"/></Property></Properties>'
               NewText = ЗамПодстр(Dot.ISBSearchCondition;OldStr;NewStr)
               Dot.ISBSearchCondition = NewText
               Dot.Save
               Index2 = Index2 + 1
            endwhile
    endif
ShowMessage('Работа Сценария успешно завершена!')

3. Аплодируем себе любимому и проверяем, что у нас все стало так как надо. 

А вот теперь - ощутите вкус власти, когда вы впервые попробуете сделать такую замену, какие перспективы у нас впереди? Замены элементов и инструкций в маршрутах, поиск реквизитов и даже людей там, где кто-то по глупости вписывал пользователя вместо роли. Все это оказывается не так уж и сложно реализуемо! Достаточно хорошенько облениться и сделать все основательно. 

Собственно это все! Кейс получился маленький, но весьма шустрый :) 

Удачного дня. 

Пока комментариев нет.

Авторизуйтесь, чтобы написать комментарий