Обновление конфигураций – тема всегда актуальная для любого специалиста 1С. Наверняка каждый из вас сталкивался с трудностями при обновлении как типовых, так и нетиповых конфигураций. Ошибки могут возникнуть в любом варианте.
Курс Разработка расширений и технологии доработки конфигураций 1С без снятия с поддержки включает в себя объемный модуль “Обновление конфигураций”, в котором рассматриваются вопросы обновлений как типовых, так и адаптированных конфигураций. В Мастер-группе курса можно задавать любые возникающие вопросы по теме. Многие слушатели используют такую возможность.
Вопрос
При попытке обновить типовую 1C:БП (конфигурация находится “на замке”) версии 3.0.75.37 до 3.0.75.70 возникает ошибка “Предопределенный элемент отсутствует в данных”. Обновляю, в автоматическом режиме через 1С:предприятие все откатывается. Хотелось бы получить комментарий, что я делаю не так?
(нажмите, чтобы увеличить картинку)
(нажмите, чтобы увеличить картинку)
Ответ
На партнерском форуме обнаружил описание такой же ошибки, но возникает она при обновлении конфигурации 1С:Зарплата и кадры государственного учреждения на релиз 3.1.12.110: “Справочник.ВидыВычетовНДФЛ.Код511. Предопределенный элемент отсутствует в данных”
Представители фирмы “1С” предлагают следующее:
Есть предположение, что в ИБ установлено неудачное значение режима обновления предопределенных данных – должно быть установлено Авто. Проверить это значение можно методом глобального контекста ПолучитьОбновлениеПредопределенныхДанныхИнформационнойБазы(), установить правильное значение – методом УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы().
Попробуйте этой рекомендацией воспользоваться. То есть можно создать внешнюю обработку, в которой при нажатии на кнопку Выполнить следующий код:
УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы(ОбновлениеПредопределенныхДанных.Авто);
Предопределенный элемент отсутствует в данных |
Я |
25.07.16 – 10:36
При попытке открыть элемент в базе получаем такую ошибку
{ОбщийМодуль.УправлениеСвойствами.Модуль(1473)}: Ошибка при получении значения атрибута контекста (Справочник_Номенклатура)
НаборСвойств = Справочники.НаборыДополнительныхРеквизитовИСведений[ИмяЭлемента];
по причине:
Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура. Предопределенный элемент отсутствует в данных
Как можно исправить эту ошибку?
1 – 25.07.16 – 10:36
Программа УТ 11.2
2 – 25.07.16 – 10:37
объединить с конфой поставщика
3 – 25.07.16 – 10:40
объединял и загружал стандартную конфу все тоже самое
4 – 25.07.16 – 10:41
кэш продуй
5 – 25.07.16 – 10:42
(0) Можно подсунуть
6 – 25.07.16 – 10:42
если я базу загружаю, это из-за кэша?
7 – 25.07.16 – 10:42
(0) Кэш, ТиИ со всеми галками(возможно, битая ссылка засела где-то)
8 – 25.07.16 – 10:43
тестирование делал
9 – 25.07.16 – 10:44
(8) Почисти кэш в AppData/Roaming, выгони всех из базы и оставь в папке(если файловая) только файл 1Cv8.1CD
Если же SQL-вариант, то выгрузи в ДТ и загрузи обратно.
10 – 25.07.16 – 10:47
файлы удалил не помогло
11 – 25.07.16 – 10:48
(10) Да подсунь программно, через обработку
12 – 25.07.16 – 10:48
+ Любой понравившийся элемент.
13 – 25.07.16 – 10:48
(0) В Гугле уже забанили?
Первой строкой по запросу “Предопределенный элемент отсутствует в данных”
“Ошибки в предопределённых элементах”
В 8.3.3 в 1С добавилась возможность программно привязывать предопределенные элементы к элементам ИБ.
Периодически при сбоях, обменах либо ошибках в используемом программном коде соответствие между предопределенными элементами и элементами ИБ может сбиваться.
Какие ситуации бывают, как они возникают и как с ними бороться.
http://catalog.mista.ru/public/310542/
14 – 25.07.16 – 10:49
Привяжи любой элемент к своему предопределенному Справочник.НаборыДополнительныхРеквизитовИСведений.Справочник_Номенклатура
15 – 25.07.16 – 10:57
в конфигураторе предопределенные реквизиты есть, базу чинили чеком
16 – 25.07.16 – 11:01
(15) Перечитай (13)
Они должны быть не в конфигурации, а в базе.
17 – 25.07.16 – 11:03
(14) а лучше посмотреть какой элемент привязан в типовой и создать/привязать такой же
18 – 25.07.16 – 11:06
(17) Логично. Скорее всего он есть, просто отвязался.
Правильнее привязать имеющийся.
А если нету, то перенести из типовой правильный универсальным обменом ХМЛ
19 – 25.07.16 – 11:13
перенести справочник?
20 – 25.07.16 – 11:19
подскажите пожалуйста, что перенести из типовой и как это сделать?
21 – 25.07.16 – 11:22
а как правильно привязать?
22 – 25.07.16 – 11:23
Почему не позовешь программиста?
23 – 25.07.16 – 11:23
я сам учусь
24 – 25.07.16 – 11:35
(19) Перенести или привязать нужно элемент справочника.
Прочитай по ссылке в (13)
Подробнее разжевать уже некуда.
25 – 25.07.16 – 11:40
еще странно в конфигураторе элементы есть а в пользовательском режиме их нет
26 – 25.07.16 – 11:44
каким образом можно поменять справочник на типовой
27 – 25.07.16 – 11:49
(25) Логично. В этом и ошибка.
Цитата:
“Для начала необходимо четко осознать для себя, что есть предопределенные элементы в конфигурации и есть предопределенные элементы в информационной базе (ИБ). Технически предопределенные элементы ИБ это самые обычные элементы справочников, у которых в реквизите “ИмяПредопределенныхДанных” указано, какому предопределенному элементу конфигурации они соответствуют. Ничем больше они от обычных элементов не отличаются. Соответственно, любой обычный элемент ИБ можно сделать предопределенным, любой предопределенный обычным. Для этого достаточно вписать нужное значение в реквизит “ИмяПредопределенныхДанных”.
Подробнее в (13)
28 – 25.07.16 – 11:54
ок, в каком справочнике есть реквизит “ИмяПредопределенныхДанных”, где он находится?
29 – 25.07.16 – 11:58
вопрос про ИмяПредопределенныхДанных снимается
30 – 25.07.16 – 12:07
кроме обработки можно как-нибудь по другому привязать предопределенные элементы?
31 – 25.07.16 – 12:33
(30) Да.
В статье есть пример кода, который выполнить.
ОбновляемыйОбъект = СсылкаНаОбъект.ПолучитьОбъект();
ОбновляемыйОбъект.ИмяПредопределенныхДанных = “НашеИмяПредопределенногоЭлемента”;
ОбновляемыйОбъект.ОбменДанными.Загрузка = Истина;
ОбновляемыйОбъект.Записать();
32 – 25.07.16 – 12:40
это да, но хотелось быстро и оптом )))
33 – 25.07.16 – 12:58
Быстро – это обработка на инфостарте “установка предопределенных эл-тов”
34 – 25.07.16 – 13:00
Или на http://devtool1c.ucoz.ru/index/redaktor_predopredelennykh/0-43 “Редактор предопределенных элементов” из подсистемы “Инструменты разработчика”
skela1c
35 – 25.07.16 – 13:20
спасибо всем разобрался. Особая благодарность EugeniaK
1С постоянно улучшается разработчиками. Поэтому компаниям, работающим с этой программой, стоит постоянно обновлять уже установленные конфигурации. Так вы никогда не пропустите новые возможности ПО и исправление ошибок в нем. Однако иногда и простой апдейт иногда не проходит гладко, и после установки новой версии «вылезают» ошибки. В этой статье мы разберем самые частые проблемы, с которыми могут столкнуться пользователи.
Типовая конфигурация
Обновление стандартной программы не должно вызвать затруднений – как правило, для этого достаточно стабильного подключения к интернету. Все нужные действия программа подскажет вам сама. Однако иногда и с этим могут возникнуть проблемы.
Ошибка при записи профиля. Такой профиль уже существует
Сообщение об ошибке говорит само за себя – и подсказывает решение проблемы. Зайдите в справочник пользователей программы и проанализируйте его – вероятно, в там уже зарегистрировано несколько одинаковых администраторов или бухгалтеров. Удалите дубли учетных записей, и ошибка 1С базы исчезнет.
Имя предопределенного элемента не уникально
Часто пользователи сталкиваются с сообщением «Имя предопределенного элемента не уникально». Такая ошибка при обновлении стандартной конфигурации 1С возникает из-за некорректного апдейта последней версии программы. Чтобы исправить проблему, можно откатить ПО к прошлой версии программы. Частично это сделать нельзя: вам придется скачать и установить предыдущую версию программы с сайта разработчика или же вернуться к ее резервной копии.
Если у вас есть резервная копия БД, вам потребуется:
- Зайти в режим конфигуратора;
- Перейти в меню «Администрирование – Загрузить информационную базу»;
- Далее найдите файл, в котором ранее была сохранена резервная копия в формате .dt;
- Система предупредит вас о том, что несохраненная ранее информация будет потеряна – согласитесь с этим и дождитесь загрузки ИД;
- После успешной выгрузки перезапустите конфигуратор.
Резервное копирование – важная операция, которая позволит вам сэкономить время при появлении ошибки обновления локальной базы. В этом случае решить проблему можно быстро и без потери необходимых данных. Резервные копии можно делать вручную или настроить их сохранение автоматически. Кроме того, специалисты рекомендуют создавать резервную БД перед началом обновления. Для этого нужно:
- Перейти в режим конфигуратора;
- Включить режим администрирования БД и выбрать пункты «Администрирование – Выгрузить информационную базу»;
- Выберите путь, в который программа сохранит БД, и ее название.
Лучше всего сохранять БД на внешний носитель – например, на жесткий диск или флэш-карту.
Автоматическая архивация осуществляется с помощью дополнительных программ. О том, какой лучше воспользоваться, можно спросить у специалистов компании Авиант.
Файл не содержит доступных обновлений
Если во время обновления 1С появляется ошибка «Файл не содержит доступных обновлений», значит, не совпадают конфигурации ПО. Как правило, это сообщение также содержит список необходимых версий. Такое случается, когда вы долго не совершали апдейт программы. Поэтому, если вы пропустите больше полугода обслуживания, вас может ждать неприятный сюрприз – целый день (а может и больше) последовательных обновлений с самого первого пропущенного релиза до последнего. Ведь один апдейт может занять больше часа.
Можно ли ускорить обновление? Для этого потребуется актуальный релиз файла конфигурации 1Cv8.cf. Последовательность действий следующая:
- Активируйте режим «Конфигуратор»;
- Далее перейдите в меню «Конфигурация – Поддержка – Настройка поддержки – Включить возможность изменения конфигурации»;
- Появится предупреждение о невозможности выполнять обновление автоматически полностью – нажмите кнопку «Да»;
- В окне настройки правил поддержки включите дважды выберите «Объект поставщика редактируется с сохранением поддержки». На изменение режима уйдет несколько минут;
- Закрыв последнее окно, перейдите в меню «Конфигурация – Загрузить конфигурацию из файла»;
- Найдите на компьютере файл 1Cv8.cf с актуальным релизом и откройте его;
- Появится предупреждение о замене текущей версии на загружаемую, нажмите «Да». Загрузка может занять несколько минут, после чего вам потребуется обновить конфигурацию БД;
- В зависимости от объема вашей базы данных обновление может занять до нескольких часов. В процессе загрузки вы увидите окно «Реорганизация информации», в котором нужно нажать кнопку «Принять»;
- Далее нажмите кнопку F5 на клавиатуре или же найдите опцию «Начать отладку» и подтвердите легальность обновления.
После этого нужно дождаться завершение апдейта базы данных – и проблема решена. Если же ошибка возникает при обновлении доработанной конфигурации, стоит обратиться к специалисту, который сможет найти выход из положения, сохранив все наработки особенности установленной у вас программы.
Ошибка формата потока
Еще одна распространенная ошибка после обновления платформы 1С. Чаще всего является следствием непоследовательного апдейта и сравнивания своей сборки ПО с файлом поставки. Это делают для того, чтобы сэкономить время: файл поставки и имеющаяся версия сравниваются, изменения выписываются, а затем вносятся в уже имеющуюся конфигурацию.
Чтобы исправить ее, необходимо очистить кэш вашей программы. Для этого:
- Завершите все процессы в программе и закройте ее;
- Вручную найдите папки с кэшем – как правило, они располагаются в директориях C:/Users/Username/AppData/Roaming/1C в папках, название которых начинается с 1Cv8. Если найти эти папки не получается, настройте видимость скрытых файлов и папок в настройках компьютера;
- В этой директории могут находиться другие папки с очень длинными именами из букв и цифр – их и нужно удалить.
Также очистить кэш можно автоматически: перейдя в режим конфигуратора и в меню «Администрирование – Тестирование и обновление» отметьте пункты «Реиндексация таблиц информационной базы» и «Проверка логистической целостности ИБ». Нажмите «Выполнить», и программа сама проверит базу, найдет ошибки, исправит их – и предоставит вам отчет.
Если эти способы не помогли, обратитесь к своему программисту или специалистам компании «Авиант».
Предопределенный элемент отсутствует в данных
Если при обновлении вашей конфигурации платформы 1С появляется сообщение об этой ошибке, значит предопределенный элемент описан в конфигурации, но при этом отсутствует в вашей информационной базе (ИБ). Однако эта ситуация критична. Вполне вероятно, что использование не найденного элемента необходимо программной логике, которая не используется большинством пользователей вашей программы.
Однако такая ошибка 1С базы требует обращения к программисту, который сможет проанализировать причину ее появления и либо создать необходимый элемент в ИБ, либо создать его только для тех ИБ, для которых его требует программная логика.
Ошибка при вызове метода контекста
Это сообщение часто появляется после обновления базы в случаях, когда конфигурация программы сильно повреждена. Вы будете наблюдать следующее: программа выполняет обновление до определенного момента, после чего «вылетает» или начинает процесс с самого начала.
И в этом случае лучше обратиться к профессионалам, которые проанализируют имеющуюся у вас конфигурацию и выявят ошибки, чтобы потом найти решение проблемы.
Нужна консультация по возможностям и функционалу программы
«1C Розница 8»?
Специалисты 1С ответят на любые вопросы
и помогут выбрать программу абсолютно бесплатно!
Заказать бесплатную консультацию
Ошибки при обновлении нетиповой конфигурации
Другое дело – обновление доработанной 1С. Ошибка в такой версии программы может привести к серьезным последствиям. Как правило доработкой программ занимается штатный программист, поэтому обычный пользователь – бухгалтер или администратор, – может не разобраться в причинах появившейся проблемы. Так что ошибки апдейта нетиповой ПО стоит доверить профессионалам.
Но можно и вовсе избежать проблем, подключив пакет ИТС 1С от «Авиант». Так ошибки обновления базы, конфликты программы с другими ПО, неактуальные формы документов и неправильно оформленная отчетность останутся в прошлом. Удобные тарифы, официальное программное обеспечение, единые цены от компании 1С и максимальная эффективность поддержки – все это входит в пакет ИТС от «Авиант».
Рассмотрим основные ошибки, которые могут возникнуть при обновлении конфигурации 1С, а также методы их решения.
Файл не содержит доступных обновлений
Ошибка возникает при несовпадении конфигураций.
Порядок исправления следующий:
- Снять конфигурацию с поддержки.
- Сделать сравнение/объединение конфигурации 1С с типовым cf-файлом того же релиза. При этом выключить все чекбоксы в дереве метаданных, нажать кнопку «Выполнить».
- Затем в диалоге «Настройка правил поддержки» для всех объектов дерева метаданных выставить «Редактируется с сохранением поддержки», нажать «Ок». В результате восстановится конфигурация поставщика и конфигурация встанет на поддержку. При этом останутся все изменения и возможность редактирования.
- Обновить конфигурацию базы данных.
Имя предопределенного элемента не является уникальным
Существует несколько причин, по которым возникает ситуация «задвоения» связи элементов информационной базы и предопределенных элементов. Если ошибка произошла при обновлении конфигурации, то, с большой степенью вероятности, можно сказать о проблеме совместимости конфигурации с платформой.
Для исправления ситуации снизьте версию платформы, например, до предыдущей версии и повторно запустите обновление конфигурации.
Предопределенный элемент отсутствует в данных
Ситуация, характерна, когда предопределенный элемент отсутствует в базе данных ИБ, но в конфигурации он описан. Существует два основных варианта событий, когда такое происходит.
Иногда ошибкой может быть само обращение в предопределенному элементу, а не само наличие такого элемента. В таком случае нужно понять, почему элемент не создан. Возможно, его случайно удалили либо он создается только при выполнении определенного режима программы.
Если это все же ошибка в информационной базе, то выполните привязку элемента базы к предопределенному элементу. Технически это просто указание имени в свойстве «ИмяПредопределенныхДанных».
Ошибка формата потока
Ещё одна ошибка, возникновение которой может быть вызвано разными причинами. Например, она характерна при нарушении регламента обновления, когда администратор обновляет систему минуя промежуточные конфигурации 1С — в таких случаях «бьется» конфигурация поставщика. Профилактика данной ошибки — последовательное обновление с помощью cfu-файлов.
Если же ошибка всё же возникла, попробуйте следующий порядок действий:
- Поставьте чистую конфигурацию, аналогичную вашей, а затем через конфигуратор, сохраните её в файл.
- Аналогично сохраните файл конфигурации проблемной базы и следующие шаги выполняйте в нём же.
- Откройте пункт меню «Конфигурация» > «Загрузить конфигурацию из файла». При запросе системы «Обновить конфигурацию БД» обязательно выбираем «Нет»
- Создайте новую конфигурацию поставщика через меню «Конфигурация» > «Настройка поддержки» > «Включить возможность изменения».
- Следующим шагом выбираем «Конфигурация» > «Сравнить Объединить с конфигурацией из файла» и указываете файл конфигурации, созданный на втором шаге.
- Соглашаемся с изменениями и применяем их к конфигурации информационной базы по кнопке F7 — «Обновить конфигурацию базы данных».
- Обновляете.
Ошибка при записи профиля
Данная ошибка вызвана, как правило, дублированием информации профилей. Зайдите в справочник пользовательских профилей: «Все функции» > Справочники > «Профили групп доступа» (не путайте со справочником «Пользователи)».
Раскройте все группы профилей и посмотрите, есть ли повторяющиеся записи. Удалите все ненужные дубли, и ошибка исчезнет.
Обновление предопределенных значений при обновлении конфигурации
От типовых конфигураций ожидается, что обновления будут проходить всегда без сучка, без задоринки. Но иногда из-за того, что возможности по конфигурированию системы переносятся на уровень 1с:Предприятия, возникают неожиданные сложности при установке обновления даже на базовые версии типовых конфигураций. Рассмотрим пример ошибки обновления Бухгалтерии предприятия базовая, редакция 3.0.
При обновлении на релиз 3.0.103.12 при выполнении процедур обновления в режиме 1с:Предприятия на одной из баз возникала следующая ошибка: Справочник.КодыОперацийПрослеживаемости.УКДНаУменьшениеВыданный Предопределенный элемент отсутствует в данных.
На всякий случай проверяем, что в конфигурации предопределенное значение УКДНаУменьшениеВыданный справочника КодыОперацийПрослеживаемости на месте, хотя ошибка в случае отсутствия предопределенного имени была бы «Поле оъекта не обнаружено», значит, действительно по каким-то причинам нового значения не оказалось на уровне базы данных.
Начиная с определенного релиза платформы с предопределенными данными стало возможно работать программно: привязывать предопределенное имя к конкретному элементу справочника, что вызвало необходимость синхронизации данных в конфигураторе и в базе данных, а также необходимость настраивать политику обновления предопределенных значений.
Бывает три значения настройки политики обновления предопределенных значений: Авто, ОбновлятьАвтоматически, НеОбновлятьАвтоматически. В случае указания ОбновлятьАвтоматически в 1с:Предприятии при обновлении сам создается нужный элемент справочника и привязывается к предопределенному имени. В случае НеОбновлятьАвтоматически — элемент справочника и связь с предопределенным именем надо создавать самому. Настройка Авто нужна для того, что сделать настройки многоуровневыми, регулирующими поведение как конкретного справочника (плана видов характеристик, плана видов субконто), так и всей базы в целом.
Настройка политики обновления предопределенных значений задается одновременно на трех разных уровнях:
- для таблицы базы данных,
- для объекта метаданных в конфигураторе
- для всей информационной базы.
Итоговое значение настройки, которое и влияет на результат обновления, вычисляется по следующему алгоритму. Сначала проверяется настройка для таблицы базы данных (это настройка на уровне базы данных, она зависит от конкретного экземпляра базы данных, а не от релиза конфигурации). Если она не равна Авто, то используется именно она. Если на уровне таблицы установлено Авто, то проверяется настройка для объекта метаданных в конфигураторе (эта настройка зависит от релиза, она находится в метаданных).
В конфигурации настройка — это свойство справочника «Обновление предопределенных данных».
Если она тоже Авто, то проверяется настройка для всей информационной базы (так же эта настройка хранится в данных информационной базы и не зависит от релиза). Если и она равна Авто, то смотрим, является ли данная база периферийным узлом распределенной информационной базы. Если да, то используется НеОбновлятьАвтоматически. В противном случае настройка будет ОбновлятьАвтоматически.
В таблице Редактора предопределенных значений Портативных инструментов разработчика выведены как текущие настройки разных уровней, так и результирующее значение которое будет применено при обновлении.
В данном случае мы видим, что на уровне всей базы установлена глобальная настройка НеОбновлятьАвтоматически и поскольку и на уровне таблицы, и на уровне метаданных стоит Авто, то именно она и была применена в процессе обновления, вызывая ошибку отсутствия предопределенного элемента!
Поскольку база не является узлом РИБ, то достаточно установить глобальный режим Авто, чтобы требуемое обновление было благополучно установлено. Согласно порядку определения итоговой настройки она будет тогда ОбновлятьАвтоматически.
Таким образом у нас получается один уровень настройки в конфигураторе, а два — самый детальный и самый общий — на уровне данных информационной базы, чем и объясняется неожиданное появление ошибки при многократных успешных обновлениях других баз.
Если под рукой нет Портативных инструментов разработчика, эти настройки легко установить самостоятельно. Для установки данной настройки на уровне таблицы базы данных используется метод УстановитьОбновлениеПредопределенныхДанных.
Значение = ОбновлениеПредопределенныхДанных.НеОбновлятьАвтоматически;
Справочники.КодыОперацийПрослеживаемости.УстановитьОбновлениеПредопределенныхДанных(Значение);
Установка настройка для всей информационной базы делается с помощью метода УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы.
Значение = ОбновлениеПредопределенныхДанных.НеОбновлятьАвтоматически;
УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы(Значение);
Осталось тайной, как в рассмотренном случае в базе оказались именно такие настройки. Будут идеи — пишите свои версии, обсудим!
Анна Коваленко,
специалист отдела
автоматизации и сопровождения
информационных систем
ООО «Байт»
Свежие записи
- Критично: срочно, сегодня обновите платформу «1С:Предприятие 8»!
- «Зависшие» остатки количества на счетах 106 бюджетного учета в БГУ 2.0 и 1.0
- С Днем Победы!
- С Днем Рождения, Шеф!
- ВАЖНО! 4-ФСС на сегодня, 26 апреля продлен прием.
- Услуги
- 1С:ERP
- Решения 1С
- Цены
- Акции
- О компании
- +7 (495) 827-19-30
- sales@bytenet.ru
- 142403, Россия, г. Ногинск, ул. Советской конституции, д. 2a