Package: designer-cmd
Пакет для автоматизации взаимодействия с пакетным режимом 1С.Формат команд поддерживается только > 8.3.12Установка:pip install designer_cmdПример использования:from designer_cmd import api

conn = api.Connection(user='User', password='Password', file_path='DB_Path')
designer = api.Designer('8.3.12.1254', self.conn)

designer.load_config_from_file('path_to_cf_file')

# Пример работы с хранилищем - создание хранилища 

repo_conn = api.RepositoryConnection('REPO_PATH', 'user', 'password')
designer.repo_connection = repo_conn

designer.create_repository()Функциональность:Работа в контексте Windows.Выгрузка/Загрузка cf.designer.load_config_from_file('path_to_cf_file')
  designer.dump_config_to_file('path_to_cf_file')Выгрузка/Загрузка в/из xml, поддерживается инкрементальный режим выгрузкиdesigner.dump_config_to_files(dir_xml_config_path)
  designer.load_config_from_file(self.cf_path)Выгрузка/Загрузка расширений из xml.designer.load_extension_from_files('dir_with_xml_data', 'extension_name')
  designer.dump_extension_to_files('dir_with_xml_data', 'extension_name')       
  
  # Выгрузка всех расширений
  designer.dump_extensions_to_files(cfe_dir_path)Проверка применения расширения\расширенийself.designer.check_apply_extension('extension_name')
  # Выгрузка всех расширений
  self.designer.check_apply_extension()Удаление расширения\вех расширений из базыself.designer.delete_extension('extension_name')
  # Всех раширений:
  self.designer.delete_extension()Выгрузка/Загрузка расширений из файлов cfedesigner.dump_extension_to_file('cfe_file', 'extension_name')
  designer.load_extension_from_file('cfe_file', 'extension_name')Выгрузка/Загрузка dt.designer.load_db_from_file('dt_path')
  designer.dump_db_to_file('dt_path')Сравнение конфигурации с файлом cfdesigner.compare_config_with_file('path_to_cf', 'report_path')Объединение конфигурации с файлом cfdesigner.merge_config_with_file('path_to_cf', 'path_to_merge_settings')Обновление структуры конфигурацииdesigner.update_db_config()Конвертация cf, cfe в xml.api.convert_cf_to_xml('path_to_cf') 
  api.convert_cfe_to_xml('path_to_cfe')Работа с хранилищемОпределение параметров подключения:# Перед вызовом функций хранилища, необходимо определить настройки подклчения
  
  repo_conn = api.RepositoryConnection('REPO_PATH', 'user', 'password')
  designer.repo_connection = repo_connДобавление пользователя хранилищаdesigner.add_user_to_repository('user', 'password', )Захват и освобождение объектовdesigner.lock_objects_in_repository("path_to_file_with_list_obj")      
  designer.unlock_objects_in_repository("path_to_file_with_list_obj")Помещение объектов в хранилищеdesigner.commit_config_to_repo('comment', 'repo_obj_list')Обновление конфигурации базы из хранилищаdesigner.update_conf_from_repo()Привязка конфигурации к хранилищуdesigner.bind_cfg_to_repo()Привязка конфигурации к хранилищуdesigner.unbind_cfg_from_repo()Работа в режиме Enterprisefrom designer_cmd import apiconn = api.Connection(user='User', password='Password', file_path='DB_Path')
ent = api.Enterprise('8.3.12.1254', self.conn)Запуск обработки в базе:ent.run_app(
      ep_x_path=path_to_epf,
      c_string='params_to_c'
  )Запуск в режиме ТестМенеджераent.run_app(mode=ent.RunMode.MANAGER, wait=False) # Без ожидания 
  ent.run_app(mode=ent.RunMode.MANAGER) # Ожидать завершенияЗапуск в режиме Тестклиента (При запуске производиться проверка доступности порта)ent.run_app(mode=ent.RunMode.CLIENT, port=1538, wait=False) # Без ожидания (порт по умолчанию 1538) 
  ent.run_app(wait=True) # Ожидать завершенияЗапускent.run_app() # Возможен запуск без ожидания.Завершение всех запущенных клиентов по текущему соединениюent.kill_all_clients()Работа с кластером через Rac:from designer_cmd import api

  conn = api.RacConnection(admin, passwd, server, port)
  r = api.Rac(v_8version, conn)
  # r.set_cluster_id(cluster_id) # Если есть несколько кластеров под управлением ras 
  r.set_cluster_id() # Установить id первого кластера в списке r.cluster.get_cluster_list()Высокоуровневый api:r.disconnect_users(base_ref='base_name')Режим cluster:cluster_list = r.cluster.get_cluster_list()Режим infobase:base_data = r.infobase.get_base_by_ref(base_name)
  r.base_id = base_data.get('infobase')
  
  r.infobase.get_base_list()
  r.infobase.deny_sessions(permission_code='333')
  r.infobase.deny_scheduled_jobs()Удаление базы:base_data = r.infobase.get_base_by_ref(base_name)
r.base_id = base_data.get('infobase')

r.infobase.drop_base()Созданеие базыserver_type = api.SqlServerType.MSSQL
sql_conn = api.SqlServerConnection(host=host, user=user, password=password, type=server_type)

new_base_id = self.mod.create_base(db_name, sql_conn)Режим sessions:session_list = r.sessions.get_session_list()
  r.sessions.session_info(session_id)
  r.sessions.terminate_session(session_id)#Планируемая фукциональность:Работа в контексте linuxРабота с git