Найти и выборочно вернуть неизмененные объекты на поддержку без изменения #785581


#0 by ЧессМастер
Всем доброе время суток ! Можно ли объекты конфигурации, которые не имеют изменений по отношению к конфигурации поставщика вернуть на поддержку без снятия всей конфигурации с поддержки и обновления с конфигурацией поставщика ? Версия платформы 8.3.8.1964 И второй вопрос - можно ли программно найти объекты конфигурации которые сняты с поддержки (или для которых включена возможность редактирования) ? Глазами подобные объекты искать сложно и неудобно. Поиском по форуму нашел похожую тему Но может за полтора года в движке появились изменения которые позволяют решать проблему без полного снятия конфигурации с поддержки.
#1 by ildary
Я писал скрипт на autoit, вроде работает (установка 1 или 5 или 10 объектов в состояние "Не редактируется". Все работает, но надо за ним приглядывать.
#2 by ЧессМастер
можно подробности как это работает ?
#3 by ЧессМастер
меня устроил был любой способ проставить эти признаки. хоть вручную по одному.
#4 by Лефмихалыч
через настройку поддержки же и ставь, что мешает? Там при попытке вернуть на поддержку платформе справшивает какую-то инопланетянскую полюбень, ты говоришь: "да", она делает сравнение-объединение, в котором ты как раз можешь установить обратно на поддержку.
#5 by ЧессМастер
мешает то что если у документа стоит признак "Редактируется с сохранением поддержки" и нет различия с конфигурацией поставщика то он не попадает в список документов по которым есть различие с конфигурацией поставщика. соответственно нельзя поставить признак "Не редактируется". То есть последовательность следующая. 1. Конфигурация - Поддержка - Настройка поддержки. Напротив любого реквизита документа у которого стоит признак "Редактируется с сохранением поддержки" меняю на "Объект поставщика не редактируется". Мне система сообщает что это можно сделать только в режиме сравнения / объединения с конфигурацией поставщика. Но поскольку по документу по реквизитам различий нет то документ просто не попадает в сравнения / объединения с конфигурацией поставщика. В лучшем случае получается поставить замочки на формы, внося в текущие формы изменения. Потом при сравнения / объединения с конфигурацией поставщика форма попадает в  в сравнения / объединения с конфигурацией поставщика и по ней можно выставить признак "Не редактируется". Но с реквизитами такой финт не проходит.
#6 by ildary
Кидаю скрипт, отдаю AS IS (бекап перед началом и во время работы обязателен). За его работу на чужом компе и в чужих руках я не отвечаю, но у себя я вернул на поддержку УТ11.1 (кроме измененных). Требуется Autoit 3.3.14.2. Надо запустить данный скрипт, в конфигураторе сделать Конфигурация-Поддержка-Настройка поддержки, встать в дереве на нужный объект и нажать F7 (если не сработало - то надо поменять в коде местами 2 строки со словом "$Key2Send". Если работает, то можно нажимать F8 - исправит сразу 5 подряд объектов или F9 (18 объектов). Скрипт чувствителен к скорости компа - если что то не устраивает - на старом компе можно увеличить задержку $Pause (сейчас 65) ; Каждый сеанс восстановления надо сопровождать записью Dim $ConfTitle = "Конфигуратор - Управление торговлей, редакция 11.1" Dim $Key2Send = "{DOWN}" ; Если у объектов стоит "Снят с поддержки" Dim $Key2Send = "{UP}"   ; Если у объектов стоит "Редактируется с сохранением поддержки" Dim $Pause = 65 ; задержка между операциями, меньше 65 опасно Dim $IterNum = 18 ; сколько за раз сделается по F9 ; 2 служебные функции для получения стиля Func GUICtrlGetStyle($hWnd)    If Not IsHWnd($hWnd) Then ;~    ; откроем окно одного объекта  пыкнем на кнопку (она не нажмется, только выделится)    $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 ; открылось окно с отключенным "Объект поставщика не редактируется" - значит это группа или что-то плохое    ; выполним все действия и закроем окно    For $ii = 1 To 5       If Not Change Then ExitLoop    Next       If Not Change Then ExitLoop    Next
#7 by Лефмихалыч
так ты фильтр "Без фильтра" поставь :)
#8 by Лефмихалыч
+
#9 by ЧессМастер
спасибо большое - очень интересный способ да как вариант подойдет. спасибо за подсказку. еще один момент не подскажете ? почему иногда объект конфигурации нельзя поставить на поддержку ? этот пункт недоступен
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С