Ошибка при обновлении: Записи регистра сведений стали неуникальными: Двоичные данные файлов

26.02.20

База данных - Администрирование СУБД

Способ обойти ошибку обновления Записи регистра сведений стали неуникальными: ДвоичныеДанныеФайлов.
Проблема возникла при обновлении

Бухгалтерия предприятия КОРП с версии 3.0.75.58  на версию 3.0.75.93 и выше

Ошибка при обновлении: "Записи регистра сведений стали неуникальными: ДвоичныеДанныеФайлов"
 
При этом в окне сравнений изменение по этому регистру не показаны, а при реорганизации объект изменен.
 

РЕШЕНИЕ:

Для регистра сведений ДвоичныеДанныеФайлов установить режим Редактируется с сохранением поддержки
 
Добавить Ресурс (добавила Ресурс1, строка)
 
После этого при обновлении в окне сравнения стал виден этот регистр. При этом флаг объединения на нем НЕ стоял.
 
При реорганизации информации ошибка не появилась.
 
Пока искала решение, обратилась к разработчику. Получила ответ :

1С Линия консультации 25 февраля 2020, 17:04

"В режиме предприятия через "все функции" проверьте записи в этом регистре и удалите неуникальные."
 
Воспользовалась обработкой из публикации //infostart.ru/public/538465/ но обработка дубли не показала.
Вручную отловить дубли также не получилось, т.к.
  1. этот регистр «слепой» — непонятно действительно ли данные содержат дубли и что такое в данном случае дубли
  1. в этом регистре значительное количество записей — более 7000

Кроме того, нет возможности пометить на удаление или удалить такие записи непосредственно из регистра 

Для прояснения ситуации направила разработчику запрос:

Что программа понимает как дубли? Если сочетание Тип владельца + Наименование, показанное в поле Владелец данных, то почему позволяется записывать такие данные?

(ответа пока не получила)

Записи регистра сведений стали неуникальными ДвоичныеДанныеФайлов

См. также

Администрирование СУБД Системный администратор Программист

В крупных компаниях, где много типовых и сильно доработанных баз с режимом работы 24/7, переход с MS SQL на PostgreSQL затягивается. Получается гетерогенная структура – когда прод уже на PostgreSQL, а разработка и тестирование – пока на MS SQL. О том, какие варианты помогут постепенно перевести прод с несколькими базами MS SQL на PostgreSQL, не сломав среду тестирования и разработки, пойдет речь в статье.

21.11.2024    3046    a.doroshkevich    7    

14

Администрирование СУБД Системный администратор Платформа 1С v8.3 Бесплатно (free)

Пользовался ранее https://infostart.ru/1c/articles/1120161/#, но она устарела, т.к. службы запускаются через systemctl, да и сами службы слегка изменились. Возможно, где-то на ИТС уже есть нужная инструкция, но мне не попалась.

15.11.2024    389    Baser    2    

1

HighLoad оптимизация Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Россия Бесплатно (free)

Мы исследуем проблему долгого выполнения запросов PostgreSQL при использовании конструкции VALUES: когда она возникает, как на нее можно повлиять, а главное, почему ее продуманная отработка важна для более быстрого функционирования решений на базе 1С

12.11.2024    940    Tantor    20    

14

HighLoad оптимизация Администрирование СУБД Механизмы платформы 1С Программист Платформа 1С v8.3 ИТ-компания Россия Бесплатно (free)

В данной статье мы рассмотрим, как работает механизм временных таблиц на postgres на платформе 8.3.23 и что изменилось в нем при добавлении новых возможностей в платформе 8.3.25. А также на примере покажу, как понимание работы платформы позволяет оптимизировать СУБД для работы с 1С.

29.10.2024    3553    Tantor    38    

35

Администрирование СУБД Системный администратор Программист Бесплатно (free)

CDC - очень мощный механизм, который можно использовать во многих сценариях, возможность развернуть его в Docker показывает простоту и лёгкость данной технологии.

08.10.2024    836    AlexSvoykin    1    

