Нарушено условие уникальности данных

1. CYMTU 2 10.11.22 05:01 Сейчас в теме
Перешли на новую конфигурацию 3.1.24.23
При записи нового объекта справочника "Сотрудники"
Стало выскакивать ошибка смотрите вложение и ниже сообщение
Нарушено условие уникальности данных.

Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._Reference291" с уникальным индексом "_Reference291_S_HPK". Повторяющееся значение ключа: (0, 0xaa4600505685861a11ed5ff83e4fcd45).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1

{ОбщийМодуль.СотрудникиФормы.Модуль(1213)}: ФизическоеЛицоОбъект.Записать();
{ОбщийМодуль.СотрудникиФормы.Модуль(375)}: ЗаписатьФизическоеЛицоСотрудника(Форма);
{Справочник.Сотрудники.Форма.ФормаЭлемента.Форма(176)}: СотрудникиФормы.СотрудникиПередЗаписьюНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи);
{ОбщийМодуль.СотрудникиКлиент.Модуль(224)}: Если ДополнительныеПараметры.ЗаписатьДанные И Не Форма.Записать(ПараметрыЗаписи) Тогда
{ОбщийМодуль.СотрудникиКлиентБазовый.Модуль(96)}: ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеЗавершения, ПараметрыЗаписи);
{ОбщийМодуль.СотрудникиКлиентБазовый.Модуль(79)}: СотрудникиПередЗаписьюЗавершение(Отказ, ДополнительныеПараметры);
{ОбщийМодуль.СотрудникиКлиентБазовый.Модуль(297)}: ВыполнитьОбработкуОповещения(ОповещениеЗавершения, Отказ);
{ОбщийМодуль.РедактированиеПериодическихСведенийКлиент.Модуль(60)}: ВыполнитьОбработкуОповещения(ОповещениеЗавершения, Отказ);
{ОбщийМодуль.СотрудникиКлиентБазовый.Модуль(272)}: РедактированиеПериодическихСведенийКлиент.ЗапроситьРежимИзмененияРегистра(Форма, "ФИОФизическихЛиц", ТекстВопроса, ТекстКнопкиДа, Отказ, Оповещение);
{ОбщийМодуль.СотрудникиКлиентБазовый.Модуль(63)}: ЗапроситьРежимИзмененияФИО(Форма, Форма.ФИОФизическихЛиц, Форма.ФИОФизическихЛицНоваяЗапись, Отказ, НСтр("ru = 'сотрудника'"), Оповещение);
{ОбщийМодуль.СотрудникиКлиентРасширенный.Модуль(54)}: СотрудникиКлиентБазовый.СотрудникиПередЗаписью(Форма, Отказ, ПараметрыЗаписи, ОповещениеЗавершения, ЗакрытьПослеЗаписи);
{ОбщийМодуль.СотрудникиКлиентВнутренний.Модуль(16)}: СотрудникиКлиентРасширенный.СотрудникиПередЗаписью(Форма, Отказ, ПараметрыЗаписи, ОповещениеЗавершения, ЗакрытьПослеЗаписи);
{ОбщийМодуль.СотрудникиКлиент.Модуль(337)}: СотрудникиКлиентВнутренний.СотрудникиПередЗаписью(Форма, Отказ, ПараметрыЗаписи, ОповещениеЗавершения, ЗакрытьПослеЗаписи);
{Справочник.Сотрудники.Форма.ФормаЭлемента.Форма(1149)}: СотрудникиКлиент.СотрудникиПередЗаписью(ЭтотОбъект, Отказ, ПараметрыЗаписи, ОповещениеЗавершения, ЗакрытьПослеЗаписи);
{ОбщийМодуль.СотрудникиКлиент.Модуль(210)}: Форма.ЗаписатьНаКлиенте(Ложь, Оповещение);
{mngcore/MessageBox.clf(4)}: Close(-100);

по причине:
Нарушено условие уникальности данных.

