Последнее время чаще стала вылезать ошибка «код справочника стал неуникальным» при обновлении, в принципе особых проблем она не доставляет, но раздражает.
В ручную перебирать справочник очень муторно, поэтому я накидал простенький запрос, который выявляет совпадение кода при разных ссылках (на примере справочника ДоговорыКонтрагентов):
ВЫБРАТЬ
ДоговорыКонтрагентов.Ссылка,
ДоговорыКонтрагентов1.Ссылка КАК Ссылка1,
ДоговорыКонтрагентов.Код,
ДоговорыКонтрагентов1.Код КАК Код1
ИЗ
Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов1
ПО ДоговорыКонтрагентов.Код = ДоговорыКонтрагентов1.Код
И ДоговорыКонтрагентов.Ссылка <> ДоговорыКонтрагентов1.Ссылка
Кому интересно код всей обработки:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ВыполнитьПоискДублей(ЭлементыФормы.СписокТиповОбъекта.Значение);
КонецПроцедуры
Процедура ПриОткрытии()
МассивТиповОбъектов=Метаданные.Справочники;
ЭлементыФормы.СписокТиповОбъекта.СписокВыбора.Очистить();
Для каждого СтрокаМассива из МассивТиповОбъектов Цикл
ЭлементыФормы.СписокТиповОбъекта.СписокВыбора.Добавить(СтрокаМассива.Имя, СтрокаМассива.Синоним);
КонецЦикла;
ЭлементыФормы.СписокТиповОбъекта.Значение = 0;
КонецПроцедуры
Функция ВыполнитьПоискДублей(НаимновениеОбъекта)
НаимновениеОбъектаРасш="Справочник."+НаимновениеОбъекта;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ОбъектОбработки.Ссылка КАК СсылкаЛев,
| ОбъектОбработки1.Ссылка КАК СсылкаПрав,
| ОбъектОбработки.Код Как КодЛев,
| ОбъектОбработки1.Код КАК КодПрав
|ИЗ
| "+НаимновениеОбъектаРасш+" КАК ОбъектОбработки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ "+НаимновениеОбъектаРасш+" КАК ОбъектОбработки1
| ПО ОбъектОбработки.Код = ОбъектОбработки1.Код
| И ОбъектОбработки.Ссылка <> ОбъектОбработки1.Ссылка";
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
Сообщить(Строка(""+ВыборкаДетальныеЗаписи.СсылкаЛев+" "+ВыборкаДетальныеЗаписи.СсылкаПрав+" "+ВыборкаДетальныеЗаписи.КодЛев+" "+ВыборкаДетальныеЗаписи.КодПрав+""));
ЭлементыДубляКода.Добавить(ВыборкаДетальныеЗаписи.СсылкаПрав,ВыборкаДетальныеЗаписи.СсылкаПрав);
КонецЦикла;
КонецФункции
Процедура ОсновныеДействияФормыОбновитьКоды(Кнопка)
Для Каждого СтрокаСпискаЭлементов Из ЭлементыДубляКода Цикл
ОбъектСписка=СтрокаСпискаЭлементов.Значение.ПолучитьОбъект();
СтарыйКод=ОбъектСписка.Код;
ОбъектСписка.УстановитьНовыйКод();
Сообщить("Меняем код "+СтарыйКод+" на "+ОбъектСписка.Код);
Попытка
ОбъектСписка.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецПроцедуры
На форме кнопки Выполнить и «ОбновитьКоды», и список выбора «СписокТиповОбъекта»
Префикс она не ставит.
Скачать готовую обработку
Работать на копии.
|
|||
evgenspb
20.12.11 — 14:37 |
Провел обновление 1С Бухгалтерия с версии 2.0.24.10 до крайней, выскочило следующее предупреждение |
||
Fish
1 — 20.12.11 — 14:40 |
Это надо понимать так, что у тебя код справочника стал не уникальным :)) Не судьба что-ли открыть справочник и посмотреть? |
||
evgenspb
2 — 20.12.11 — 14:48 |
А можно подробнее на что обратить внимание. |
||
Fish
3 — 20.12.11 — 14:52 |
Для того чтобы открыть справочник в программе, не надо быть программистом :)) |
||
evgenspb
4 — 20.12.11 — 14:53 |
upd хм еще выяснилось что и ни разу не бухгалтер но увидел, что не в конфигураторе надо было смотреть …всё, спасибо! разобрался |
||
evgenspb
5 — 20.12.11 — 15:04 |
Fish, скажите пожалуйста, а как там дубль в принципе мог оказаться (что делалось раньше не известно и спросить некого). Можно его удалить нах и чем грозит? |
||
Fish
6 — 20.12.11 — 15:10 |
По разным причинам: например кто-то ручками создал элемент с кодом 620, а разработчики в обновлении конфы добавили элемент с этим же кодом, и при обновлении код соответственно стал неуникальным. А с удалением надо быть осторожным — сначала посмотреть, предопределенный это элемент или нет, потом поискать в базе ссылки на объект, который хочешь удалить, и, если они есть то заменить. И ни в коем случае не удалять непосредственно — может привести к появлению битых ссылок. |
||
Mort
7 — 20.12.11 — 15:16 |
Причем задвоение могло быть очень давно, а обратилось внимание при обновлении только потому что элемент как-то изменился. |
||
evgenspb
8 — 20.12.11 — 15:30 |
всем спасибо, буду разбираться |
||
evgenspb
9 — 20.12.11 — 15:38 |
все проверил «поиск ссылок на объект» ни в одном ни в другом не обнаружено, значит можно удалить один? |
||
Fish
10 — 20.12.11 — 15:44 |
Если ссылок нет, то удаляй. Но на всякий случай лучше пометь на удаление, и удаляй через Удаление помеченных объектов. |
||
evgenspb 11 — 20.12.11 — 15:47 |
(10) ага так и сделал |
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Показывать по
10
20
40
сообщений
Новая тема
Ответить
linka.smith
Дата регистрации: 05.04.2010
Сообщений: 29
во всех моих базах (трех) 1С 8.1 при обновлении БП с релиза 1.6.28 и 1.6.29 на релиз 1.6.30.7 вылезла ошибка «Код справочника стал не уникальным:ПрочиеДоходыИРасходы (00008)» почему это случилось и что делать?
Тэра
Дата регистрации: 25.12.2008
Сообщений: 22390
зайти в пользовательском режиме в этот справочник и посмотреть
linka.smith
Дата регистрации: 05.04.2010
Сообщений: 29
00008 — это Возмещение убытков к ролучению (уплате)
Тэра
Дата регистрации: 25.12.2008
Сообщений: 22390
в справочник зашли? Там действительно есть элементы с одинаковым кодом?
linka.smith
Дата регистрации: 05.04.2010
Сообщений: 29
зашла, под кодом 00008 — только одна запись — возмещение убытков
Тэра
Дата регистрации: 25.12.2008
Сообщений: 22390
ну посмотрите на сайте список ошибок релиза. Если все остальное нормально, обновление встало — я бы не грузилась по этому поводу.
linka.smith
Дата регистрации: 05.04.2010
Сообщений: 29
VVP
Дата регистрации: 12.10.2006
Сообщений: 4950
Ляг, поспи — и все пройдет. Роли все это не играет. В конце-концов, если глаз трет — исправь руками.
Vladko
Дата регистрации: 27.08.2007
Сообщений: 2643
> во всех моих базах (трех) 1С 8.1 при обновлении БП с релиза 1.6.28 и 1.6.29 на релиз 1.6.30.7 вылезла ошибка «Код справочника стал не уникальным:ПрочиеДоходыИРасходы (00008)» почему это случилось и что делать?<br>в релизе 1.6.30 появляется новый предопределённый элемент справочника с кодом 00008. У вас в справочнике уже есть такой элемент — вы его завели, т.к. раньше было 7 предопределённых элементов. Ничего страшного. Код предопределённому элементу присвоится 1й свободный, например, 00040. (Такие элементы отображаются с золотистой точкой у элемента).<br>Можно конечно и своему элементу дать такой код, чтобы было место куда записаться предопределённому перед обновлением
Prikum
активный пользователь
офлайн
Дата регистрации: 18.02.2002
Сообщений: 20836
> Код предопределённому элементу присвоится 1й свободный, например, 00040.<br>Предопределённому как раз присвоится 00008, а вот потом уже в режиме Предприятия, надо тому элементу который завели сами присвоить новый не уникальный.
Показывать по
10
20
40
сообщений
При обновлении конфигурации 1С может появиться предупреждение о том, что записи каких-то регистров сведений стали неуникальными. Рассмотрим порядок действий для исправления данной ошибки.
Содержание
- Причины возникновения ошибки
- Исправление ошибки «Записи регистра сведений стали неуникальными»
- Последовательное обновление конфигурации без «пропусков»
- Настройка автоматического обновления
- Сравнение конфигураций
Причины возникновения ошибки
Связано это может быть с несколькими причинами:
- не последовательным обновлением конфигурации релиз за релизом, а «перепрыгиванием» сразу через несколько релизов;
- конфликтом введенных в базу данных самим пользователем и добавленных в конфигурацию разработчиками предопределенных значений;
- ошибками переноса баз данных в новые конфигурации;
- доработкой конфигурации самим пользователем.
Какой бы ни была причина появления этой ошибки, она говорит об одном: в регистре сведений есть запись с ключевыми параметрами, для которой имеется несколько значений, и программа 1С не знает: какая из этих записей правильная.
Ключевые параметры регистра сведений называются Измерениями, а значения по измерениям указываются в Ресурсах. PDF По правилам записи в регистры сведений ключевые параметры определяют значение ОДНОЗНАЧНО.
При работе в пользовательском режиме при попытке записи в регистр разных данных с одинаковыми ключевыми параметрами выдается ошибка, не позволяющая провести документ. PDF Пользователь при этом сразу видит ошибку, понимает в чем дело и исправляет ее.
В режиме обновления конфигурации ситуация более сложная, хотя отслеживание таких ситуаций регулируется в большинстве случаев в 1С автоматически. Разработчики вносят в программу изменения таким образом, что программа сама, по заложенному алгоритму и анализу данных, определяет какая из записей неактуальна и удаляет ее, продолжив обновление.
Но бывают случаи, когда определить самостоятельно какую из записей оставить, а какую удалить, программа 1С не может и тогда пользователь уже должен сам исправить ситуацию. Обычно это происходит при удалении каких-то ключевых параметров из регистра сведений в новом обновлении и наиболее часто проявляется у любителей «обновляться редко, но сразу на последний релиз».
При возникновении ошибки будет выдано предупреждение о возникшей ситуации с регистром, которое не позволит продолжить обновление, пока не будет исправлена ошибка.
В новой версии конфигурации был изменен регистр Цены номенклатуры. PDF При обновлении конфигурации было выдано предупреждение о возникших неуникальных записях по этому регистру. PDF
Исправление ошибки «Записи регистра сведений стали неуникальными»
Последовательное обновление конфигурации без «пропусков»
Если конфигурация типовая и изменений в нее пользователем не вносилось, проведите обновление последовательно всеми вышедшими релизами, без пропусков. Возможно, разработчики что-то убирали в коде, а в следующем релизе — добавляли и пропуск этих промежуточных релизов привел к ошибке заполнения каких-то данных регистра по умолчанию.
При возникновении ошибки обновите текущую конфигурацию, например, Бухгалтерия предприятия 3.0.67.54 не сразу на релиз 3.0.67.72, а последовательно на:
- 0.67.63;
- 0.67.67;
- 0.67.70;
- 0.67.72.
Если это не помогло, используйте следующие рекомендации.
При последовательном обновлении запускаются специализированные обработчики, которые могут исключить данную ошибку автоматически.
Настройка автоматического обновления
Настройте автоматическое обновление 1С: раздел Администрирование — Настройки программы — Интернет-поддержка и сервисы — Обновление версии программы.
При автоматическом обновлении подобная ошибка, как правило, не появляется, так как все изменения разработчиков в «промежуточных» релизах, которые может пропустить пользователь при самостоятельном обновлении, учитываются автоматически.
Для автоматического обновления программы 1С должна быть настроена Интернет-поддержка.
Сравнение конфигураций
В самых сложных случаях придется сравнить основную конфигурацию с конфигурацией базы данных, анализ данных последней и приводит к ошибке.
Основная конфигурация – это обновляемая конфигурация программы. В типовых, не измененных программах 1С она совпадает с конфигурацией поставщика. После обновления конфигурации, запускается процесс обновления Конфигурации базы данных, в которой еще содержатся старые данные до тех пор, пока процесс обновления не завершится полностью.
В момент появления ошибки основная конфигурация и конфигурация базы данных отличаются. Именно появление ошибки и мешает завершению обновления конфигурации базы данных. Поэтому нужно разобраться, что происходит и какие данные в базе мешают ее обновлению.
Пошаговая инструкция сравнения основной конфигурации и конфигурации базы данных.
Шаг 1. Открытие Конфигуратора.
Войдите в Конфигуратор информационной базы.
Откройте конфигурацию по кнопке Конфигуратор — Открыть конфигурацию. В правом окне откроется список всех объектов 1С.
Выберите команду Сравнить конфигурации.
Шаг 2. Настройка сравнения конфигураций.
Установите настройки как показано на рисунке.
Шаг 3. Запуск сравнения конфигураций.
Нажмите на кнопку ОК. Программа 1С выдаст окно сравнения конфигураций, в котором нужно перейти на регистр сведения Цены номенклатуры и раскрыть различия, нажав на «+» справа от объекта.
Шаг 4. Исправление ошибки.
Из таблицы сравнения видно, что в регистре Цены номенклатуры в основной конфигурации отсутствует параметр измерения Тип цен.
Войдите в базу данных и откройте регистр Цены номенклатуры: кнопка Главное меню — Все функции — Регистры сведений — Цены номенклатуры.
Как видно из рисунка, сейчас в регистре сведений Цены номенклатуры для Комплекта постельного белья две записи для типов цен:
- Продажная — 3 670 руб.;
- Оптовая — 2 090 руб.
Поскольку реквизит Тип цен был удален из основной конфигурации, в регистре сведений должно остаться две записи с разными ценами на одинаковые ключевые параметры для Комплекта постельного белья. Правила записи в регистр этого не допускают, и программа 1С выдает ошибку при обновлении базы данных.
Удалите одну из записей для Комплекта постельного белья и выполните обновление сначала. На этот раз никаких ошибок программа 1С не выдаст!
Если причину самостоятельно, используя указанные рекомендации, отыскать не удалось, базу придется передать профессионалам 1С для исправления.
См. также:
- Ошибка печати в 1С: как исправить
- Компонента 1С: Печать штрихкодов не установлена на данном компьютере
- Лицензия не обнаружена. Не обнаружен ключ защиты программы 1С: как исправить
- Не обнаружена установленная версия 1С Предприятия
- Значение поля номер не уникально 1С 8.3: как исправить
Если Вы еще не являетесь подписчиком:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
-
23.03.2010, 19:32
#1
Гость форума
- Регистрация
- 23.02.2010
- Сообщений
- 3
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
код справочника стал не уникальным
помогите!!! убрала нули в коде номенклатуры и теперь пишет код справочника стал не уникальным:номенклатура (0000000000000) и нет автонумерации
плиз… говорят есть обработка восстановление кодов справочников
посоветуйте как исправить
-
24.03.2010, 10:46
#2
Просто юзер
- Регистрация
- 17.10.2009
- Сообщений
- 68
- Сказал(а) спасибо
- 6
- Поблагодарили 28 раз(а) в 5 сообщениях
Сообщение от inessastar
помогите!!! убрала нули в коде номенклатуры и теперь пишет код справочника стал не уникальным:номенклатура (0000000000000) и нет автонумерации
плиз… говорят есть обработка восстановление кодов справочников
посоветуйте как исправитьВозьми обработку «Универсальные подбор и обработка объектов» — там можно перенумеровать
-
24.03.2010, 10:56
#3
Гость форума
- Регистрация
- 23.02.2010
- Сообщений
- 3
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
спасибки…..уже разобралась….единственное — не могу понять как сделать так, чтобы нумерация для каталогов была одного типа, а для документов -другого…..нумерует все последовательно, а я хочу чтобы по подчиненности
-
24.03.2010, 11:19
#4
Просто юзер
- Регистрация
- 17.10.2009
- Сообщений
- 68
- Сказал(а) спасибо
- 6
- Поблагодарили 28 раз(а) в 5 сообщениях
а если отдельно по группам перенумерацию делать?
-
24.03.2010, 22:43
#5
Гость форума
- Регистрация
- 23.02.2010
- Сообщений
- 3
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
пробовала, потом другие документы продолжают эту нумерацию
-
25.03.2010, 05:34
#6
Просто юзер
- Регистрация
- 17.10.2009
- Сообщений
- 68
- Сказал(а) спасибо
- 6
- Поблагодарили 28 раз(а) в 5 сообщениях
Сообщение от inessastar
пробовала, потом другие документы продолжают эту нумерацию
Тогда установи контроль уникальности номеров в пределах подчинения через конфигуратор
-
28.12.2014, 13:56
#7
Гордость форума PRO
- Регистрация
- 29.01.2010
- Сообщений
- 1509
- Сказал(а) спасибо
- 30
- Поблагодарили 261 раз(а) в 245 сообщениях
Тогда установи контроль уникальности номеров в пределах подчинения
Вы наверное что-то путаете. «В пределах подчинения» это по реквизиту «Владелец» (т.е. это только для справочников у которых установлен признак подчиненности), а выше речь шла о «группах», т.е. о реквизите «Родитель».