answer42 0.4.65__tar.gz → 0.4.67__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. {answer42-0.4.65 → answer42-0.4.67}/PKG-INFO +1 -1
  2. {answer42-0.4.65 → answer42-0.4.67}/pyproject.toml +1 -1
  3. {answer42-0.4.65 → answer42-0.4.67}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form/Module.bsl +98 -17
  4. {answer42-0.4.65 → answer42-0.4.67}/.gitignore +0 -0
  5. {answer42-0.4.65 → answer42-0.4.67}/LICENSE +0 -0
  6. {answer42-0.4.65 → answer42-0.4.67}/README.md +0 -0
  7. {answer42-0.4.65 → answer42-0.4.67}/credentials.example.json +0 -0
  8. {answer42-0.4.65 → answer42-0.4.67}/docs/agent-installation.md +0 -0
  9. {answer42-0.4.65 → answer42-0.4.67}/docs/architecture.md +0 -0
  10. {answer42-0.4.65 → answer42-0.4.67}/docs/assets/answer42-logo.png +0 -0
  11. {answer42-0.4.65 → answer42-0.4.67}/docs/assets/platform42-logo.svg +0 -0
  12. {answer42-0.4.65 → answer42-0.4.67}/docs/installation.md +0 -0
  13. {answer42-0.4.65 → answer42-0.4.67}/scripts/build_cf.py +0 -0
  14. {answer42-0.4.65 → answer42-0.4.67}/scripts/build_pages.py +0 -0
  15. {answer42-0.4.65 → answer42-0.4.67}/scripts/e2e_http_smoke.py +0 -0
  16. {answer42-0.4.65 → answer42-0.4.67}/scripts/e2e_stable.py +0 -0
  17. {answer42-0.4.65 → answer42-0.4.67}/scripts/openclaw_mcp_autoreload.py +0 -0
  18. {answer42-0.4.65 → answer42-0.4.67}/scripts/rag_cli.py +0 -0
  19. {answer42-0.4.65 → answer42-0.4.67}/src/cf/ConfigDumpInfo.xml +0 -0
  20. {answer42-0.4.65 → answer42-0.4.67}/src/cf/Configuration.xml +0 -0
  21. {answer42-0.4.65 → answer42-0.4.67}/src/cf/DataProcessors/MCPTestManager/Ext/ObjectModule.bsl +0 -0
  22. {answer42-0.4.65 → answer42-0.4.67}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260/Ext/Form.xml" +0 -0
  23. {answer42-0.4.65 → answer42-0.4.67}/src/cf/DataProcessors/MCPTestManager/Forms//320/244/320/276/321/200/320/274/320/260.xml" +0 -0
  24. {answer42-0.4.65 → answer42-0.4.67}/src/cf/DataProcessors/MCPTestManager.xml +0 -0
  25. {answer42-0.4.65 → answer42-0.4.67}/src/cf/Ext/ManagedApplicationModule.bsl +0 -0
  26. {answer42-0.4.65 → answer42-0.4.67}/src/cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
  27. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/Catalogs//320/237/320/241_/320/222/320/273/320/260/320/264/320/265/320/273/320/265/321/206.xml" +0 -0
  28. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/Catalogs//320/237/320/241_/320/241/320/277/321/200/320/260/320/262/320/276/321/207/320/275/320/270/320/2721.xml" +0 -0
  29. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/ConfigDumpInfo.xml +0 -0
  30. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/Configuration.xml +0 -0
  31. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/Languages//320/240/321/203/321/201/321/201/320/272/320/270/320/271.xml" +0 -0
  32. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262/Ext/ManagerModule.bsl" +0 -0
  33. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262/Ext/ObjectModule.bsl" +0 -0
  34. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262/Templates//320/236/321/201/320/275/320/276/320/262/320/275/320/260/321/217/320/241/321/205/320/265/320/274/320/260/320/232/320/276/320/274/320/277/320/276/320/275/320/276/320/262/320/272/320/270/320/224/320/260/320/275/320/275/321/213/321/205/Ext/Template.xml" +0 -0
  35. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262/Templates//320/236/321/201/320/275/320/276/320/262/320/275/320/260/321/217/320/241/321/205/320/265/320/274/320/260/320/232/320/276/320/274/320/277/320/276/320/275/320/276/320/262/320/272/320/270/320/224/320/260/320/275/320/275/321/213/321/205.xml" +0 -0
  36. {answer42-0.4.65 → answer42-0.4.67}/src/client_cf/Reports//320/237/320/241_/320/241/320/277/320/270/321/201/320/276/320/272/320/255/320/273/320/265/320/274/320/265/320/275/321/202/320/276/320/262.xml" +0 -0
  37. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/__init__.py +0 -0
  38. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/assets/MCPTestClient.cf +0 -0
  39. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/assets/MCPTestManager.cf +0 -0
  40. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/assets/__init__.py +0 -0
  41. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/assets/skills/answer42/SKILL.md +0 -0
  42. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/assets/skills/answer42-rag/SKILL.md +0 -0
  43. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/assets/skills/answer42-universal-report/SKILL.md +0 -0
  44. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/auth.py +0 -0
  45. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/bridge.py +0 -0
  46. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/credentials.py +0 -0
  47. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/os_support.py +0 -0
  48. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/platform.py +0 -0
  49. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/protocol.py +0 -0
  50. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/rag/__init__.py +0 -0
  51. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/rag/detect.py +0 -0
  52. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/rag/dump.py +0 -0
  53. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/rag/model.py +0 -0
  54. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/rag/parsers.py +0 -0
  55. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/rag/service.py +0 -0
  56. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/rag/store.py +0 -0
  57. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/rag/summary_backend.py +0 -0
  58. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/rag/summary_vector.py +0 -0
  59. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/recorder.py +0 -0
  60. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/release_helper.py +0 -0
  61. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/runtime.py +0 -0
  62. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/server.py +0 -0
  63. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/skill_installer.py +0 -0
  64. {answer42-0.4.65 → answer42-0.4.67}/src/mcp_1c/window_control.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: answer42
