gifts2017

Ошибка при попытке вставки записи с неуникальным значением ссылки. (решение)

Опубликовал Danil Potapov (Danil.Potapov) в раздел Обработки - Обработка документов

При записи набора записей столкнулся с ошибкой «Ошибка при попытке вставки записи с неуникальным значением ссылки. Таблица AccumReg7604».

При записи набора записей столкнулся с ошибкой «Ошибка при попытке вставки записи с неуникальным значением ссылки. Таблица AccumReg7604». Обратил внимание на «неуникальное значение ссылки», из этого следует, что в регистре накопления (бухгалтерии, расчетов) неуникальная пара значений  «регистратор», «номер строки». Из метода ПолучитьСтруктуруХраненияБазыДанных() видим, что проблема в таблице ПродажиСебестоимость. 

Делаем запрос и убираем задвоения средствами платформы:

ТекстЗапроса = "ВЫБРАТЬ РАЗЛИЧНЫЕ
| Данные.Регистратор КАК Регистратор
|ИЗ
| (ВЫБРАТЬ
| ПродажиСебестоимость.Регистратор КАК Регистратор,
| ПродажиСебестоимость.НомерСтроки КАК НомерСтроки,
| СУММА(1) КАК КоличествоДублей
| ИЗ
| РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
|
| СГРУППИРОВАТЬ ПО
| ПродажиСебестоимость.Регистратор,
| ПродажиСебестоимость.НомерСтроки
|
| ИМЕЮЩИЕ
| СУММА(1) > 1) КАК Данные";
Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;

НаборЗаписей = РегистрыНакопления.ПродажиСебестоимость.СоздатьНаборЗаписей();
НаборЗаписейУдалить = РегистрыНакопления.ПродажиСебестоимость.СоздатьНаборЗаписей();

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НачатьТранзакцию();

НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписей.Прочитать();

НаборЗаписейУдалить.Отбор.Регистратор.Установить(Выборка.Регистратор);
НаборЗаписейУдалить.Записать();

НаборЗаписей.Записать();
ЗафиксироватьТранзакцию();
КонецЦикла;

 

PS Добавил обработку, которая ищет и исправляет наборы записей еще она показывает неуникальные записи в регистрах сведений. Так-же обработка "ремонтирует" итоги средствами платформы

(по следам http://partners.v8.1c.ru/forum/thread.jsp?id=918745)

Скачать файлы

Наименование Файл Версия Размер
Обработка исправляет наборы записей по всем регистрам 232
.epf 6,92Kb
24.12.12
232
.epf 6,92Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Iren (sknarid) 24.07.14 15:36
К сожалению выполнение обработки(ремонт таблиц) требует отбросить границу запрета редактирования документов, а с ней и последовательность к началу жизни. А потом всё восстанавливать за годы и рассылать на периферию.... Это гроб.
2. Dpotapov (Danil.Potapov) 25.07.14 10:17
(1) sknarid,
Тогда нужно включить у объектов режим ОбменДанными.Загрузка = Истина и другие флаги заложенные в конкретной конфигурации.
3. Сергей Крайнов (ccserg) 16.01.15 15:26
{(5, 3)}: Неоднозначное поле "Данные.Регистратор"
<<?>>Данные.Регистратор КАК Регистратор,
ЗИКБУ
4. Александр Чесноков (chesnokov-a-v) 26.05.15 20:47
(1) sknarid, Если я правильно понимаю, то возникшая проблема - это проблема конкретной базы (будь то центральная или дочерняя база). У меня такая проблема возникла в дочерней базе, т.е. в центральной все нормально и из дочерней базы в центральную обмен уходит и центральной загружается. Не проходила только процедура загрузки данных из центральной базы в дочернюю.
Сделал следующее:
0. Сделал копии баз.
1. Выполнил обмен как есть (т.е. без загрузки данных в ДБ) 2 раза. Таким образом из дочерней в центральную выгружено все что зарегистрировано для обмена и дочерняя база об этом знает.
2. Убрал для своего пользователя дату запрета редактирования в дочерней базе.
3. Запустил данную обработку и дождался выполнения.
4. Открыл обработку "Регистрация изменений для обмена" (она стандартная) в дочерней базе и удалил всю регистрацию для центральной базы.
5. На фтп удалил файлы обмена.
6. Запустил обмен в центральной базе - таким образом в дочернюю еще раз ушли данные, которые зарегистрированы для нее.
7. Запустил обмен в дочерней. Все прошло нормально.
5. Азат (sultbec) 05.05.16 14:34
Обработка выключает итоги регистров, и не включает их потом.
6. Dpotapov (Danil.Potapov) 06.05.16 10:26
(5) sultbec,
не, все включается.
7. Андрей Самсонов (AlaBait) 12.05.16 05:35
У меня подобный косяк ушел после банальной отмены проведения документа и проведения его заново
andogskiy; +1 Ответить
8. Igor Bon (igorbon) 02.10.16 09:08