7

Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Анализ и решение ошибок СУБД. Во время реиндексации базы Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Не удалось найти объект "ИмяБазы.dbo._RefSInf21806", так как он не существует, или отсутствуют разрешения. Во время проверки целостности Ошибка СУБД: Microsoft SQL Server Native Client 11.0: Недопустимое имя объекта "dbo._RefSInf21806".

19.09.2024    4606    Xershi    10    

17

HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.

13.08.2024    3053    1CUnlimited    9    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RocKeR_13 1366 26.02.20 17:05 Сейчас в теме
Что программа понимает как дубли?

В случае регистров сведений:

Уникальность записей

Система обеспечивает контроль уникальности записей, хранящихся в регистре сведений. Таким образом, в регистре сведений не может находиться двух одинаковых записей. Одинаковыми считаются записи, у которых совпадает ключ записи. Ключ записи формируется системой автоматически, на основании значений, содержащихся в полях записи, и зависит от вида регистра сведений.

В общем случае в формировании ключа записи будут участвовать значения регистратора, периода и значения измерений. Таким образом, например, в непериодическом регистре сведений Цены товаров с независимым режимом записи не может существовать двух записей о розничной цене конфет ассорти. Точно так же, как в периодическом регистре сведений Цены товаров, подчиненном регистратору, не может существовать двух записей о розничной цене конфет ассорти, внесенных одной и той же датой, одним и тем же документом Изменение цен товаров.


Источник: https://v8.1c.ru/platforma/registr-svedeniy/