3
- Version: 0.4.65
3
+ Version: 0.4.67
4
4
  Summary: Answer42 — The Answer to Life, Universe, and 1C — UI Driver. MCP-powered 1C:Enterprise UI automation: click, fill, navigate, test, and introspect managed forms through the test-client API
5
5
  Author: Marvin (AI Assistant), 42Clouds, and contributors
6
6
  Author-email: "Kosolapov Stanislav (proDOOMman)" <prodoomman@gmail.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "answer42"
3
- version = "0.4.65"
3
+ version = "0.4.67"
4
4
  description = "Answer42 — The Answer to Life, Universe, and 1C — UI Driver. MCP-powered 1C:Enterprise UI automation: click, fill, navigate, test, and introspect managed forms through the test-client API"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -2059,7 +2059,8 @@
2059
2059
  // формы. После этого интерактивные действия по форме могут падать с
2060
2060
  // "Недоступный пользователю элемент управления...". Возвращаем UI в форму:
2061
2061
  // если нажимали кнопку раздела — нажимаем её повторно (переключатель панели),
2062
- // затем активизируем окно и первую найденную форму.
2062
+ // закрываем случайно открытую панель/окно "Помощь", затем активизируем окно
2063
+ // и первую найденную форму.
2063
2064
  Если КнопкаРаздела <> Неопределено Тогда
2064
2065
  Попытка
2065
2066
  КнопкаРаздела.Нажать();
@@ -2067,6 +2068,7 @@
2067
2068
  // Игнорируем: cleanup не должен ломать полезный результат команды.
2068
2069
  КонецПопытки;
2069
2070
  КонецЕсли;
2071
+ ЗакрытьПанелиПомощиПослеКомандногоИнтерфейсаMCP(Окно);
2070
2072
  Попытка
2071
2073
  Окно.Активизировать();
2072
2074
  Исключение
@@ -2080,6 +2082,44 @@
2080
2082
  КонецПопытки;
2081
2083
  КонецПроцедуры
2082
2084
 
