Перейти к содержанию

Перестройка текста поиска без скрытых полей

Разовая служебная операция: убирает себестоимость и другие поля, видимые только с правом, из поискового отпечатка записей, сохранённых до того, как это правило появилось.

Где искать: Модули → Система → Обслуживание → Перестройка текста поиска без скрытых полей

Разбор на примере

Перестройка текста поиска без скрытых полей

Окно такое же, как у шифрования секретов интеграций: два пояснения — «Убирает себестоимость и другие поля, видимые только с правом, из текста поиска записей, сохранённых до этого правила.» и «Можно запускать повторно: записи с уже чистым текстом поиска не перезаписываются.» — и одна рабочая кнопка «Выполнить». «По расписанию» неактивна: операция разовая. Параметров нет.

Пример: базу обновили, товары и счета в ней заведены ещё до обновления. После «Выполнить» открывается итог с зелёной галочкой: «Проверено таблиц: N; текст поиска перестроен без скрытых полей: M запис(ей)». N — сколько таблиц с полями, видимыми только с правом, нашлось в базе, M — сколько записей держали себестоимость в отпечатке. Запустите службу ещё раз — M будет 0: перестраивать уже нечего.

Зачем её запускать

У каждой записи есть поисковый отпечаток — текст, по которому работает поиск строкой в списках. Поля, которые роль видит только с правом (себестоимость, прибыль и маржа документов — право «Показывать себестоимость»), в отпечаток новых и изменённых записей не попадают. Человек без такого права отпечатком не ищет вообще: его поиск строкой идёт только по видимым полям, так что поиск по числу не отвечает ему «есть такая запись или нет» и без этой службы.

Записи, сохранённые до обновления, держат старый отпечаток — вместе с себестоимостью: по ней их находит поиск того, у кого право есть, а новые записи — нет. Служба перестраивает старый отпечаток без скрытых полей, и поиск становится одинаковым для старых и новых записей. Запустите её один раз после обновления базы; расписание для неё выключено.

Что именно перестраивается

Служба сама находит реестры, в которых есть поля, видимые только с правом, — в шапке или в строках документа: товары, счета, предложения, заказы, отгрузки, возвраты, движения склада, история товаров и другие. Записи читаются страницами по тысяче и по всем компаниям базы сразу. Запись, чей отпечаток уже чистый, не перезаписывается, поэтому повторный запуск безопасен.

Секреты интеграций (пароли, токены, ключи) эта служба не трогает — их убирает из отпечатка шифрование секретов интеграций.

Как понять, что всё сработало

После запуска служба показывает, сколько таблиц проверено и в скольких записях отпечаток перестроен. Каждый отказ — отдельной строкой итога, и тогда вместо зелёной галочки — треугольник. Поиск по названию, коду и другим видимым полям работает как прежде; по себестоимости — больше не находит. Границы, которые служба сознательно не закрывает: значение, обрезанное в конце слишком длинного отпечатка, и себестоимость, записанная с пробелом тысяч («1 234.50»), не распознаются — такая запись остаётся со старым отпечатком.

Типичные ситуации

  • Уже первый запуск даёт M = 0. База создана после обновления или служба уже запускалась: старых отпечатков с себестоимостью нет. Это норма, делать ничего не нужно.
  • Итог с оранжевым треугольником и строками «Таблица …: …». Строка называет таблицу и причину: таблицу не удалось прочитать, запись не удалось сохранить или «строк, измененных во время миграции: … — запустите операцию еще раз» (запись изменили, пока служба работала); остальные перестроены. Устраните причину и запустите службу ещё раз: уже чистые записи она не трогает.
  • Время изменения записей после запуска прежнее. Служба перестраивает только отпечаток и время изменения не меняет. Поэтому обмены, которые отбирают записи по времени изменения (например, выгрузка цен на Prom), не примут все товары за изменённые и не станут отправлять их заново.

Куда смотреть дальше