Вопрос

Не создавать автоматически новые значения справочников при импорте данных

Можно ли каким-то образом не создавать новые значения справочников при импорте данных?

Это позволит точнее контролировать процесс импорта, избегая ситуаций, когда добавляются ошибочно написанные валюты, страны и тому подобное

Нравится

4 комментария
Лучший ответ

Доброе утро, Владимир!

 

Есть такой, не до конца протестированный, вариант:

- забрать права доступа на операцию "Создание" для юзеров/ролей в объекте "Справочник": https://prnt.sc/wljjrd. Это относится только к справочникам, т.е. тем объектам у кого родителем является "Базовый справочник". Ни поле "Контакт", ни "Контрагент" под эти правила уже не подойдут.

А, ну и при таком раскладе, ни в один справочник указанные юзеры/роли не смогут добавлять значения вообще.

 

Вариант нужно протестировать. У меня вышло так, что была лишь одна запись продажи, созданная Supervisor. Под тестовым юзером я, учитывая правила поиска дубля, залила файл и у меня создалась совершенно новая запись продажи с предзаполненными значениями, как и в файле. Плюс, что в справочниках не создались новые значения. Минус, наверное, в том, что стоило попробовать вытянуть Id продажи и учитывать его в правилах дублей.

Доброе утро, Владимир!

 

Есть такой, не до конца протестированный, вариант:

- забрать права доступа на операцию "Создание" для юзеров/ролей в объекте "Справочник": https://prnt.sc/wljjrd. Это относится только к справочникам, т.е. тем объектам у кого родителем является "Базовый справочник". Ни поле "Контакт", ни "Контрагент" под эти правила уже не подойдут.

А, ну и при таком раскладе, ни в один справочник указанные юзеры/роли не смогут добавлять значения вообще.

 

Вариант нужно протестировать. У меня вышло так, что была лишь одна запись продажи, созданная Supervisor. Под тестовым юзером я, учитывая правила поиска дубля, залила файл и у меня создалась совершенно новая запись продажи с предзаполненными значениями, как и в файле. Плюс, что в справочниках не создались новые значения. Минус, наверное, в том, что стоило попробовать вытянуть Id продажи и учитывать его в правилах дублей.

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

 

Также в стандартном механизме уже предусмотрено отсеивание некоторых случаев ошибочного добавления:

  • При проверке значений не учитываются начальные и замыкающие пробелы и регистр, но имеют значение специальные символы. Ниже приведены примеры обработки значений.

В файле импорта указан тип контакта “клиент”.
В справочнике [ Типы контактов ] содержится значение “Клиент”.

В этом случае импортированная запись связывается с существующим значением. Новая запись в справочник добавлена не будет.

В файле импорта указан тип контакта “«Клиент»”.
В справочнике [ Типы контактов ] содержится значение “Клиент”.

В данном примере в результате импорта в справочник будет добавлена новая запись.

Ещё есть особенность, когда при импорте не работает поиск существующих записей по локализованным колонкам в справочнике, создаются дубли. В таком случае поможет обходное решение — выключить фичу HighestSpeedFileImport.

А как насчёт чистки данных перед импортом?) 

Или после, уже в базе. Или в момент, созданием своего специализированного механизма импорта, учитывающего все специальные случаи. До определённой версии была возможность запустить старое окно импорта с большим числом настроек, но в современных, где нет логики на основе 5.Х, такого, видимо, не выйдет.

Показать все комментарии