2085
+ &НаКлиенте
2086
+ Процедура ЗакрытьПанелиПомощиПослеКомандногоИнтерфейсаMCP(ЦелевоеОкно)
2087
+ Попытка
2088
+ АктивноеОкно = ТестируемоеПриложение.ПолучитьАктивноеОкно();
2089
+ Если ЭтоОкноПомощиКомандногоИнтерфейсаMCP(АктивноеОкно) Тогда
2090
+ АктивноеОкно.Закрыть();
2091
+ КонецЕсли;
2092
+ Исключение
2093
+ КонецПопытки;
2094
+
2095
+ Для Каждого ТекущееОкно Из ОкнаТестируемогоПриложения() Цикл
2096
+ Если ЦелевоеОкно <> Неопределено И ТекущееОкно = ЦелевоеОкно Тогда
2097
+ Продолжить;
2098
+ КонецЕсли;
2099
+ Если Не ЭтоОкноПомощиКомандногоИнтерфейсаMCP(ТекущееОкно) Тогда
2100
+ Продолжить;
2101
+ КонецЕсли;
2102
+ Попытка
2103
+ ТекущееОкно.Закрыть();
2104
+ Исключение
2105
+ // Игнорируем: cleanup не должен ломать полезный результат команды.
2106
+ КонецПопытки;
2107
+ КонецЦикла;
2108
+ КонецПроцедуры
2109
+
2110
+ &НаКлиенте
2111
+ Функция ЭтоОкноПомощиКомандногоИнтерфейсаMCP(Окно)
2112
+ Если Окно = Неопределено Тогда
2113
+ Возврат Ложь;
2114
+ КонецЕсли;
2115
+ ЗаголовокОкна = НРег(БезопасноеСвойство(Окно, "Заголовок", ""));
2116
+ ИмяОкна = НРег(БезопасноеСвойство(Окно, "Имя", ""));
2117
+ НавигационнаяСсылка = НРег(БезопасноеСвойство(Окно, "НавигационнаяСсылка", ""));
2118
+ Возврат СтрНайти(ЗаголовокОкна, "помощ") > 0
2119
+ Или СтрНайти(ИмяОкна, "помощ") > 0
2120
+ Или СтрНайти(НавигационнаяСсылка, "help") > 0;
2121
+ КонецФункции
2122
+
2083
2123
  &НаКлиенте
2084
2124
  Функция КомандныйИнтерфейсЦелевоеОкно(Параметры)
2085
2125
  ОкноЗаголовок = СвойствоСтруктуры(Параметры, "window_title", "");
@@ -2224,6 +2264,12 @@
2224
2264
  Возврат Результат;
2225
2265
  КонецФункции
2226
2266
 
2267
+ &НаКлиенте
2268
+ Функция КомандныйИнтерфейсСлужебныйРазделMCP(ЗаголовокРаздела)
2269
+ Заголовок = НРег(СокрЛП(ЗаголовокРаздела));
2270
+ Возврат Заголовок = "помощь" Или Заголовок = "help";
2271
+ КонецФункции
2272
+
2227
2273
  &НаКлиенте
2228
2274
  Функция КомандыВсехРазделовКомандногоИнтерфейса(АктивноеОкно, Интерфейс, СтрокаПоиска, Максимум, Тайминги)
2229
2275
  Результат = Новый Массив;
@@ -2235,6 +2281,9 @@
2235
2281
  Если ПустаяСтрока(ЗаголовокРаздела) Тогда
2236
2282
  Продолжить;
2237
2283
  КонецЕсли;
2284
+ Если КомандныйИнтерфейсСлужебныйРазделMCP(ЗаголовокРаздела) Тогда
2285
+ Продолжить;
2286
+ КонецЕсли;
2238
2287
  КнопкаРаздела = КомандныйИнтерфейсНайтиРаздел(Интерфейс, ЗаголовокРаздела);
2239
2288
  Если КнопкаРаздела = Неопределено Тогда
2240
2289
  Продолжить;
@@ -3027,7 +3076,7 @@
3027
3076
  ЗаголовокТек = БезопасныйЗаголовокСКешемMCP(Кандидат, КешСериализации);
3028
3077
  ТипТек = НормализованноеИмяТипа(Строка(ТипЗнч(Кандидат)));
3029
3078
  Если ОбъектСоответствует(ИмяТек, ЗаголовокТек, ТипТек, Имя, "", ТипОбъектаСтрокой) Тогда
3030
- Найденные.Добавить(ОбъектВСтруктуру(Кандидат, 0, ПоказыватьСкрытые, Истина, Истина, Ложь, КешСериализации, ВключатьДанные, Ложь, Неопределено, Ложь));
3079
+ Найденные.Добавить(ОбъектВСтруктуру(Кандидат, 0, ПоказыватьСкрытые, Истина, Истина, Ложь, КешСериализации, ВключатьДанные, Ложь, Неопределено, Ложь, ВключатьСостояниеВидимости, ВключатьСостояниеДоступности, ВключатьСостояниеТолькоПросмотр, ВключатьТекущееСостояние));
3031
3080
  КонецЕсли;
3032
3081
  КонецЦикла;
