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

24.12.12

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

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

13000 10400 руб.

02.09.2020    122114    670    389    

714

Табличная часть в доп. реквизитах и формирование таблиц в шаблоне docx для 1С:ДО 3.0

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

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

29400 руб.

29.06.2023    4452    9    4    

18

Расширение для 1С:УНФ. Автоматическое снятие резервов в Заказах покупателей

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

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

7200 руб.

02.08.2023    2953    4    0    

19

Запрос 1С copilot

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

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

5 стартмани

15.01.2024    6284    31    mkalimulin    25    

50

Начните уже использовать хранилище запросов

HighLoad оптимизация Запросы

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

11.10.2023    16181    skovpin_sa    14    

98
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. sknarid 24.07.14 15:36 Сейчас в теме
К сожалению выполнение обработки(ремонт таблиц) требует отбросить границу запрета редактирования документов, а с ней и последовательность к началу жизни. А потом всё восстанавливать за годы и рассылать на периферию.... Это гроб.
2. Danil.Potapov 514 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 63 16.01.15 15:26 Сейчас в теме
{(5, 3)}: Неоднозначное поле "Данные.Регистратор"
<<?>>Данные.Регистратор КАК Регистратор,
ЗИКБУ
5. sultbec 9 05.05.16 14:34 Сейчас в теме
Обработка выключает итоги регистров, и не включает их потом.
6. Danil.Potapov 514 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 514 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 514 08.11.18 10:57 Сейчас в теме
18. Rans 6 07.05.19 17:43 Сейчас в теме
У меня ошибка возникает в Рознице на одном из узлов РИБ при выполнении метода прочитать изменения во время синхронизации. Проверки логической и ссылочной целостности, checkdbfl не помогли. Сначала ругался на регистр ПродажиПоДисконтнымКартам. Запрос не показывает задвоенные записи. Сделал реструктуризацию, удалил из выгрузки в центральной все записи регистров накопления, теперь ругается на регистр БонусныеБаллы. По нему запрос тоже ничего не возвращает. Куда дальше смотреть подскажите плз.
19. Danil.Potapov 514 07.05.19 19:46 Сейчас в теме
21. Brravo 13 11.05.21 11:17 Сейчас в теме
{ВнешняяОбработка.ИсправлениеНеуникальностиЗаписей.Форма.Форма.Форма(80)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(1, 9)}: Синтаксическая ошибка ","
ВЫБРАТЬ <<?>>, СУММА(1) КАК КоличествоДублейЗаписей ИЗ РегистрСведений.БлокировкиСеансовОбластейДанных КАК РС СГРУППИРОВАТЬ ПО ИМЕЮЩИЕ СУММА(1) > 1
Оставьте свое сообщение