Что делает обработка
Массовая правка данных в базе с предварительным планом и откатом. Правятся реквизиты объектов и строк табличных частей, движения документов, записи регистров сведений, накопления, бухгалтерии и расчета, константы.
Порядок работы: набрать объекты, описать правила, посмотреть план, применить. До нажатия «Применить» в базу не пишется ничего.
Шаг 1: набор объектов
- Запрос — произвольный текст на языке запросов, нужна колонка «Ссылка». Параметры вида
&Организацияразбираются из текста: под полем появляется таблица, где им задаются значения. Запрос с незаполненным параметром не выполняется — форма показывает, какой параметр пуст. - Идентификаторы — список UUID или навигационных ссылок, по одному в строке.
- Файл — xlsx, mxl, csv, txt. Указывается вид объекта и буква колонки с номером; объекты ищутся по номеру, в том числе записанному без префикса или с лишними нулями. Разделитель csv определяется по первой строке, значения в кавычках понимаются.
- Подбор — список выбранного справочника или документа со штатным отбором и поиском, отмеченные строки добавляются в набор.
Источники комбинируются: часть объектов берется запросом, часть добавляется файлом, лишние строки удаляются вручную.
Шаг 2: правила
Правило — строка таблицы: какой реквизит меняется, каким действием, откуда берется значение, при каком условии.
- Действие — «Установить», «Очистить», «Заменить текст» (замена подстроки в строковом поле; для нестроковых полей выдается ошибка, а не тихая порча данных).
- Источник значения — прямой ввод, выражение на встроенном языке (доступны переменные Объект и Строка) или колонка загруженного файла.
- Условие — «Всегда», «ЕслиПусто», «ЕслиЗаполнено», «ЕслиРавно», «ЕслиНеРавно». Проверяется либо сам правимый реквизит, либо другой реквизит объекта: «поставить склад там, где организация такая-то».
Реквизит: Склад Действие: Установить Значение: Основной склад Менять, если: ЕслиРавно у поля: Организация значение: ООО «Ромашка»
Имена реквизитов вводить по памяти не нужно: кнопка «…» в колонке открывает список полей набранных объектов — имя из конфигуратора, синоним, тип, поиск по любому из них. Правила задаются и для строк табличных частей, и для движений документов: над таблицей правил по движениям перечислены регистры, по которым набранные документы сделали движения, с количеством записей.
Шаг 3: план
План — таблица со строками «объект, что меняется, было, станет, статус, причина». Статусы: «Готово», «Без изменений» (условие не выполнено или значение совпадает), «Требует решения», «Ошибка» с указанием причины — например, «у объекта нет реквизита „Склд“ — проверьте имя, нужно имя из конфигуратора».
Строки отмечаются флажками, применить можно часть плана. План выгружается в файл. Запись идет порциями, с индикатором и возможностью прервать; по завершении выводится число записанных объектов, ошибок и пропущенных строк.
Журнал и откат
Каждое применение записывается в журнал: дата, пользователь, что менялось, число объектов и реквизитов. Для записей с подробностями доступна кнопка «Вернуть как было» — объекты возвращаются к прежним значениям, а запись помечается датой отката.
Журнал хранится в хранилище общих настроек. Если хранилище недоступно, обработка сообщает об этом и запись не выполняет: без журнала откатывать нечем.
Карточка объекта
Вкладка «Объект» показывает поля одного объекта деревом: реквизиты, строки табличных частей, движения документа по каждому регистру, служебные поля платформы. У каждого поля указан тип, у недоступных — причина в колонке «Почему нельзя». Есть поиск по полям и флажок «Только измененные».
Правится одно поле, одна строка табличной части или одна запись движений; строки табличных частей добавляются и удаляются. Запись идет через тот же журнал и так же откатывается. Дополнительно из карточки доступны:
- заполнение из другого объекта — значения переносятся вместе с составом строк табличных частей; номер, код и движения донора не переносятся;
- выгрузка объекта в XML и загрузка из XML;
- места использования — где на объект ссылаются;
- проведение, отмена проведения, пометка на удаление, удаление.
Регистры, константы, ссылки
- Правка регистра — записи регистров сведений (включая независимые, у которых нет ни ссылки, ни регистратора), накопления, бухгалтерии, расчета. Записи выбираются запросом, дальше те же правила, план, журнал и откат. Правка измерения не выполняется: такая строка получает статус «Требует решения».
- Правка констант — значения констант с тем же предпросмотром.
- Замена ссылок — замена одного объекта другим во всех местах использования.
- Объединение дублей — из набранного списка выбирается главный элемент, ссылки на остальные переводятся на него.
- Битые ссылки — поиск полей, за ссылкой которых нет записи в базе («<Объект не найден>»), и очистка их планом. Существование проверяется пакетным запросом по типам, а не по одному полю.
Настройки записи
- Записывать в обход бизнес-логики — признак «ОбменДанными.Загрузка»: отключаются контроль заполнения, автонумерация и часть заполнения по умолчанию.
- Записывать в обход прав — привилегированный режим: права и ограничения на уровне записей не проверяются.
- Проводить документы при записи — с правилами по движениям не сочетается: перепроведение пересчитает движения и затрет ручную правку.
- Размер порции — число объектов в одной транзакции.
Набор объектов, правила и настройки сохраняются сценарием и загружаются в следующий раз целиком.
Чем отличается от типовых обработок БСП
Сравнение имеет смысл с двумя типовыми: «Групповое изменение реквизитов» и «Поиск и удаление дублей». Часть задач правильнее решать ими — они уже установлены и бесплатны.
| Типовые обработки БСП | Инженерный редактор данных | |
|---|---|---|
| Набор объектов | отбор по полям выбранного вида | запрос, идентификаторы, файл, подбор из списка |
| Что видно до записи | перечень изменяемых реквизитов | план по каждому объекту: было, станет, статус, причина |
| Реквизиты объекта и табличных частей | да | да |
| Значение по выражению | да, формулой | да, выражением на встроенном языке |
| Движения документов | нет | да, правилами и поштучно в карточке |
| Регистры сведений, накопления, бухгалтерии, расчета | нет | да |
| Константы | нет | да |
| Битые ссылки «Объект не найден» | нет | да, поиск и очистка планом |
| Поиск дублей по правилам | да, «Поиск и удаление дублей» подбирает кандидатов сама | нет, дубли выбирает человек |
| Откат выполненного | нет | журнал и откат одной кнопкой |
| Требуется БСП | да | нет |
Если объекты описываются отбором и результат предсказуем, достаточно типовой обработки. Для поиска дублей по базе предназначен «Поиск и удаление дублей». Эта обработка нужна, когда объекты задаются запросом или приходят файлом, когда правятся движения, регистры или константы, когда результат нужно увидеть до записи и иметь возможность вернуть данные назад, а также в конфигурациях без БСП.
Чего обработка не делает
- Не заменяет Тестирование и исправление. Правятся данные, а не структура базы: битые ссылки очищаются, разрушенные таблицы и индексы — не ее задача.
- Не меняет измерения регистра. Смена измерения означает удаление записи и создание новой; такая строка получает статус «Требует решения».
- Не ищет дубли сама. Объединение работает по набранному списку.
- Не пишет без журнала. При недоступном хранилище общих настроек запись не выполняется.
- Не защищает правку движений от перепроведения. Ручная правка живет до следующего проведения документа — это свойство платформы.
- Не работает в безопасном режиме. При подключении через «Дополнительные отчеты и обработки» флаг «Безопасный режим» нужно снять, иначе платформа запретит запись; обработка предупреждает об этом при открытии.
- Не заменяет резервную копию. Проверка на копии базы остается обязательной.
Установка и требования
Внешняя обработка. Конфигурацию не меняет, объектов метаданных не создает, к БСП не привязана. Открывается через «Файл — Открыть» или подключается как дополнительная обработка (флаг «Безопасный режим» снять). Нужны права администратора: обработка пишет объекты напрямую и читает метаданные конфигурации. Журнал хранится в хранилище общих настроек.
На каких версиях платформы тестировалось
- Платформа 8.3.27.2214 — сборка для 8.3, файловая база.
- Платформа 8.5.1.1343 — сборка для 8.5, файловая база.
- Конфигурация «Управление торговлей», редакция 11.5.22.149 (демонстрационная база) — сквозная проверка: набор объектов запросом и подбором, правила с условиями, план, применение, журнал, откат, карточка объекта с движениями документа, правка регистров.
- Собственный тестовый стенд — конфигурация со справочниками, документами, регистрами сведений, накопления, бухгалтерии и расчета, константами. На ней гоняется набор автотестов: 112 проверок ядра и компиляция всех форм обработки.
Обработка не привязана к конфигурации и рассчитана на любую на управляемых формах, но проверялась на перечисленных версиях. На других конфигурациях и платформах поведение может отличаться — начинайте с копии базы.
Два файла: 8.3 и 8.5
В карточке две сборки одного кода. Файл, собранный платформой 8.5, младшая платформа не открывает, поэтому сборка для 8.3 выложена отдельно. Берите файл, совпадающий с вашей платформой; сборка 8.3 открывается и в 8.5.
Вступайте в нашу телеграмм-группу Инфостарт