Попытка вставки неуникального значения в уникальный индекс:
Microsoft SQL Server Native Client 11.0: Не удается вставить повторяющуюся строку ключа в объект "dbo._Reference291" с уникальным индексом "_Reference291_S_HPK". Повторяющееся значение ключа: (0, 0xaa4600505685861a11ed5ff83e4fcd45).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=E, native=2601, line=1
Показать


Ошибка наблюдается только при приеме сотрудников, которые уже работали в компаний и были уволены ранее.

Кто-нибудь встречался с таким или знает в чем дело?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 130 10.11.22 07:17 Сейчас в теме
(1) с какого релиза перешли?
3. CYMTU 2 10.11.22 07:43 Сейчас в теме
4. Ivan_Sol 19 10.11.22 07:53 Сейчас в теме
Добрый день. Так он и не даст вам в одной базе создать двух физических лиц.
{ОбщийМодуль.СотрудникиФормы.Модуль(1213)}: ФизическоеЛицоОбъект.Записать();

Физ. лицо одно а сотрудников может быть несколько, (например работать в разных организациях)
Ведь при создании нового сотрудника, после ввода ФИО программа если находит такого же в базе - спрашивает "найден человек с похожим именем" в вашем случае "Да, это тот кто нужен"
5. CYMTU 2 10.11.22 07:57 Сейчас в теме
(4) Мы нажимаем эту кнопку, но после выбора, происходит затирание всех ранее веденных значений. И при ведений ИНН, опять выводит окно с просьбой выбрать нужного человека. И так до бесконечности. И это наблюдается только для людей, которые работали раньше..
6. Ivan_Sol 19 10.11.22 08:02 Сейчас в теме
Странно, у меня после нажатия на кнопку в форме создания нового сотрудника - все поля заполняются автоматически и остается только сохранить.
Давайте пропишу как я делаю.
7. Ivan_Sol 19 10.11.22 08:04 Сейчас в теме
1. Создать нового сотрудика.
2. Задаю полностью ФИО
3. Выходит сообщение "найден человек с похожим именем"
4. Нажимаю "Да, это тот кто мне нужен"
5. Все поля заполняются
6. Нажимаю кнопку записать.
8. CYMTU 2 10.11.22 08:06 Сейчас в теме
(7) Точно, также делаем и мы. И все работает. Только возникает проблема с людьми, которые работали у нас раньше.
9. Ivan_Sol 19 10.11.22 08:12 Сейчас в теме
Ок, сейчас сделаю копию у меня 3.1.24.25 протестирую отпишусь
10. Ivan_Sol 19 10.11.22 08:19 Сейчас в теме
В копии все отработало по схеме без ошибок. Сейчас еще в конфигураторе посмотрю
11. Ivan_Sol 19 10.11.22 08:27 Сейчас в теме
Кажется нашел там есть такая строка
Если Форма.ФизическоеЛицоЗаблокировано Или Форма.ФизическоеЛицо.Ссылка.Пустая() Тогда
ЗаписатьФизическоеЛицоСотрудника(Форма);
КонецЕсли;

Видимо у вас физ.лицо заблокировано поэтому система пытается создать нового и как результат ошибка.
12. CYMTU 2 11.11.22 10:31 Сейчас в теме
Если кому интересно, проблема была решена следующим образом.
В общем модуле ПодборПерсоналаКлиент процедура ПриВыбореФизическогоЛица была изменена через расширение, следующим образом.
Было
Процедура ПриВыбореФизическогоЛица(Форма, РезультатВыбора) Экспорт
	
	Если ЗначениеЗаполнено(Форма.ЛичныеДанныеКандидата) Тогда
		РезультатВыбора = Форма.ЛичныеДанныеКандидата;
	КонецЕсли;

КонецПроцедуры

Стало
&Вместо("ПриВыбореФизическогоЛица")
Процедура ВРДУО_ПриВыбореФизическогоЛица(Форма, РезультатВыбора)
	Если НЕ ЗначениеЗаполнено(РезультатВыбора) И ЗначениеЗаполнено(Форма.ЛичныеДанныеКандидата) Тогда
		РезультатВыбора = Форма.ЛичныеДанныеКандидата;
	КонецЕсли;	
КонецПроцедуры


И все заработало.
Оставьте свое сообщение

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