Не могу найти REM модель каталога услуг из-за отсутствия индекса

:speech_balloon: Description
Для полей типа Translated text создается один поисковый индекс Search Index
Методы пересоздания индексов SimpleSearch().recreate* также создают один индекс даже при наличии двух переводов

:heavy_check_mark: Workaround

Необходимая роль: admin

  1. В качестве резервной копии текущих индексов выгрузите в JSON индексы для моделей /list/sys_search_index?condition=(table_id%3D161294276904925875)
  2. Создайте недостающие переводы для моделей /list/sys_translation?condition=(column_id.table_id%3D160372368007633917)
  3. Создайте недостающие индексы через скрипт:
const model = new SimpleRecord('sys_rmc_model');
model.selectAttributes(['sys_created_at']);
model.query();
while (model.next()) {
  const rusTranslation = new SimpleRecord('sys_translation');
  rusTranslation.addQuery('column_id.table_id', '160372368007633917'); // Container
  rusTranslation.addQuery('language_id', '156628684306200767'); // Russian
  rusTranslation.addQuery('record_id', model.sys_id);
  rusTranslation.selectAttributes(['record_id', 'column_id', 'value']);
  rusTranslation.query();
  while (rusTranslation.next()) {
    const modelCreated = new SimpleDateTime(model.sys_created_at);
    modelCreated.addSeconds(-360);
    const index = new SimpleRecord('sys_search_index');
    index.addQuery('record_id', rusTranslation.record_id);
    index.addQuery('column_id', rusTranslation.getValue('column_id'));
    index.addQuery('sys_id', '>', `${String(modelCreated.getNumericValue())}00000000`);
    index.setLimit(1);
    index.query();
    index.next();
    if (index.text === rusTranslation.value) {
      continue;
    }

    const quickImportIndex = {
      "sys_search_index": [
        {
          "record_id": rusTranslation.record_id,
          "column_id": rusTranslation.getValue('column_id'),
          "text": rusTranslation.value,
          "table_id": model.sys_db_table_id
        }
      ]
    }
    if (index.sys_id) {
      quickImportIndex['sys_search_index'][0]['sys_id'] = index.sys_id;
    }
    importRightIndex(JSON.stringify(quickImportIndex));
  }
}

function importRightIndex(data) {
  const simpleInstanceUri = ss.getProperty('simple.instance.uri');
  const URL_BASE = (simpleInstanceUri.startsWith('https://')) ? simpleInstanceUri : `https://${simpleInstanceUri}`;
  const quickImportRequest = sws.restRequestV1();
  quickImportRequest.setRequestUrl(`${URL_BASE}/v1/import/json`);
  quickImportRequest.setRequestMethod("POST");
  quickImportRequest.setRequestHeader("Authorization", `Bearer ${new SimpleUser().getAccessToken()}`);
  quickImportRequest.setRequestHeader("Content-Type", "multipart/form-data; boundary=----WebKitFormBoundaryOmz20xyMCkE27rN7");
  quickImportRequest.setRequestHeader("Accept", "*/*");

  const body = `------WebKitFormBoundaryOmz20xyMCkE27rN7
Content-Disposition: form-data; name="file"; filename="sys_search_index_${data.record_id}.json"
Content-Type: application/json

${data}
------WebKitFormBoundaryOmz20xyMCkE27rN7`

  quickImportRequest.setRequestBody(body);
  quickImportRequest.execute();
}