Для файловой базы одна из причин, например - это "битые" записи во внутренней таблице. Буквально вчера столкнулся с такой же ситуацией при обновлении 1С:Розница в отношении РС "ФискальныеОперации". При тестировании на логическую целостность платформа выдала сообщение, что файл базы данных поврежден. В результате тестирования утилитой chdbfl в регистре было "потеряно" 4 записи, после чего обновление прошло без проблем.
2. dubovenko_m 71 26.02.20 17:26 Сейчас в теме
Всем добрый день. в моем случае тестирование и исправление не выявляло ошибок. Поиск дублей не давал результатов. Обращаю внимание, что публикация про регистр сведений ДвоичныеДанныеФайлов. а он весьма специфичен!
3. kuzyara 2094 27.02.20 05:35 Сейчас в теме
Частая ошибка для файловой базы...
4. Elvina 5 02.04.20 09:56 Сейчас в теме
(3) не подскажете как ещё можно исправить ошибку? Клиент хочет, чтобы база была "на замочке"
5. dubovenko_m 71 02.04.20 10:26 Сейчас в теме
(4) Добрый день. Если ошибка по регистру Двоичные данные файлов, то, к сожалению, я не нашла вариантов, кроме изменения конфигурации. С другими регистрами легче. Там можно найти дубли и сделать их НЕ дублями. Может помочь обработка из публикации https://infostart.ru/public/538465/.
6. Elvina 5 02.04.20 13:23 Сейчас в теме
(5) именно с этим регистром проблема, остальные тоже всегда без проблем могла поправить, а тут прям никак(((
7. dubovenko_m 71 02.04.20 14:18 Сейчас в теме
(6) Тогда увы..
могу, правда, процитировать ответ разработчиков - см пункт 2:

1С Линия консультации <v8@1c.ru> Тема: Записи регистра сведений стали неуникальными: ДвоичныеДанныеФайлов (#HL-127544)
26 февраля 2020, 15:21

Добрый день,

1. Воспользуйтесь поиском и удалением дублей в меню Администрирование - Обслуживание
или

2.Попробуйте выполнить Архивация электронных документов 1С-Отчетности и хранение в томах
как описано на ИТС
https://its.1c.ru/db/elreps#content:59:hdoc
и после этого удалить все записи из этого регистра.

Предварительно сделайте резервную копию.

С уважением,
отдел тех. поддержки фирмы "1С"
Тел. (495) 956-11-81 (линия ИТС)
(495) 688-10-01 (базовые версии)
RomanKod; m1_1976; Elvina; +3 Ответить
8. Elvina 5 03.04.20 06:32 Сейчас в теме
(7) Мария, огромное вас спасибо, всё получилось!!!
Перенесла файлы на диск (и клиенту надеюсь хорошо - значительно меньше теперь база весит и регистр стал пустым), после этого выполнила сжатие таблиц ИБ и ошибка исчезла.
RomanKod; +1 Ответить
9. dubovenko_m 71 03.04.20 10:00 Сейчас в теме
(8) Отлично! Значит это действительно работает.
20. user708045_vantaqa 20.09.22 12:30 Сейчас в теме
(5) Добрый день. Подскажите пожалуйста, а что конкретно вы изменяли в конфигурации?
10. IML_1C 22.06.20 12:58 Сейчас в теме
Добрый день!
Натолкнулся на такую же ошибку, неделю назад, при обновлении (правда совсем "седой" базы релиза 64). Не помог ни один вариант, ни с форумов, ни с вашей статьи :)
Решение получилось "не научным "тыком"" - запустил обновление с платформы 2018 года (8.12....) - обновление прошло абсолютно в штатном режиме (База вскрытая)
Вдруг кому-то тоже поможет)
11. Dmi9000 03.07.20 16:53 Сейчас в теме
Добрый день!
Спасибо за идею снять флаг объединения с этого объекта, это действительно помогло. До этого при возникновении такой ошибки я просто очищал весь регистр, что в принципе не совсем красиво.
Но вот что я при этом увидел в подробностях объединения.
Оно фактически Измерение Файл удаляет и одновременно создает новое измерение с тем же именем. Тем самым это измерение у всех записей регистра становится пустое, поэтому после объединения они и оказываются не уникальными. Поэтому поиск дублирующих записей ДО обновления в этой ситуации не имеет смысла.
Почему оно так делает - непонятно, могу только уточнить, что подобная ошибка у меня возникает только при обновлениях очень древних баз, некогда сконвертированных еще из БП 2.0
Судя по всему теперь флаг объединения с этого регистра придется снимать при каждом очередном обновлении.
Прикрепленные файлы:
doronin70; d4rkmesa; +2 Ответить
23. Gang031 23.12.22 16:25 Сейчас в теме
(11) оно ж вроде не удаляет, а просто порядок изменился?
12. user1135816 4 07.09.20 12:10 Сейчас в теме
Мне помог запрос к регистру с выяснением дублирующих записей, нашел дубль, удалил его. все стало хорошо
13. val_ka 25.03.21 09:56 Сейчас в теме
У меня возникала ошибка из-за определяемых типов
user1666798; IROKEZ91; +2 Ответить
14. softmaker 41 30.04.21 16:00 Сейчас в теме
Чтобы эта проблема не повторялось для двоичных данных нужно перед тем, как изменять ОпределяемыйТип нужно убрать данные этого типа из регистра сведений ДвоичныеДанные, предварительно переместив их в другой регистр.
&НаСервереБезКонтекста
Процедура УстановитьДвоичныеДанныеНаСервере(Файл)
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ДвоичныеДанныеФайлов.Файл КАК Файл,
	|	ДвоичныеДанныеФайлов.ДвоичныеДанныеФайла КАК ДвоичныеДанныеФайла
	|ИЗ
	|	РегистрСведений.ДвоичныеДанныеФайлов КАК ДвоичныеДанныеФайлов
	|ГДЕ
	|	ДвоичныеДанныеФайлов.Файл = &Файл";
	
	Запрос.УстановитьПараметр("Файл", Файл);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	
	Пока Выборка.Следующий() Цикл
		
		МенеджерЗаписи = РегистрыСведений.Заказ_ДвоичныеДанныеФайлов.СоздатьМенеджерЗаписи();
	
		МенеджерЗаписи.Файл = Файл;
		МенеджерЗаписи.ДвоичныеДанныеФайла = Выборка.ДвоичныеДанныеФайла;
		
		МенеджерЗаписи.Записать();
		
	КонецЦикла;
КонецПроцедуры
Показать

Где Файл это элемент справочника удаляемого типа.
Потом удалить:
&НаСервереБезКонтекста
Процедура УдалитьДвоичныеДанныеНаСервере()
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ 
	|	ДвоичныеДанныеФайлов.Файл КАК Файл,
	|	ДвоичныеДанныеФайлов.ДвоичныеДанныеФайла КАК ДвоичныеДанныеФайла
	|ИЗ
	|	РегистрСведений.ДвоичныеДанныеФайлов КАК ДвоичныеДанныеФайлов
	|ГДЕ
	|	ТИПЗНАЧЕНИЯ(ДвоичныеДанныеФайлов.Файл) = ТИП(Справочник.бит_мат_ЗаказНаТехникуПрисоединенныеФайлы)";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Выборка = РезультатЗапроса.Выбрать();
	
	Пока Выборка.Следующий() Цикл
		НаборЗаписей = РегистрыСведений.ДвоичныеДанныеФайлов.СоздатьНаборЗаписей();
    	НаборЗаписей.Отбор.Файл.Установить(Выборка.Файл);
    	НаборЗаписей.Записать(); 		
	КонецЦикла;
КонецПроцедуры
Показать
15. maipochta 23.05.21 12:17 Сейчас в теме
Натолкнулся при обновлении УТ до версии УТ 11.4.13.47. Проблема была с регистрами "двоичные данные файлов" и "файлы в рабочем каталоге". Решил по другому. Сделал выгрузку этих регистров в файл с помощью "Универсальной выгрузки загрузки в XML" из комплекта обработок ИТС. Очистил регистры, завершил обновление, загрузил данные обратно с помощью той же обработки.
28. user1928830 12.06.23 15:53 Сейчас в теме
16. Remdiz 14.10.21 12:59 Сейчас в теме
Оставлю это здесь, может кому поможет. Скорее всего ошибка не в дублях, а в том, что вы добавляли в определяемые типы ПрисоединенныйФайлОбъект и др. свои объекты, проверьте
user1838498; viktstav; IROKEZ91; Dei4ik; Papilion; mushdaj; kondratevsergey1985; uuuhha; bugtester; AlbertZ; Wadus161; +11 Ответить
17. ZaOS 23.12.21 20:31 Сейчас в теме
(16) Спасибо. Все именно так и вышло.
19. bugtester 605 26.04.22 19:43 Сейчас в теме
(16)
Хорошая мысль. Возможно при обновлении в определяемом типе ПрисоединенныйФайл или ВладелецПрисоединенныхФайлов затираются добавленные самостоятельно типы (если делали присоединяемые файлы к справочнику или документу).
Так как регистр сведений ДвоичныеДанныеФайлов (или НаличиеФайлов) имеет измерение Файл (или ОбъектСФайлами) измененного определяемого типа, то содержимое некоторых измерений затрется (например, тех самых самостоятельно добавленных владельцев присоединенных файлов). Соответственно будут образовываться дубли с одинаковыми "пустыми" измерениями в результате обновления, которых не было до.
ekaterinaeon; anchovy; slige; +3 Ответить
22. slige 41 12.10.22 16:45 Сейчас в теме
(19)
Возможно при обновлении в определяемом типе ПрисоединенныйФайл или ВладелецПрисоединенныхФайлов затираются добавленные самостоятельно типы (если


Тоже столкнулись с тем, что при обновлении добавленные типы "слетели". Благодаря вашему комменту победили
31. Dei4ik 18.10.23 14:27 Сейчас в теме
(22) Добрый! а подскажите пожалуйста каким именно образом победили? тоже столкнулся с такой ситуацией
32. Dei4ik 20.10.23 15:08 Сейчас в теме
(31) Отвечу сам себе)
в новом релизе был добавлен еще один определяемый тип в состав которого требовалось включить самостоятельно добавленные типа
18. rboy 03.03.22 20:40 Сейчас в теме
(15) Я бы сказал самый лучший совет.
21. dubovenko_m 71 20.09.22 15:46 Сейчас в теме
(20) user708045_vantaqa: (5) Добрый день. Подскажите пожалуйста, а что конкретно вы изменяли в конфигурации?
РЕШЕНИЕ (подробно - см публикацию):
Для регистра сведений ДвоичныеДанныеФайлов установить режим Редактируется с сохранением поддержки
Добавить Ресурс (добавила Ресурс1, строка)
24. doronin70 25.12.22 01:18 Сейчас в теме
У меня также возникла проблема с этим регистром сведений при обновлении древней конфигурации УТ. Я решил проблему стандартными средствами УТ.
1. В настройках УТ изменил способ хранения файлом на тома диска. Перенес все файлы в том на диске стандартной процедурой УТ.
2. Очистил этот регистр сведений.
3. Обновил конфигурацию.
4. Перенес все файлы из томов обратно в информационную базу и вернул настройки УТ обратно.
user598655_ilia-bers; +1 Ответить
25. mikl79 119 10.01.23 20:49 Сейчас в теме
подобная ошибка возникла при обновлении Бухгалтерии предприятия на 3.0.127.49
запросом не удалось найти дубли
обработкой //infostart.ru/public/538465/ тоже не нашлось дублей
добавлял измерение, затем ресурс, тоже не помогло
пришлось очистить регистр, обновить, затем восстановить записи
26. user970589 11 02.04.23 09:00 Сейчас в теме
Была похожая проблема.
Обновлял базу. Вроде должна быть типовой, но сразу пошло в сравнение и показало отличие объектов, причем там справки, еще что-то несущественное и если посмотреть в сравнении - то в реальности не отличается. ну и .. с ним думаю, ставлю на поддержку, а мне вот такой же привет про регистр двоичных данных и про записи с измерениями одинаковыми. Ну и понятное дело - не ставит на поддержку.
в общем помогло вот что. включил хранение томов снаружи базы. выгрузил все туда, и осталось две записи. их удалил с помощью ИР, после чего загрузил данные обратно и отключил хранение снаружи, вот после этого прошло нормально. а никакое ТИИ и лечение не давали ничего
29. tormozit 7238 08.07.23 17:23 Сейчас в теме
(26) В ИР есть намного более удобный инструмент для решения этой проблемы - "Подготовка к изменению структуры БД"
30. user970589 11 09.07.23 21:21 Сейчас в теме
(29)и она правит кривой регистр? у меня напомню две записи были кривые
27. user1928830 12.06.23 15:52 Сейчас в теме
грибаный одинес
muskul; user1815318; +2 Ответить
33. AngieV 23.04.24 13:31 Сейчас в теме
Обработку написала, та же проблема была.
Прикрепленные файлы:
ИсправлениеРегистраДвоичныеДанные.epf
34. ArtyomPotapov 10.07.24 21:45 Сейчас в теме
(33) Мне не помогло. Хотя спасибо за файл.
35. ArtyomPotapov 10.07.24 21:52 Сейчас в теме
Мне помогло лишь манипулирование с типом ОпределяемыйТип. Я обновлял нетиповую конфу, и в этот тип, который у меня уже ранее редактировался, добавлялась ссылка на какой-то новый справочник.

Что я сделал? Снял галку в сопоставлении с обновлений этих типов (кажется четыре разных было, два со словом ПрисоединяемыеФайлы и два со словом ВладелецПрисоединяемыхФайлов).
Нажал бочку после этого. Отлично, кнопка "Применить" появилась. Нажал бочку.
А уже потом вручную добавил те типы ссылок в этот определяемый тип, которые изначально нужно было.
И всё прекрасно работает.
Прикрепленные файлы:
36. ToryV 28.11.24 13:23 Сейчас в теме
(35) ArtyomPotapov, спасибо большое, как раз мой случай. Не было дублей по запросу, ни пустых записей, ни битых ссылок, а обновление упорно не ставилось по причине неуникальных записей регистра сведений. Убрать галочку в окне сравнения и объединения помогло, так как именно в определяемый тип были внесены изменения предыдущим программистом.
Оставьте свое сообщение