3033
3082
  Возврат Найденные;
@@ -9341,6 +9390,25 @@
9341
9390
 
9342
9391
  #Область Сериализация
9343
9392
 
9393
+ &НаКлиенте
9394
+ Функция ТипУзлаДереваИнтерфейсаКонтейнерMCP(ТипОбъекта)
9395
+ ТипНорм = НРег(НормализованноеИмяТипа(ТипОбъекта));
9396
+ Возврат СтрНайти(ТипНорм, "окно") > 0
9397
+ Или ТипНорм = "тестируемаяформа"
9398
+ Или ТипНорм = "тестируемаягруппаформы"
9399
+ Или ТипНорм = "тестируемаятаблицаформы"
9400
+ Или СтрНайти(ТипНорм, "команднаяпанель") > 0;
9401
+ КонецФункции
9402
+
9403
+ &НаКлиенте
9404
+ Функция ЭтоГруппаСтраницДереваИнтерфейсаMCP(Объект, ТипОбъекта)
9405
+ Если НРег(НормализованноеИмяТипа(ТипОбъекта)) <> "тестируемаягруппаформы" Тогда
9406
+ Возврат Ложь;
9407
+ КонецЕсли;
9408
+ ВидГруппы = НРег(СтрЗаменить(ВидГруппыФормы(Объект), " ", ""));
9409
+ Возврат ВидГруппы = "группастраниц" Или ВидГруппы = "группастраницы";
9410
+ КонецФункции
9411
+
9344
9412
  &НаКлиенте
9345
9413
  Функция ОбъектВСтруктуру(Объект, ТекущаяГлубина, ПоказыватьСкрытые = Истина, РодительскаяВидимость = Истина, РодительскаяДоступность = Истина, РодительТолькоПросмотр = Ложь, КешСериализации = Неопределено, ВключатьДанные = Истина, СериализоватьДетей = Истина, СчетчикУзлов = Неопределено, ВключатьКомандныеПанели = Истина, ВключатьСостояниеВидимости = Истина, ВключатьСостояниеДоступности = Истина, ВключатьСостояниеТолькоПросмотр = Истина, ВключатьТекущееСостояние = Истина)
9346
9414
  Если Объект = Неопределено Тогда
@@ -9377,8 +9445,14 @@
9377
9445
  СобственноеТолькоПросмотр = Ложь;
9378
9446
  Доступность = Ложь;
9379
9447
  ТолькоПросмотр = Ложь;
9380
- ИначеЕсли ЭтоДекорация Или Не ВключатьСостояниеДоступности Тогда
9381
- // У декораций и легких профилей нет полезной доступности/только просмотра; не тратим время на platform calls.
9448
+ ИначеЕсли ЭтоДекорация Тогда
9449
+ // У декораций нет полезной доступности/только просмотра; не тратим время на platform calls.
9450
+ СобственнаяДоступность = РодительскаяДоступность;
9451
+ СобственноеТолькоПросмотр = Ложь;
9452
+ Доступность = РодительскаяДоступность;
9453
+ ТолькоПросмотр = РодительТолькоПросмотр;
9454
+ ИначеЕсли Не ВключатьСостояниеДоступности Тогда
9455
+ // Легким профилям доступность/только просмотр не нужны; не тратим время на platform calls.
9382
9456
  СобственнаяДоступность = РодительскаяДоступность;
9383
9457
  СобственноеТолькоПросмотр = Ложь;
9384
9458
  Доступность = РодительскаяДоступность;
@@ -9460,24 +9534,31 @@
9460
9534
  Возврат Результат;
9461
9535
  КонецЕсли;
9462
9536
 
9537
+ МассивДетей = Новый Массив;
9538
+ Если Не ТипУзлаДереваИнтерфейсаКонтейнерMCP(ТипОбъекта) Тогда
9539
+ Результат.Вставить("children", МассивДетей);
9540
+ Возврат Результат;
9541
+ КонецЕсли;
9542
+
9463
9543
  НачалоФазыСериализации = ТекущаяУниверсальнаяДатаВМиллисекундах();
9464
9544
  Дети = БезопасныеПодчиненныеСКешемMCP(Объект, КешСериализации);
9465
9545
  ДобавитьТаймингСериализацииMCP(КешСериализации, "serialize_children_fetch_ms", НачалоФазыСериализации);
9466
- МассивДетей = Новый Массив;
9467
9546
  ИмяТекущейСтраницы = "";
