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

24.12.12

Задачи пользователя - Адаптация типовых решений

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Обработка исправляет наборы записей по всем регистрам
.epf 6,92Kb
425
425 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

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

 

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

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

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    152780    836    398    

846

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    5682    14    5    

24

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    3931    12    0    

29

Инструментарий разработчика Запросы Программист Стажер Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Пишем на человеческом языке, что нам надо, и получаем текст запроса на языке 1С. Используются большие языковые модели (LLM GPT) от OpenAI или Яндекс на выбор.

15.01.2024    9573    123    mkalimulin    32    

60
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. sknarid 24.07.14 15:36 Сейчас в теме
К сожалению выполнение обработки(ремонт таблиц) требует отбросить границу запрета редактирования документов, а с ней и последовательность к началу жизни. А потом всё восстанавливать за годы и рассылать на периферию.... Это гроб.
2. Danil.Potapov 517 25.07.14 10:17 Сейчас в теме
(1) sknarid,
Тогда нужно включить у объектов режим ОбменДанными.Загрузка = Истина и другие флаги заложенные в конкретной конфигурации.
4. chesnokov-a-v 100 26.05.15 20:47 Сейчас в теме
(1) sknarid, Если я правильно понимаю, то возникшая проблема - это проблема конкретной базы (будь то центральная или дочерняя база). У меня такая проблема возникла в дочерней базе, т.е. в центральной все нормально и из дочерней базы в центральную обмен уходит и центральной загружается. Не проходила только процедура загрузки данных из центральной базы в дочернюю.
Сделал следующее:
0. Сделал копии баз.
1. Выполнил обмен как есть (т.е. без загрузки данных в ДБ) 2 раза. Таким образом из дочерней в центральную выгружено все что зарегистрировано для обмена и дочерняя база об этом знает.
2. Убрал для своего пользователя дату запрета редактирования в дочерней базе.
3. Запустил данную обработку и дождался выполнения.
4. Открыл обработку "Регистрация изменений для обмена" (она стандартная) в дочерней базе и удалил всю регистрацию для центральной базы.
5. На фтп удалил файлы обмена.
6. Запустил обмен в центральной базе - таким образом в дочернюю еще раз ушли данные, которые зарегистрированы для нее.
7. Запустил обмен в дочерней. Все прошло нормально.
20. Rans 6 15.05.19 16:21 Сейчас в теме
Да также как Ваш, подставил другой регистр:

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

Похоже проблема все-таки была в данных, которые прилетали из ЦБ.
Пока удалось победить повторным удалением из выгрузки в ЦБ данных этих двух регистров.
3. ccserg 64 16.01.15 15:26 Сейчас в теме
{(5, 3)}: Неоднозначное поле "Данные.Регистратор"
<<?>>Данные.Регистратор КАК Регистратор,
ЗИКБУ
5. sultbec 10 05.05.16 14:34 Сейчас в теме
Обработка выключает итоги регистров, и не включает их потом.
6. Danil.Potapov 517 06.05.16 10:26 Сейчас в теме
(5) sultbec,
не, все включается.
7. AlaBait 12.05.16 05:35 Сейчас в теме
У меня подобный косяк ушел после банальной отмены проведения документа и проведения его заново
_LkMaksimka_; VaLerkaBed; alexscamp; Danil.Potapov; magolubev; andogskiy; +6 Ответить
9. magolubev 11.08.17 09:10 Сейчас в теме
(7) Была ошибка в УТ 11.1 при проведении заказа клиента, что записи в таблице AccumRG6910 (как выяснил с помощью ПолучитьСтруктуруХраненияБазыДанных(), регистр накопления ЗаказыКлиентов)
Аналогично распровел документ и провел повторно - ошибка ушла
VaLerkaBed; usersed; alexscamp; +3 Ответить
14. VaLerkaBed 19.09.18 00:16 Сейчас в теме
(7)Спасибо! Это решение спасло после трех дней поисков.
8. igorbon 02.10.16 09:08 Сейчас в теме
10. zoomych 14.12.17 18:22 Сейчас в теме
11. Danil.Potapov 517 15.12.17 18:50 Сейчас в теме
(10)
Не работает в 11.3

что пишет система?
12. dragen 07.02.18 15:14 Сейчас в теме
(11)

что пишет система?

При обновлении на ут 11.2.2 грешит на справочник.Упаковки.
Что делать?
Прикрепленные файлы:
13. kn8603 9 31.03.18 16:04 Сейчас в теме
Такое еще бывает, если в базе есть документы с пометкой на удаление и движениями по регистрам.
15. Сирёга 08.11.18 00:30 Сейчас в теме
не качайте. не работает. верни мне монетку
16. Bukaska 140 08.11.18 10:07 Сейчас в теме
(15)Смотрите дату. 2012 год, тогда 8.3 еще не было и в помине. А вы конечно ее открываете на современной конфигурации.
17. Danil.Potapov 517 08.11.18 10:57 Сейчас в теме
18. Rans 6 07.05.19 17:43 Сейчас в теме
У меня ошибка возникает в Рознице на одном из узлов РИБ при выполнении метода прочитать изменения во время синхронизации. Проверки логической и ссылочной целостности, checkdbfl не помогли. Сначала ругался на регистр ПродажиПоДисконтнымКартам. Запрос не показывает задвоенные записи. Сделал реструктуризацию, удалил из выгрузки в центральной все записи регистров накопления, теперь ругается на регистр БонусныеБаллы. По нему запрос тоже ничего не возвращает. Куда дальше смотреть подскажите плз.
19. Danil.Potapov 517 07.05.19 19:46 Сейчас в теме
21. Brravo 13 11.05.21 11:17 Сейчас в теме
{ВнешняяОбработка.ИсправлениеНеуникальностиЗаписей.Форма.Форма.Форма(80)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(1, 9)}: Синтаксическая ошибка ","
ВЫБРАТЬ <<?>>, СУММА(1) КАК КоличествоДублейЗаписей ИЗ РегистрСведений.БлокировкиСеансовОбластейДанных КАК РС СГРУППИРОВАТЬ ПО ИМЕЮЩИЕ СУММА(1) > 1
Оставьте свое сообщение