УстановитьНовыйКод() работает не корректно?

1. besica 18.10.21 16:52 Сейчас в теме
При загрузке в ЗУП из внешнего источника необходимо ФизЛицам установить "Произвольный" код.
Если вызвать УстановитьНовыйКод("НужныйКод") - то результат будет "ПР-Нужный".
У базы стоит префикс "ПР-", это правильный префикс при создании элемента из базы.
Как то можно установить нужный код для загружаемых?
ЗУП типовая, на поддержке - проблему желательно решить без вмешательства в код.

Руками в базе код у элемента могу поменять на любой, но надо то загрузкой.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. nomad_irk 72 18.10.21 17:34 Сейчас в теме
(1)
записывайте элемент в БД с использованием режима загрузки данных


объект.ОбменДанными.Загрузка = Истина;
объект.Номер = СвойНомер;
объект.Записать();
5. Release 18.10.21 18:40 Сейчас в теме
(1) Может я уже плохо соображаю, перечитал несколько раз, но так и не понял, в чём проблема. Даже в СП заглянул.
УстановитьНовыйКод(<ПрефиксКода>)
Параметры:
<ПрефиксКода> (необязательный)
Тип: Строка.
Строковое значение префикса. Если префикс указан, то новый код будет формироваться с учетом префикса.
Описание:
Устанавливает новый код. Если в коде присутствует числовая часть, то новый код автоматически устанавливается следующим за имеющимся максимальным. При этом определяется текущий максимальный код среди элементов данного справочника.
Если передан префикс, то новый код устанавливается следующим образом: выполняется поиск максимального кода среди кодов, имеющих данный префикс, новый код выбирается как следующий от найденного кода.

Где-то переопределяется код нового элемента, установленного с помощью УстановитьНовыйКод()?

Чем загружаете данные?
FatPanzer; +1 Ответить
9. besica 19.10.21 13:22 Сейчас в теме
(5)Не переопределяется, я даже проверила, что у физЛиц нет в коде. То есть таким образом работает "типовой" механизм - почему то переданное значение считает "кодом"(а не префиксом) и добавляет префикс.
10. Release 19.10.21 14:00 Сейчас в теме
(9) Ладно, я сам посмотрел.
1. В типовой ЗУП есть подписка на событие. УстановитьПрефиксИБКодуСправочникаЗарплатаКадрыБазовая для "СправочникОбъект.ФизическиеЛица, СправочникОбъект.ГруппыДоступаФизическихЛиц".
2. Обработчик, у которой, переопределяет префикс перед его использованием при выполнении УстановитьНовыйКод().
3. Шаблон префикса:
ШаблонПрефикса = "[ОР][ИБ]-[Префикс]";
ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[ОР]", ПрефиксОрганизации);
ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[ИБ]", ПрефиксИнформационнойБазы);
ШаблонПрефикса = СтрЗаменить(ШаблонПрефикса, "[Префикс]", Префикс);

Поэтому, если нужен свой шаблон префикса, то не используйте УстановитьНовыйКод() - пишите свой алгоритм присвоения или меняйте работу метода УстановитьПрефиксИнформационнойБазы() общего модуля ПрефиксацияОбъектовСобытия.
2. Pixar0000 18.10.21 17:00 Сейчас в теме
При загрузке в ЗУП из внешнего источника необходимо ФизЛицам установить "Произвольный" код.


сам ответил на свой вопрос, загрузка из внешнего источника чем делается? если внешней обработкой, записать элемент справочника, сменить номер на нужный и записать еще раз
3. besica 18.10.21 17:16 Сейчас в теме
(2)Я надеялась, что есть вариант в "одну" запись))))
6. Pixar0000 18.10.21 23:13 Сейчас в теме
а ты по 10-15к сотрудников добавляешь за обмен?
на 100-200 штук у тебя это не нагрузит базу
7. Dem0 19.10.21 08:36 Сейчас в теме
так и не понятно, чем загружаются все эти люди.
Может в этой обработке загрузки тоже есть колонка Код, которая создает коллизии?
8. AR_18 19.10.21 12:15 Сейчас в теме
УстановитьНовыйНомер("ПР-");
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот