Интернет Windows Android

1с 8.3 не отображаются предопределенные элементы. Предопределенные элементы справочников

О бновление 1С — это необходимая процедура, позволяющая усовершенствовать форму подачи отчетности и документации. В действующем законодательстве постоянно появляются нововведения, а в экономической области регулярно меняются методики расчета. Поэтому нужно обновлять конфигурацию 1С, чтобы полностью соответствовать всем изменениям.

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

Многие считают, что обновление 1 С — это работа для специалиста. Мол, своими руками данную процедуру реализовать не возможно. Это ошибочное мнение. Сложность обновления заключается в том, какая именно база используется вами, — стандартная или измененная. А также, от того, какая конфигурация установлена на компьютере.

Если стандартная база (то есть, программист ничего в нее не дополнял, и ни что не изменял), то по времени обновление займет от 15 минут до 3 часов максимум. Процедура выполняется в пользовательском режиме. Если же измененная база, то времени уйдет намного больше.

При неправильном и некачественном обновлении могут потеряться данные и пропасть все выполненные ранее доработки . Итак

Ошибка 1. «Имя предопределенного элемента не уникально»

Это значит, что суть ошибки кроется в самой платформе программы. Она была некорректно обновлена вами на последней версии 1С. Чтобы исправить это, нужно снизить версию программы до предыдущей. Если на компьютере нет прошлого релиза, его можно скачать с официального сайта. После установки прошлой версии, можно запускать повторное обновление конфигурации данных.

Ошибка 2. «Файл не содержит доступных обновлений»

Это значит, что произошло не совпадение конфигураций. Бывают типовые и не типовые конфигурации. Возможно скаченные файлы принадлежат одной конфигурации, а на компьютере установлена другая. Решение проблемы: создается пустая база типовой конфигурации и сохраняется в файл.cf, затем используется файл, чтобы обновить уже не типовую конфигурацию. Для получения типовой версии, конфигурация должна поддерживаться (то есть, должен высвечиваться желтый кубик).

Ошибка 3. «Предопределенный элемент отсутствует в данных».

Ошибка 4. «Ошибка формата потока».

Чаще всего случается, когда люди не придерживаются последовательного обновления, а берут свою конфигурацию и сравнивают её с файлом поставки. Делают это для того, чтобы сократить время. Суть процесса: открывается файл поставки и конфигурация, и начинается внимательное их сравнение; все замеченные изменения записываются в текстовый редактор. Затем вносятся в конфигурацию. Лучше так не делать. Пускай у вас уйдет больше времени на последовательное обновление. Зато не будете сидеть и ломать голову над тем, почему же «слетает» программа 1С и появляется ошибка формата потока.

Ошибка 5. «Имя предопределенного элемента не уникально».

Это значит, что конфигурация не была обновлена на предыдущей платформе, и уже на настоящей обновленной платформе она не считает имя предопределенного элемента уникальным. Нужно вернуться к предыдущей платформе 1С, там обновить конфигурацию. Затем установить новую платформу. Ошибка пропадет.

Ошибка 6. «Ошибка записи страны мира» и «Ошибка при вызове метода контекста».

Это происходит, когда имеющаяся конфигурация сильно повреждена. На своем экране вы можете наблюдать такую картину: программа будет выполнять обновление конфигурации до определенного момента, потом просто «вылетит» или же, ни с того ни с сего, начнет процесс обновления сначала. Что нужно сделать: получаем файл обновления от разработчиков; читаем информацию о том, что такое-то обновление будет установлено и заменит оно имеющуюся версию; жмем «ок» и получаем уведомление о том, что конкретно было изменено в конфигурации (может быть и так, что ничего не поменялось); жмем на «принять изменения»; появиться окно, где предложат обновить всю базу данных согласно новой конфигурации; даем свое согласие на эту процедуру. Очень важно держаться последовательности. Пускай программа не спеша сделает все действия по порядку.

Ошибка 7. «Ошибка при записи профиля. Такой профиль уже существует».

Необходимо зайти в справочник пользовательских профилей и проанализировать его. Наверняка там есть дубли. Например, несколько профилей бухгалтеров или администраторов. Если нашли, удалите не нужные профили и оставьте один. После этого ошибка исчезнет с экрана компьютера.

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

Некоторые типы ошибок не требуют присутствия специалиста на месте. Они настолько простые, что их решение можно объяснить в телефонном режиме. Для устранения более сложных ошибок нужно непосредственное участие специалиста.

Если вам срочно необходимо составить отчетность, произвести расчеты и сформировать документацию, а путей устранения ошибки вы не нашли — обращайтесь.

Предопределенные элементы справочников создаются в режиме конфигуратора. В режиме "1С:Конфигуратор" определяются имена предопределенных элементов. Сами элементы, которые хранятся в базе данных, создаются в режиме "1С:Предприятие". Таким, образом предопределенный элемент - это метаданные (имя предопределенного элемента) и данные (сам элемент справочника).

1С:Предприятие 8.2

В 1С:Предприятии 8.2 предопределенные элементы добавленные или удаленные в конфигураторе, автоматически добавляются или удаляются в базе данных.

1С:Предприятие 8.3

В этой версии платформы, каждый справочник содержит стандартный реквизит "ИмяПредопределенныхДанных". Он создан для хранения предопределенного имени и доступен для программного изменения. При добавлении нового элемента в конфигураторе, этот элемент может быть создан в базе данных или нет - это зависит от свойства справочника "Обновление предопределенных данных". Если установлено значение "Обновлять автоматически", то созданные предопределенные элементы в конфигураторе, автоматически добавятся в базу. Если свойство установлено в значение "Не обновлять автоматически", элементы в базу не добавятся. В таком случае их нужно создать самостоятельно и программно привязать к предопределенным элементам справочника, установив реквизит "ИмяПредопределенныхДанных".

Сама идея программной работы с предопределенными элемементами, на мой взгляд, очень правильная. Просто есть нюансы, которые нужно учитывать при работе.

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

Периодически в этом свойстве оказывается не то значение, которое предусмотрел разработчик. В результате возникают ошибки в работе 1С. От критичных, при которых работа в принципе невозможна, до некритичных, при которых нарушается логика работы алгоритмов.

Условно можно выделить три типа ошибок:
1. "Предопределенный элемент отсутствует в данных";

3. Неверное указание предопределенного элемента;

1. "Предопределенный элемент отсутствует в данных" - о тсутствие описанного в конфигурации предопределённого элемента в данных ИБ.

Это наиболее простой в отладке и исправлении тип ошибки. Его простота в том, что платформа достаточно корректно сообщает об этой ситуации "Предопределенный элемент отсутствует в данных" и вполне понятно, как её исправить.

При обращении к отсутствующему элементу в коде "Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица" выдается сообщение

При обращении к элементу в запросе "ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.EmailКонтактногоЛица)" выдается сообщение:

Такая ошибка возникает в случае, если элемент в конфигурации описан, но в базе ему элемент не сопоставлен.

Для начала уточним, что такая ситуация не всегда является ошибочной. Вполне возможным является использование предопределённых данных в какой-то программной логике, которая для большинства пользователей может не использоваться. В этом случае, чтобы не захломлять справочник у всех пользователей конфигурации, логично определить предопределенные элементы в конфигурации, но не создавать их во всех ИБ, а лишь для тех ИБ, в которых нужная логика конфигурации используется. В этом случае программист может указать для справочника свойство "Не обновлять предопределенные данные" и создать элементы програмно при обращении к функционалу модуля. Либо дать возможность пользователю самостоятельно привязать предопределенные элементы модуля к имеющимся у него обычным элементам.

Также не используется автоматическое создание предопределенных элементов при работе в режиме РИБ. Так как новые элементы должны передаваться из центральной базы, а не создаваться в узлах с отличающимися УИДами.

Т.е. иногда ошибкой является обращение в несопоставленному элементу, а не само наличие такого элемента.

Необходимо проанализировать, почему элемент не создан. Возможно, он должен создаться при выполнении какого-либо режима программы. Например, после выполнения обмена в РИБ. А возможно, его просто случайно удалили.

Если логикой предусмотрено заполнение предопределенных элементов не автоматически, а отдельным режимом, то перед использование обращения по имени "Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица " для предотвращения исключительной ситуации желательно проверить, что элемент уже есть в базе. Если элемент отсутствует, то сообщить пользователю об этом и объяснить, какой режим ему нужно выполнить для заполнения элемента. Для такой проверки можно выполнить запрос к данным.

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ВидыКонтактнойИнформации.Ссылка |ИЗ | Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации |ГДЕ | ВидыКонтактнойИнформации.ИмяПредопределенныхДанных = ""EmailКонтактногоЛица """; ЭлементОтсутсвуетВДанных = Запрос.Выполнить().Пустой();

Если это все-таки ошибка в данных базы, то необходимо выполнить привязку к предопределенному элементу элемента ИБ. Т.е. необходимо объяснить системе, к какому элементу ИБ должен обратиться программный код по данному имени. Технически привязка это просто указание имени предопределенного элемента в свойстве " ИмяПредопределенныхДанных " элемента ИБ. Для ее установки достаточно выполнить код:

2. "Предопределенный элемент не уникален" - з адвоенные предопределенные элементы:

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

Платформа сообщит об ошибке "Предопределенный элемент не уникален" лишь при попытке редактирования задублированного элемента.

До тех пор, пока никому не понадобится редактировать элемент, об ошибке никто не узнает.

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

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

Такие ошибки в базе данных можно выявить запросом вида:

ВЫБРАТЬ ВидыКонтактнойИнформации.ИмяПредопределенныхДанных, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВидыКонтактнойИнформации.Ссылка) КАК КоличествоПредопределенных ИЗ Справочник.ВидыКонтактнойИнформации КАК ВидыКонтактнойИнформации СГРУППИРОВАТЬ ПО ВидыКонтактнойИнформации.ИмяПредопределенныхДанных ИМЕЮЩИЕ КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ВидыКонтактнойИнформации.Ссылка) > 1

Этот запрос вернет перечень предопределенных элементов, с которым связано более одного элемента ИБ.

При наличии таких элементов необходимо убрать для одного из них связь с предопределенным. Т.е. необходимо однозначно определить для системы, к какому элементу ИБ должен обратиться программный код при использовании данного имени. Для этого достаточно выполнить код.

3. Неверное указание предопределенного элемента.

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

Для этого достаточно выполнить одну из команд.

//Определение элемента ИБ, который привязан к нужному предопределенному Сообщить(Справочники.ВидыКонтактнойИнформации.EmailКонтактногоЛица) //Определяем предопределенный элемент, к которому привязан выбранный Сообщить(СсылкаНаЭлемент.ИмяПредопределенныхДанных)

При выявлении таких ошибок необходимо убрать некорректную связь со старым элементом и добавить связь с новым элементом. Код операций аналогичен коду исправления первых двух типов ошибок.

Ну и кратко об ошибках при программной работе или в режиме конфигуратора:

"Предопределенный элемент не принадлежит <Имя справочника>" - ошибка возникает при попытке записать предопределенный элемент с именем, не совпадающим с именем в коонфигураторе .

"Не предопределенные объекты не могут иметь предопределенные записи видов субконто" - ошибка возникает при попытке сделать элемент предопределенный плана счетов непредопределенным. Для устранения ошибок необходимо у каждой строки субконта элемента снять признак "Предопределенное".

"Не предопределенные объекты не могут иметь предопределенные записи ведущих видов расчетов" - ошибка возникает при попытке сделать предопределенный элемент плана видов расчета непредопределенным. Для устранения ошибок необходимо у каждой строки ведущего вида расчета элемента снять признак "Предопределенное".

"Предопределенные элементы не уникальны" - ошибка выдается в конфигураторе при обновлении информационной базы на релиз конфигурации без режима совместимости с 8.3.4. Необходимо до обновления проверить дубли и устранить их.

"Имя предопределенного элемента не уникально" - ошибка возникает при наличии в конфигурации нескольких одноименных предопределенных элементов при обновлении на платформу 8.3.6.2332 и выше. Необходимо устранить дубли в конфигурации.

Для работы с предопределенными данными рекоммендую обработку . Она умеет выполнять любые действия с предопределенными данными, а также может проверить конфигурацию вцелом на наличие во всех объектах ИБ (справочниках, планах счетов, ПВХ, ПВР) ошибок первых двух типов (задвоенных и отсутствующих элементов).