|
Найти и выборочно вернуть неизмененные объекты на поддержку без изменения | ☑ | ||
---|---|---|---|---|
0
ЧессМастер
21.11.16
✎
09:56
|
Всем доброе время суток !
Можно ли объекты конфигурации, которые не имеют изменений по отношению к конфигурации поставщика вернуть на поддержку без снятия всей конфигурации с поддержки и обновления с конфигурацией поставщика ? Версия платформы 8.3.8.1964 И второй вопрос - можно ли программно найти объекты конфигурации которые сняты с поддержки (или для которых включена возможность редактирования) ? Глазами подобные объекты искать сложно и неудобно. Поиском по форуму нашел похожую тему Вернуть неизмененные объекты на поддержку без изменения Но может за полтора года в движке появились изменения которые позволяют решать проблему без полного снятия конфигурации с поддержки. |
|||
1
ildary
21.11.16
✎
16:02
|
Я писал скрипт на autoit, вроде работает (установка 1 или 5 или 10 объектов в состояние "Не редактируется". Все работает, но надо за ним приглядывать.
|
|||
2
ЧессМастер
21.11.16
✎
19:32
|
(1) можно подробности как это работает ?
|
|||
3
ЧессМастер
21.11.16
✎
19:47
|
(1) меня устроил был любой способ проставить эти признаки. хоть вручную по одному.
|
|||
4
Лефмихалыч
21.11.16
✎
20:27
|
(3) через настройку поддержки же и ставь, что мешает? Там при попытке вернуть на поддержку платформе справшивает какую-то инопланетянскую полюбень, ты говоришь: "да", она делает сравнение-объединение, в котором ты как раз можешь установить обратно на поддержку.
|
|||
5
ЧессМастер
22.11.16
✎
09:18
|
(4) мешает то что если у документа стоит признак "Редактируется с сохранением поддержки" и нет различия с конфигурацией поставщика то он не попадает в список документов по которым есть различие с конфигурацией поставщика. соответственно нельзя поставить признак "Не редактируется".
То есть последовательность следующая. 1. Конфигурация - Поддержка - Настройка поддержки. Напротив любого реквизита документа у которого стоит признак "Редактируется с сохранением поддержки" меняю на "Объект поставщика не редактируется". Мне система сообщает что это можно сделать только в режиме сравнения / объединения с конфигурацией поставщика. Но поскольку по документу по реквизитам различий нет то документ просто не попадает в сравнения / объединения с конфигурацией поставщика. В лучшем случае получается поставить замочки на формы, внося в текущие формы изменения. Потом при сравнения / объединения с конфигурацией поставщика форма попадает в в сравнения / объединения с конфигурацией поставщика и по ней можно выставить признак "Не редактируется". Но с реквизитами такой финт не проходит. |
|||
6
ildary
22.11.16
✎
10:30
|
(5) Кидаю скрипт, отдаю AS IS (бекап перед началом и во время работы обязателен). За его работу на чужом компе и в чужих руках я не отвечаю, но у себя я вернул на поддержку УТ11.1 (кроме измененных). Требуется Autoit 3.3.14.2. Надо запустить данный скрипт, в конфигураторе сделать Конфигурация-Поддержка-Настройка поддержки, встать в дереве на нужный объект и нажать F7 (если не сработало - то надо поменять в коде местами 2 строки со словом "$Key2Send". Если работает, то можно нажимать F8 - исправит сразу 5 подряд объектов или F9 (18 объектов). Скрипт чувствителен к скорости компа - если что то не устраивает - на старом компе можно увеличить задержку $Pause (сейчас 65)
; Каждый сеанс восстановления надо сопровождать записью #include <WinAPI.au3> Dim $ConfTitle = "Конфигуратор - Управление торговлей, редакция 11.1" Dim $Key2Send = "{DOWN}" ; Если у объектов стоит "Снят с поддержки" Dim $Key2Send = "{UP}" ; Если у объектов стоит "Редактируется с сохранением поддержки" Dim $Pause = 65 ; задержка между операциями, меньше 65 опасно Dim $IterNum = 18 ; сколько за раз сделается по F9 Dim $InstanceNumber = 7 ; для 8.3.6 Dim $InstanceNumber = 9 ; для 8.3.8 ;~ #NoTrayIcon _Main() ; 2 служебные функции для получения стиля Func GUICtrlGetStyle($hWnd) If Not IsHWnd($hWnd) Then $hWnd = GUICtrlGetHandle($hWnd) EndIf Local $aReturn = [_WinAPI_GetWindowLong($hWnd, $GWL_STYLE), _WinAPI_GetWindowLong($hWnd, $GWL_EXSTYLE)] Return $aReturn EndFunc ;==>GUICtrlGetStyle Func _GUICtrlGetStyle_Convert(ByRef $aArray) If UBound($aArray) = 2 Then $aArray[0] = '0x' & Hex($aArray[0], 4) $aArray[1] = '0x' & Hex($aArray[1], 8) EndIf EndFunc ;==>_GUICtrlGetStyle_Convert Func Change() ;~ ; откроем окно одного объекта пыкнем на кнопку (она не нажмется, только выделится) $Res = ControlClick( $ConfTitle, "", "[CLASS:V8FormElement; INSTANCE:" & $InstanceNumber & "]" ) If $Res = 0 Then Return False Sleep( 30 ) Send( "{ENTER}" ) ; вот тут действительно нажали Sleep( $Pause / 2 ) If Not WinExists( "Настройка правил поддержки" ) Then Return False ; проверим включенность пункта "Объект поставщика не редактируется" $hnd = ControlGetHandle( "Настройка правил поддержки", "", "[CLASS:V8FormElement; INSTANCE:6]" ) If $hnd = 0 Then Return False ; его вообще не нашли Local $aArray = GUICtrlGetStyle($hnd) If $aArray[0] = 1577058304 Then Return False ; открылось окно с отключенным "Объект поставщика не редактируется" - значит это группа или что-то плохое ; выполним все действия и закроем окно Send( $Key2Send & "{TAB}{SPACE}{ENTER}" ) Sleep( $Pause ) ; перейдем к следующему пункту ;~ Send( "{TAB}" ) ; для 8.3.6 Send( "+{TAB}+{TAB}" ) ; для 8.3.8 Sleep( $Pause ) Send( "{DOWN}" ) Return True EndFunc ; Change Func KeyF7_1() Change() EndFunc ; KeyF7_1 Func KeyF8_5() For $ii = 1 To 5 If Not Change() Then ExitLoop Next EndFunc ; KeyF8_5 Func KeyF9_Many() For $ii = 1 To $IterNum If Not Change() Then ExitLoop Next EndFunc ; KeyF9_Many Func _Main() HotKeySet( "{F7}", "KeyF7_1" ) HotKeySet( "{F8}", "KeyF8_5" ) HotKeySet( "{F9}", "KeyF9_Many" ) While 1 Sleep( 3 * 1000 ) ;3 sec WEnd EndFunc ;_Main |
|||
7
Лефмихалыч
22.11.16
✎
10:31
|
(5) так ты фильтр "Без фильтра" поставь :)
|
|||
8
Лефмихалыч
22.11.16
✎
10:34
|
||||
9
ЧессМастер
28.11.16
✎
16:20
|
(6) спасибо большое - очень интересный способ
(7) да как вариант подойдет. спасибо за подсказку. еще один момент не подскажете ? почему иногда объект конфигурации нельзя поставить на поддержку ? этот пункт недоступен http://imgur.com/a/6oOi5 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |