Имя: Пароль:
1C
1С v8
Ошибка при обновлении информационной базы.
,
0 Skaliy_art
 
08.04.15
03:49
1С 8.3.5.1517
Через конфигуратор обновил до 3.0.39.53 и запустил предприятие.
Началось обновление и вылезла ошибка:
{Справочник.СпособыВыплатыЗарплаты.МодульМенеджера(99)}: Ошибка при вызове метода контекста (Записать)
        СпособВыплаты.Записать();
по причине:
Предопределенный элемент не уникален

Откатываюсь на старую версию - все норм.
Как я понимаю, при обновлении, в новой конфигурации появляется элемент с Код, идентичным уже существующему элементу. И нужно где-то что-то поменять или удалить.

Не могу понять где и что делать. Подскажите пожалуйста.
1 Попытка1С
 
08.04.15
04:51
Запусти отладку, посмотри что он там пытается записать, какой элемент, сравни со своим справочником, сделай выводы.
2 cons74
 
08.04.15
06:48
Написано же: Справочник.СпособыВыплатыЗарплаты
там есть предопределенный элемент. Поменяй им номера.
3 Skaliy_art
 
08.04.15
10:54
Там один единственный предопределенный элемент, у которого поле "код" пустое. Только наименование "Зарплата".
Это я в конфигураторе смотрю.
4 Skaliy_art
 
08.04.15
11:06
При вызове обработчика обновления:
"Справочники.СпособыВыплатыЗарплаты.ЗаполнитьОкругление()"
произошла ошибка:
"{Справочник.СпособыВыплатыЗарплаты.МодульМенеджера(99)}: Ошибка при вызове метода контекста (Записать)
        СпособВыплаты.Записать();
по причине:
Предопределенный элемент не уникален".

Эта ошибка перед ошибкой, указанной в теме
5 Stim
 
08.04.15
11:10
типовая?
6 1sanekmaloi1
 
08.04.15
11:16
(3) Ну и поменяй имя предопределенного на "Зарплата1", обновись, перекинь ссылки "Зарплата1" на "Запрплата" который создастся при обновлении.
7 Skaliy_art
 
08.04.15
11:44
Stim
да (бухгалтерия)

1sanekmaloi1
Не помогло, поменял и "Имя" и "Наименование" элемента - при запуске отладки - такая же ошибка.
8 Skaliy_art
 
08.04.15
11:47
(6) (5)
9 D_E_S_131
 
08.04.15
11:48
Уже 100 раз тут по моему обсуждалось. Нужно в режиме "Предприятия" "убить" задвоенные предопределенные элементы.
10 Skaliy_art
 
08.04.15
11:55
(9) мне получается  нужно откатиться на рабочую конфигурацию и в ней искать? Потому что в обновленной - в режим предприятия не заходит.
11 Stim
 
08.04.15
11:55
(9) необязательно.
можно еще установить свойство Обновление предопр данных в Не обновлять автоматически у статей затрат
12 Skaliy_art
 
08.04.15
12:01
(11) не помогло
13 D_E_S_131
 
08.04.15
12:17
(10) Да, откатиться. Потом посмотреть на этот справочник и там уже должны быть задвоенные предопределенные элементы. Их и исправлять.
14 Skaliy_art
 
08.04.15
12:54
(13) а может быть такое, что задвоенные предопределенные элементы появляются после обновления. Как мне тогда их вычислить и удалить?
15 Emvika
 
08.04.15
16:46
(0) а с какого релиза и в какой последовательности обновлял?
16 Skaliy_art
 
09.04.15
08:28
(13) Спасибо, подтолкнули в правильном направлении.
Написал мануальчик по своему случаи, может пригодится:
1) Открываем рабочую конфу через режим "Предприятия" и ищем дубли с помощью "Администрирование"->"Поддержка и обслуживание"->"Поиск и удаление дублей"
2) Выбираем "Искать в" (в нашем случаи СпособыВыплатыЗарплат), отбирать (жмём крестик - получится "Все элементы") и ищем дубли. Тот элемент, которого
у нас больше, тот и считаем за главный, соответственно, тот, которого меньше, считаем дублем, который нужно удалить.
3) При нажатии кнопки "Удалить Дубли" возникает сложность в том, что проведенные документы, на основании которых уже существуют другие док-ты,
невозможно заменить необходимым элементом. Для это воспользуемся обработкой "Выгрузка и загрузка данных XML 8.3"
4) Выгружаем в XML файл (в нашем случаи справочник СпособыВыплатыЗарплат) и смотрим уникальные номера (с тегом Ref) дублирующихся элементов.
5) Следующий шаг - это выгрузить XML файл документа, в котором у нас используются дублирующий элемент (в нашем случае ВедомостьНаВыплатуЗарплатыВКассу) - файлы могут быть очень большими по размеру.
6) Теперь логика: в XML файле документа, где используются дубли, необходимо заменить Ref дубликатного элемента Ref-ом главного элемента.
7) После замены - загружаем исправленный файл через обработку обратно.
Грубо говоря мы сделали так, что дублирующий элемент никаким боком у нас не присутствует в документах. Теперь надо вообще удалить его.
8) Далее, так как предопределенный элемент справочника просто так не удалить, необходимо сделать это через конфигуратор.
Заведамо нужно в Конфигурация->Поддержка->Настройка Поддержки включить возможность редактирования
9) Открываем конфигурацию, справочники (в Нашем случаи СпособыВыплатыЗарплат). Нажимаем два раза -> Прочее -> Предопределенные -> и удаляем
единственный элемент (который и является дублем).
10) Не забываем после редактиирование нажать кнопку "Обновить конфигурацию базы данных"
11) Далее запускаем предприятие через отладку и повторяем пункты 1 и 2 - успешно удалив дубли.
12) Спокойно обновляем конфу и ошибка пропала.
17 Mashinist
 
09.04.15
08:35
(16) А разве п. 3) нельзя было сделать через поиск и замену? не если нет стандартной, то можно было свою написать.

Потом как-то напрягает... В документах допустим ссылки поменяли. Возможно, что для данного варианта прокатит.
А если ссылки есть еще в регистрах?