9468
9547
  ТекущаяСтраницаГруппы = Неопределено;
9469
9548
  НачалоФазыСериализации = ТекущаяУниверсальнаяДатаВМиллисекундах();
9470
- Попытка
9471
- ТекущаяСтраницаГруппы = Объект.ПолучитьТекущуюСтраницу();
9472
- ИмяТекущейСтраницы = БезопасноеСвойствоСКешемMCP(ТекущаяСтраницаГруппы, "Имя", "", КешСериализации);
9473
- Если Не ПустаяСтрока(ИмяТекущейСтраницы) Тогда
9474
- Результат.Вставить("current_page_name", ИмяТекущейСтраницы);
9475
- Результат.Вставить("current_page", ОбъектВСтруктуру(ТекущаяСтраницаГруппы, ТекущаяГлубина + 1, ПоказыватьСкрытые, Видимость, Доступность, ТолькоПросмотр, КешСериализации, ВключатьДанные, Ложь, СчетчикУзлов, Ложь, ВключатьСостояниеВидимости, ВключатьСостояниеДоступности, ВключатьСостояниеТолькоПросмотр, ВключатьТекущееСостояние));
9476
- КонецЕсли;
9477
- Исключение
9478
- ИмяТекущейСтраницы = "";
9479
- ТекущаяСтраницаГруппы = Неопределено;
9480
- КонецПопытки;
9549
+ Если ЭтоГруппаСтраницДереваИнтерфейсаMCP(Объект, ТипОбъекта) Тогда
9550
+ Попытка
9551
+ ТекущаяСтраницаГруппы = Объект.ПолучитьТекущуюСтраницу();
9552
+ ИмяТекущейСтраницы = БезопасноеСвойствоСКешемMCP(ТекущаяСтраницаГруппы, "Имя", "", КешСериализации);
9553
+ Если Не ПустаяСтрока(ИмяТекущейСтраницы) Тогда
9554
+ Результат.Вставить("current_page_name", ИмяТекущейСтраницы);
9555
+ Результат.Вставить("current_page", ОбъектВСтруктуру(ТекущаяСтраницаГруппы, ТекущаяГлубина + 1, ПоказыватьСкрытые, Видимость, Доступность, ТолькоПросмотр, КешСериализации, ВключатьДанные, Ложь, СчетчикУзлов, Ложь, ВключатьСостояниеВидимости, ВключатьСостояниеДоступности, ВключатьСостояниеТолькоПросмотр, ВключатьТекущееСостояние));
9556
+ КонецЕсли;
9557
+ Исключение
9558
+ ИмяТекущейСтраницы = "";
9559
+ ТекущаяСтраницаГруппы = Неопределено;
9560
+ КонецПопытки;
9561
+ КонецЕсли;
9481
9562
  ДобавитьТаймингСериализацииMCP(КешСериализации, "serialize_current_page_ms", НачалоФазыСериализации);
9482
9563
  Если Не ПустаяСтрока(ИмяТекущейСтраницы) Тогда
9483
9564
  НачалоФазыСериализации = ТекущаяУниверсальнаяДатаВМиллисекундах();
@@ -9559,7 +9640,7 @@
9559
9640
  Попытка
9560
9641
  ПанельГруппы = КоманднаяПанельСКешемMCP(ПропущеннаяГруппа, КешСериализации);
9561
9642
  Если ПанельГруппы <> Неопределено Тогда
9562
- ДобавитьПодчиненныеПропущеннойГруппыMCP(МассивДетей, ПанельГруппы, ТекущаяГлубина, ПоказыватьСкрытые, РодительскаяВидимость, РодительскаяДоступность, РодительТолькоПросмотр, КешСериализации, ВключатьДанные, СчетчикУзлов, ВключатьКомандныеПанели);
9643
+ ДобавитьПодчиненныеПропущеннойГруппыMCP(МассивДетей, ПанельГруппы, ТекущаяГлубина, ПоказыватьСкрытые, РодительскаяВидимость, РодительскаяДоступность, РодительТолькоПросмотр, КешСериализации, ВключатьДанные, СчетчикУзлов, ВключатьКомандныеПанели, ВключатьСостояниеВидимости, ВключатьСостояниеДоступности, ВключатьСостояниеТолькоПросмотр, ВключатьТекущееСостояние);
9563
9644
  КонецЕсли;
9564
9645
  Исключение
9565
9646
  КонецПопытки;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes