Как добавить предопределенный элемент в справочник 1с в расширении
Перейти к содержимому

Как добавить предопределенный элемент в справочник 1с в расширении

  • автор:

Использование предопределенных элементов

Область применения: управляемое приложение, мобильное приложение, обычное приложение.

Действует для версии платформы 1С:Предприятие 8.3.3 и выше без режима совместимости с версией 8.2

1.1. В справочниках, планах счетов, планах видов характеристик и планах видов расчета имеется возможность создавать предопределенные элементы автоматически или программно.

1.2. В большинстве случаев, предопределенные элементы рекомендуется создавать автоматически, поскольку они постоянно нужны и требуется упростить обращение к этим элементам из кода.
Например, предопределенная страна Россия в справочнике Страны мира , предопределенные профиль групп доступа Администратор и т.п.

  • в свойстве ОбновлениеПредопределенныхДанных справочника, плана счетов, плана видов характеристик или плана видов расчета должно быть установлено значение Авто (по умолчанию), а также не следует допускать программных вызовов метода УстановитьОбновлениеПредопределенныхДанных этих объектов для переключения этого режима.
  • запретить удаление предопределенных элементов пользователями, выключив во всех ролях следующие права (по умолчанию выключены):
    • ИнтерактивноеУдалениеПредопределенныхДанных
    • ИнтерактивнаяПометкаУдаленияПредопределенныхДанных
    • ИнтерактивноеСнятиеПометкиУдаленияПредопределенныхДанных
    • ИнтерактивноеУдалениеПомеченныхПредопределенныхДанных

    Область применения (уточнение): управляемое приложение, обычное приложение.

    1.3. Исключение составляют дочерние узлы РИБ, в котором предопределенные элементы автоматически не создаются (и не обновляются при изменении в метаданных), а должны быть переданы из главного узла вместе с изменениями конфигурации.

    а) конфигурация должна обеспечивать загрузку сообщения обмена в подчиненный узел РИБ до выполнения другого прикладного кода, который обращается к получаемым из главного узла предопределенным элементам;

    б) в прикладной логике загрузки данных из главного узла (обработчик события ПриПолученииДанныхОтГлавного , правила регистрации объектов) следует избегать обращений к предопределенным элементам, поскольку нет гарантии, что они уже были загружены из сообщения обмена;

    в) код обработчиков обновления ИБ, который обрабатывает предопределенные элементы, не должен выполняться в подчиненных узлах РИБ:

    Если ПланыОбмена.ГлавныйУзел() = Неопределено Тогда
    // заполняем предопределенные элементы
    // .
    КонецЕсли;

    При использовании в конфигурации подсистемы «Обмен данными» Библиотеки стандартных подсистем (БСП) версии 2.1.4 и выше требования (а) и (б) снимаются.

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

    Значение Авто в этом случае не подходит, так как для подчиненного узла Авто означает НеОбновлятьАвтоматически , то есть предопределенные элементы таблицы автоматически созданы не будут.

    При включенном режиме совместимости с версией 8.3.3 также необходимо при первом запуске подчиненного узла РИБ (сразу после того, как была обновлена его конфигурация) устанавливать автоматическое обновление в данных с помощью вызова:

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

    Например, те или иные предопределенные виды расчетов в плане видов расчета Начисления зависят от значений функциональных опций ИспользоватьУчетВремениСотрудниковВЧасах , ИспользоватьСдельныйЗаработок и др.

    • в свойстве ОбновлениеПредопределенныхДанных справочника, плана счетов, плана видов характеристик или плана видов расчета нужно установить в значение «Не обновлять автоматически»
    • предусмотреть код создания (и пометки недействительным) предопределенного элемента в зависимости от бизнес-логики, например:

    Если ПолучитьФункциональнуюОпцию(«ИспользоватьУчетВремениСотрудниковВЧасах») Тогда
    НачислениеОбъект = ПланыВидовРасчета.Начисления.СоздатьВидРасчета();
    НачислениеОбъект.ИмяПредопределенныхДанных = «ОкладПоЧасам»;
    // .
    НачислениеОбъект.Записать();
    КонецЕсли;

    • учитывать в прикладном коде отсутствие предопределенных элементов в ИБ. В противном случае, при обращении к несуществующему предопределенному элементу из кода или текста запроса будет вызвано исключение:

    При использовании в конфигурации Библиотеки стандартных подсистем (БСП) версии 2.1.4 и выше рекомендуется использовать функцию ПредопределенныйЭлемент общего модуля ОбщегоНазначения или ОбщегоНазначенияКлиент , которая возвращает Неопределено для несуществующих в ИБ предопределенных элементов:

    Типичные вопросы при работе с предопределенными данными

    При работе с предопределенными данными могут встречаться следующие ошибки:

    • Попытка обратиться к предопределенному элементу приводит к ошибке «Предопределенный элемент отсутствует в данных». Возможные причины появления такой ошибки:
      • Это периферийный узел и предопределенные данные из центрального узла еще не загружены.
      • Область информационной базы инициализирована, когда обновление предопределенных данных отключено на уровне информационной базы или на уровне проблемного объекта метаданных.
      • Предопределенные данные удалены.
      • У предопределенных данных очистили значение реквизита «ИмяПредопределенныхДанных».

      • Предопределенные элементы созданы в режиме «ОбменДанными.Загрузка = Истина». Например, при обмене данными в РИБ.

      Анализ причин ошибок при работе с предопределенными данными и способы их устранения.

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

      Отсутствие предопределенных элементов в данных

      Необходимо в журнале регистрации выполнить отбор по проблемному объекту метаданных и следующим событиям:

      • Данные:
        • Изменение предопределенных данных,
        • Удаление предопределенных данных,
        • Установка инициализации предопределенных данных,

        • Обновление предопределенных данных,
        • Установка обновления предопределенных данных.

        По событиям в списке можно понять, почему предопределенный элемент не обнаружен.
        Если в журнале имеется события » Данные. Изменение предопределенных данных «, у которых новое имя предопределенных данных – пустая строка. Это значит, что пользователь или код на встроенном языке очистил имя предопределенных данных, сделав элемент не предопределенным. Для восстановления элемента достаточно вернуть свойству ИмяПредопределенныхДанных старое значение. Желательно доработать конфигурацию таким образом, чтобы не допустить повторение такой ситуации: изменить права, модифицировать код на встроенном языке.
        Если в конфигурации есть событие » Данные. Удаление предопределенных данных «, то это означает, что предопределенные данные удалены пользователем или из встроенного языка. Для исправления необходимо создать недостающий предопределенный элемент. Изменить конфигурацию таким образом, чтобы не допускать удаления используемых предопределенных данных.
        Если в журнале имеется событие » Данные. Установка инициализации предопределенных данных «, в которых установлен признак инициализации предопределенных данных, то это означает, что из встроенного языка был установлен признак инициализации предопределенных данных, а предопределенные элементы не созданы (все или частично). Для исправления необходимо модифицировать конфигурацию, чтобы создавались все предопределенные данные, либо не было обращений к отсутствующим данным.
        Если в журнале имеется событие » ИнформационнаяБаза. Обновление предопределенных данных «, в котором есть комментарий «Обновление предопределенных данных отключено». Это означает, что в базе данных на уровне ИБ, узла или объекта метаданных отключено автоматическое обновление предопределенных данных. В таком случае платформа не выполняет реструктуризацию предопределенных данных. Для выяснения источника проблемы необходимо:

        • Убедиться, что это не периферийный узел. В периферийном узле предопределенные данные загружаются из центрального узла. Поэтому в логике работы конфигурации необходимо предусмотреть возможность загрузки изменений из центрального узла до работы с предопределенными данными из кода конфигурации.
        • Проанализировать события » ИнформационнаяБаза. Установка обновления предопределенных данных «, в которых установлено отключение обновления предопределенных данных. Если перед обновлением конфигурации было отключено обновление предопределенных данных, то необходимо восстановить автоматическое обновление предопределенных данных с помощью метода » УстановитьОбновлениеПредопределенныхДанныхИнформационнойБазы «, если отключено для всей ИБ, или метода » УстановитьОбновлениеПредопределенныхДанных «, если отключено для конкретного объекта метаданных. Изменить конфигурацию таким образом, чтобы не допустить повторения этой ситуации. Недостающие предопределенные данные необходимо создать, для корректной работы или изменить конфигурацию таким образом, чтобы не было обращений к этим метаданным.
        • Проверить конфигурацию. Возможно для объекта метаданных установлено свойство ОбновлениеПредопределенныхДанных в значение НеОбновлятьАвтоматически . В таком случае необходимо исправить ошибку в конфигурации.

        Дублирование предопределенных данных.

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

        Рекомендации по работе с предопределенными данными

        Если вы не планируете самостоятельно управлять предопределенными данными и ожидаете, что они всегда есть в базе данных, то вам следует:

        • Ограничить права доступа на предопределенные данные таким образом, чтобы было невозможно их удалять или очищать свойство ИмяПредопределенныхДанных .
        • Избегать модификации предопределенных данных в привилегированном режиме.
        • Избегать модификации в режиме загрузки данных, когда свойство » ОбменДанными.Загрузка » установлено в » Истина «.
        • Не отключать автоматическое обновление предопределенных данных.

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

        См. также:

        • Особенности предопределенных элементов объектов метаданных
        • Использование предопределенных элементов
        • Права доступа

        Как добавить предопределенный элемент в справочник 1С в расширении

        khokku.ru

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

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

        Шаг 1: Открыть конфигурацию программы и перейти в раздел справочников.

        Шаг 2: Выбрать нужный справочник и открыть его свойства.

        В свойствах справочника перейти во вкладку «Элементы» и нажать кнопку «Добавить». В появившемся окне ввести необходимое имя элемента и его данные.

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

        Теперь новый предопределенный элемент будет доступен при работе с программой и может быть использован в различных операциях и отчетах.

        Добавление предопределенного элемента

        Чтобы добавить предопределенный элемент в справочник 1C, выполните следующие шаги:

        1. Откройте в программе 1C расширение, в котором находится нужный справочник.
        2. Перейдите в раздел «Справочники» и выберите нужный справочник из списка.
        3. В открывшемся окне справочника найдите и нажмите кнопку «Элементы» или «Табличная часть».
        4. В появившемся списке элементов справочника выберите нужный элемент, к которому вы хотите добавить предопределенный элемент, и нажмите кнопку «Действия» или «Добавить».
        5. В открывшемся окне добавления элемента введите необходимые данные, такие как код и наименование предопределенного элемента. Заполните все обязательные поля, отмеченные звездочкой (*).
        6. Сохраните изменения и закройте окно добавления элемента.
        7. Предопределенный элемент будет добавлен в справочник и будет доступен для выбора при работе с данным справочником.

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

        Добавление предопределенных элементов в справочники позволяет упростить процесс заполнения данных и обеспечить единообразие информации в системе 1C.

        Расширение и его функциональность

        Расширение в 1C представляет собой механизм, позволяющий добавлять новые функциональные возможности в систему. Оно позволяет расширить базовые функции и объекты системы, добавить новые объекты, методы и процедуры, а также внедрить собственные алгоритмы и логику работы.

        Функциональность расширения определяется его составляющими: объектами метаданных и программным кодом, выполняющим различные задачи.

        Объекты метаданных

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

        Объекты метаданных могут быть созданы и изменены с помощью специального редактора конфигурации 1C:Предприятие. Этот редактор позволяет управлять структурой и свойствами объектов, добавлять и удалять реквизиты, настраивать формы и представления данных.

        Программный код

        Расширение также включает в себя программный код, который определяет логику работы системы и реализацию новых возможностей. Код может быть написан на языке 1C:Enterprise Script (1C:Предприятие) или на другом языке программирования, например, на языке JavaScript.

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

        Код расширения может быть выполнен на стороне сервера или на стороне клиента, в зависимости от требований и особенностей конкретной задачи.

        Что такое предопределенный элемент в справочнике 1С?

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

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

        Для добавления предопределенного элемента в справочник 1С нужно выполнить несколько шагов:

        1. Открыть справочник, в который необходимо добавить предопределенный элемент.
        2. Выбрать поле, в котором будет использоваться предопределенный элемент.
        3. Открыть настройки поля и добавить новый элемент в список предопределенных значений.
        4. Задать значение предопределенного элемента и, при необходимости, дополнительные свойства.

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

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

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

        Каким образом можно добавить предопределенный элемент?

        В 1C:Предприятии существует возможность добавить предопределенные элементы в справочник. Предопределенные элементы – это значения, которые заранее определены и доступны для выбора при заполнении полей справочника.

        Чтобы добавить предопределенный элемент, необходимо выполнить следующие шаги:

        1. Открыть справочник, в который необходимо добавить элемент.
        2. Перейти в режим редактирования справочника.
        3. В списке полей справочника выбрать поле, к которому необходимо добавить предопределенный элемент.
        4. Открыть свойства поля.
        5. Перейти на вкладку «Значения по умолчанию».
        6. Нажать кнопку «Добавить» для добавления нового предопределенного элемента.
        7. Ввести значение для элемента и сохранить изменения.

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

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

        Подробное руководство по добавлению предопределенного элемента

        Для добавления предопределенного элемента в справочник 1С в расширении, следуйте следующим шагам:

        1. Откройте расширение в среде разработки 1С.
        2. Выберите нужный справочник в дереве объектов. Для этого щелкните на его названии.
        3. Введите название предопределенного элемента в поле «Наименование».
        4. Дополнительно заполните нужные атрибуты элемента, если они есть.
        5. Нажмите на кнопку «Добавить» или «ОК», чтобы сохранить элемент в справочнике.
        6. Если требуется задать какие-либо значения по умолчанию для нового элемента, откройте его карточку и заполните соответствующие поля.
        7. Для применения изменений, нажмите кнопку «Сохранить» в верхней панели.

        После выполнения этих шагов предопределенный элемент будет успешно добавлен в справочник 1С в расширении.

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

        Важные моменты и рекомендации при добавлении предопределенного элемента в справочник 1С

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

        • Назначение предопределенного элемента: перед добавлением предопределенного элемента необходимо четко определить его назначение. Это поможет выбрать подходящее значение и настроить справочник соответствующим образом.
        • Уникальность значений: предопределенные элементы должны быть уникальными. Это необходимо для корректной работы системы учета и избежания ошибок при выборе значения из справочника.
        • Иерархия значений: в случае, если справочник имеет иерархию значений, следует учесть это при добавлении предопределенного элемента. Необходимо указать родительский элемент и правильно установить отношение между значениями.
        • Корректное название: предопределенный элемент должен иметь понятное и лаконичное название, которое однозначно отражает его суть. Такое название будет удобно использовать и понимать в дальнейшей работе с справочником.

        При добавлении предопределенного элемента в справочник 1С также рекомендуется учесть следующие моменты:

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

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

        Вопрос-ответ

        Как добавить новый предопределенный элемент в справочник в 1C?

        Чтобы добавить новый предопределенный элемент в справочник 1C, вы можете воспользоваться функцией «Вставить» в редакторе справочников. Нажмите правой кнопкой мыши на справочнике в структуре конфигурации и выберите «Вставить». Затем введите значение для нового элемента и сохраните изменения.

        Какую функцию нужно использовать для добавления нового предопределенного элемента в справочник в 1C?

        Для добавления нового предопределенного элемента в справочник в 1C используйте функцию «Вставить» в редакторе справочников. Нажмите правой кнопкой мыши на справочнике в структуре конфигурации и выберите «Вставить». Затем введите значение для нового элемента и сохраните изменения.

        Каким образом можно добавить предопределенный элемент в справочник 1C в расширении?

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

        Какую команду нужно использовать, чтобы добавить новый предопределенный элемент в справочник?

        Чтобы добавить новый предопределенный элемент в справочник, воспользуйтесь командой «Вставить» в редакторе справочников. Выберите нужный справочник в структуре конфигурации, нажмите правой кнопкой мыши и выберите «Вставить». Затем заполните значения полей для нового элемента и сохраните изменения.

        Каким образом можно добавить предопределенный элемент в справочник 1C?

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

        Как можно добавить новый предопределенный элемент в справочник в 1C через расширение?

        Для добавления нового предопределенного элемента в справочник 1C через расширение, откройте редактор справочников, выберите нужный справочник в структуре конфигурации, нажмите правой кнопкой мыши и выберите «Вставить». Затем заполните значения полей для нового элемента и сохраните изменения.

        Как добавить предопределенный элемент в справочник 1с в расширении

        Как добавить предопределенный элемент в справочник 1с в расширении

        Платформа 8.3.11.2867. У расширения и конфигурации режим совместимости = Не использовать.
        В расширение добавляю справочник. Щелкаю правой кнопкой мыши — команда «Предопределенные данные» отсутствует.
        Почему и что делать?

        (0) в смысле создаю «с нуля» свой собственный справочник.
        Если же добавляю справочник из основной конфигурации — предопределенные данные задать можно.

        Но это не весь прикол.
        Если правой кнопкой по справочнику — Изменить — вкладка Прочее — то кнопка Предопределенные данные там есть. Но, зайдя в них, можно создать только группы! Элементы создать невозможно ��

        Восьмерка еще сырая

        (2) думаю, что это сделано умышлено и возможность создания предопределенной группы — баг.

        Интересно, чем же решили заменить преопределенные элементы справочников?

        (0) Не создавай предопределенные, если не предусмотрено. Ищи другие варианты.

        Что случится с предопределенными элементами справочников, если вдруг Расширение будет асинхронно роздано в периферийные базы?

        (2) А если создать предопределенную группу, а потом в режиме предприятия установить существующему элементу ИмяПредопределенныхДанных?

        (7) забавно попробовать, но по идее это не отразится на конфигурации. Ведь предопределенные данные существуют как бы в двух копиях: один раз — в конфигурации, второй — в данных (тот самый реквизит).
        UPD: нихрена не получится:
        СправочникСсылка. (CatalogRef.)
        ИмяПредопределенныхДанных (PredefinedDataName)
        Использование:
        Только чтение.

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

        Полный мрак.
        Пытаюсь в режиме приложения открыть справочник:
        Невосстановимая ошибка
        Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
        по причине:
        Ошибка при выполнении операции с информационной базой
        Запись не найдена в менеджере имен базы данных.

        После удаления предопределенных групп:
        Платформа: 1С:Предприятие 8.3 (8.3.11.2867)
        Конфигурация: Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.5.65) (http://v8.1c.ru/statehrm/)
        Copyright © ООО «1C-Софт», 2014 — 2017. Все права защищены
        Расширение конфигурации: Дополнения для ХХХ
        Режим: Серверный (сжатие: усиленное)
        Приложение: Тонкий клиент
        Локализация: Информационная база: русский (Россия), Сеанс: русский
        Вариант интерфейса: Такси
        Ошибки:
        Тип не определен ‘8db5ca43-69d9-46a0-8a77-4c087bbc0bda’

        Дальше ещё веселее: пытаюсь удалить к чертям расширение — конфигуратор падает.
        Единственное, что остается — подбирать версию платформы, ибо 8.3.11.2867 — ноябрьская.

        Ну всё, угробил базу.
        Со второй попытки снес расширение.
        Пытаюсь зайти в один из справочников, которые пробовал расширить:

        Ошибка при выполнении запроса.
        по причине:
        Ошибка получения данных
        по причине:
        Ошибка создания набора данных «НаборДанныхДинамическогоСписка»
        по причине:
        Ошибка при исполнении запроса набора данных
        по причине:
        Ошибка выполнения запроса
        по причине:
        Работа с таблицей невозможна.
        Структура таблицы расширена при выключенном разделении.

        Предопределенные элементы справочников 1С 8.3

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

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

        К примеру, мы в нашей конфигурации для целей учета создали справочник Валюты, поскольку мы живем в Российской федерации, то валюта Рубль всегда будет в нашей конфигурации, которая используется на территории РФ. Поэтому наиболее логичнее её сделать в виде предопределенного элемента. Поэтому создадим для справочника Валюты предопределенный элемент Рубль. Для того, чтобы добавить предопределенный элемент необходимо выделить нужный справочник, вызвать контекстное меню и выбрать в этом меню команду «Открыть предопределенные данные».

        Открыть список предопределенных элементов справочников 1С

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

        Список предопределенных элементов справочников 1С

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

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

        Список предопределенных элементов иерархического справочника 1С

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

        Предопределенные элементы и группы в справочнике 1С

        Замечу, что все реквизиты у предопределенных элементов присутствуют также как и у обычных, и в них можно записывать какие-либо значения.

        Реквизит предопределенного элемента

        Получить предопределенный элемент справочника 1С

        Используя менеджер справочника, можно обратиться к предопределенному элементу. Делается это следующим образом.

        ЭлементКитай = Справочники.Страны.Китай; 

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

        ЭлементКитай = ПредопределенноеЗначение("Справочник.Страны.Китай"); 

        Имейте в виду, что и при помощи метода ПредопределенноеЗначение и при помощи прямого обращения посредством менеджера объекта мы получим ссылку на элемент, с которой можем работать как с обычной ссылкой на элемент справочника: присваивать её какому-нибудь реквизиту, получать объект из этой ссылки и т.д.

        Ссылка на предопределенный элемент справочника

        Создать предопределенный элемент справочника 1С

        Мы уже научились создавать предопределенные элементы справочника в конфигураторе, но можно ли создать предопределенный элемент программно? И да, и нет.

        Мы можем из простого элемента сделать предопределенный, и наоборот предопределенный элемент сделать простым.

        Для этих целей у справочников имеется стандартный реквизит ИмяПредопределенныхДанных.

        Реквизит ИмяПредопределнныхДанных справочника 1С

        Если мы получим ссылку на предопределенный элемент, то этот реквизит заполнен.

        Реквизит ИмяПредопределнныхДанных у предопределенного элемента справочника 1С

        Если же мы возьмем какой-то не предопределенный элемент, то этот реквизит будет пустой.

        Реквизит ИмяПредопределнныхДанных у простого элемента справочника 1С

        Если мы этому реквизиту присвоим какое-нибудь имя (помня об уникальности имен предопределенных элементов в контексте конкретного справочника), то мы программно «создадим» предопределенный элемент, но только в том случае если это имя уже существует в списке предопределенных элементов справочника, которые были заданы в конфигураторе 1С!

        Например, тот же элемент «Тунис» справочника «Страны» у нас простой.

        Простой элемент справочника 1С

        В какой-нибудь обработке напишем код, в котором попробуем сделать из этого элемента предопределенный элемент.

        &НаСервере Процедура СоздатьНаСервере() ЭлТунис = Справочники.Страны.НайтиПоНаименованию("Тунис"); ОбТунис = ЭлТунис.ПолучитьОбъект(); ОбТунис.ИмяПредопределенныхДанных = "Тунис"; ОбТунис.Записать(); КонецПроцедуры &НаКлиенте Процедура Создать(Команда) СоздатьНаСервере(); КонецПроцедуры 

        Если мы попытаемся его сейчас выполнить, то у нас возникнет ошибка «Предопределенный элемент не существует».

        Предопределенный элемент не существует

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

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

        Сделаем на обработке две команды. Первая будет снимать предопределенность у элемента справочника с именем «Китай», а вторая устанавливать.

        &НаСервере Процедура ОтсоединитьНаСервере() ЭлементКитай = Справочники.Страны.Китай; ОбЭлКитай = ЭлементКитай.ПолучитьОбъект(); ОбЭлКитай.ИмяПредопределенныхДанных = ""; ОбЭлКитай.Записать(); КонецПроцедуры &НаКлиенте Процедура Отсоединить(Команда) ОтсоединитьНаСервере(); КонецПроцедуры 

        Теперь обратно установим.

        &НаСервере Процедура ПрисоединитьНаСервере() ЭлКитай = Справочники.Страны.НайтиПоНаименованию("Китай"); ОбЭлКитай = ЭлКитай.ПолучитьОбъект(); ОбЭлКитай.ИмяПредопределенныхДанных = "Китай"; ОбЭлКитай.Записать(); КонецПроцедуры &НаКлиенте Процедура Присоединить(Команда) ПрисоединитьНаСервере(); КонецПроцедуры 

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

        Имя предопределенного элемента справочника

        У нас до снятия элемент «Китай» был предопределенным.

        Предопределенный элемент справочника 1С

        А после снятия это стал простой элемент.

        Элемент справочника 1С

        Удалить предопределенный элемент справочника 1С

        Начиная с платформы 1С 8.3 предопределенные элементы можно удалять в пользовательском режиме.

        Установка пометки на удаление предопределенного элемента справочника 1С

        Пометка на удаление предопределенного элемента справочника 1С

        Если сейчас этот элемент удалить через стандартную обработку «Удаление помеченных объектов», то он исчезнет из базы.

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

        Права на удаление предопределенного элемента

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

        Остальные статьи по теме конфигурирования:

        Более подробно и основательно работа со справочниками, документами и другими объектами метаданных дается в моей книге:

        Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

        1. Книга написана понятным и простым языком — для новичка.
        2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
        3. Научитесь понимать архитектуру 1С;
        4. Станете писать код на языке 1С;
        5. Освоите основные приемы программирования;
        6. Закрепите полученные знания при помощи задачника;

        О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

        1. Очень доступный и понятный язык изложения
        2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
        3. Поймете идеологию управляемого приложения 1С
        4. Узнаете, как разрабатывать управляемое приложение;
        5. Научитесь разрабатывать управляемые формы 1С;
        6. Сможете работать с основными и нужными элементами управляемых форм
        7. Программирование под управляемым приложением станет понятным

        Промо-код на скидку в 15% — 48PVXHeYu

        Вступайте в мои группы:

        3 Replies to “Предопределенные элементы справочников 1С 8.3”

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

        Signum :
        Спасибо, подправил!
        Алексей :

        Автор. Вы морочите голову. Вы пишете, можно ли создать предопределённый программно. Отвечаете и Да и нет. Затем играетесь с реквизитом Предопределенный устанавливая его в значение ложь и обратно в истина. Где программное создание предопределенного элемента? Если нет, то так и пишите ЭТО НЕ ВОЗМОЖНО. И не надо будет разгадывать ваш витиеватый ребус в течение полутора часов. Вот за такие статьи я и не люблю 1С.

        Значение контролируемого свойства различается с конфигурацией

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

        При этом текст ошибки может быть разный, в зависимости от объекта, который вызвал эту ошибку. К примеру:

        1. Значение контролируемого свойства Предопределенные у объекта Справочник.Склады не совпадает со значением в расширяемой конфигурации, различаются свойства элемента ГлавныйСклад.
        2. Ошибка применения расширения конфигурации: Значение контролируемого свойства ОбъектРасширяемойКонфигурации у объекта Язык.Русский не совпадает со значением в расширяемой конфигурации.

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

        Как исправить?

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

        Для исправления ошибки «Значение контролируемого свойства объект расширяемой конфигурации у объекта Язык.Русский не совпадает со значением в расширяемой конфигурации» рекомендуем Вам отключить проверку языка в расширении конфигурации:

        Более подробно ознакомиться с обновлением расширений конфигурации Вы можете в нашей статье — Адаптация расширений конфигурации

        У Вас возникли трудности с расширениями конфигурации? Мы быстро поможем устранить все ошибки расширения или написать новое расширение с необходимым для Вас функционалом.

        Наши разработки:

        Конструктор прайс-листов (прайс-заказов) для УТ11, КА2, ERP2, УНФ, Розница

        Конструктор прайс-листов (прайс-заказов) для УТ11, КА2, ERP2, УНФ, Розница

        Расширение позволяет формировать произвольные прайс-листы с выгрузкой в Excel и обратной загрузкой в 1С (после обработки прайс-листа клиентом). Конструктор также .

        Помощник продаж с мультикорзиной (расширение для УТ11, КА2, ERP2)

        Помощник продаж с мультикорзиной (расширение для УТ11, КА2, ERP2)

        Помощник продаж выполнен в виде расширения конфигурации 1С, которое существенно дополняет возможности стандартного списка номенклатуры, превращая его в полноценное рабочее .

        Расширенная форма списка номенклатуры для УТ11, КА2, ERP2

        Расширенная форма списка номенклатуры для УТ11, КА2, ERP2

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

        Расширенная форма РМК для УТ 11, КА 2, ERP 2

        Расширенная форма РМК для УТ 11, КА 2, ERP 2

        Расширение конфигурации дорабатывает рабочее место кассира (РМК) и добавляет в нее удобные инструменты для просмотра остатков по складам, остатков по .

        Розница: Расширенная форма списка номенклатуры

        Розница: Расширенная форма списка номенклатуры

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

        Контроль минимальной цены и суммы в заказах и реализациях (УТ11, КА2, ERP2)

        Контроль минимальной цены и суммы в заказах и реализациях (УТ11, КА2, ERP2)

        Расширение конфигурации позволяет быстро решить проблему продажи товара по цене ниже закупочной или цены себестоимости. Контроль будет работать в разрезе .

        Комментарии 1

        Зудилов Николай
        Огромное спасибо.
        Буду рад с Вами контактировать и делиться опытом.

        Добавить комментарий Отменить ответ
        • Остатки и цены в списках номенклатуры
        • Если Ваш прайс-лист неотличим от остальных — не ожидайте что он принесёт Вам продажи!
        • Рубрики
          • 1С: Предприятие
          • Администрирование
          • Конфигурации
            • ERP Управление предприятием 2
            • Бухгалтерия 3.0
            • Комплексная автоматизация 2
            • Управление нашей фирмой
            • Управление торговлей 11
          • Конфигурирование
          • Программирование в 1С
          • Разное
        • Свежие записи
          • Поддержание сезонных товарных запасов в УТ11, КА2, ERP2
          • Перенос типовых настроек Мин-Макс в Помощник закупок
          • Ноябрьские распродажи на TNSoft.ru (2023)
          • Управление запасами — настройка профилей оповещений
          • Универсальная выгрузка товаров на портал zzap.ru (УТ11, КА2, ERP2, УНФ, Розница)
        • Архивы
          • Ноябрь 2023
          • Октябрь 2023
          • Сентябрь 2023
          • Май 2023
          • Апрель 2023
          • Март 2023
          • Февраль 2023
          • Январь 2023
          • Ноябрь 2022
          • Октябрь 2022
          • Июль 2022
          • Июнь 2022
          • Апрель 2022
          • Январь 2022
          • Декабрь 2021
          • Октябрь 2021
          • Сентябрь 2021
          • Август 2021
          • Июль 2021
          • Апрель 2021
          • Февраль 2021
          • Январь 2021
          • Декабрь 2020
          • Ноябрь 2020
          • Август 2020
          • Июль 2020
          • Июнь 2020
          • Февраль 2020
          • Январь 2020
          • Декабрь 2019
          • Ноябрь 2019
          • Октябрь 2019
          • Сентябрь 2019
          • Июль 2019
          • Апрель 2019
          • Март 2019
          • Февраль 2019
          • Декабрь 2018
          • Ноябрь 2018
          • Октябрь 2018

        1С разработка в конфигурации VS разработка через расширение

        Начиная с платформы 8.3.6 у разработчика 1С появилось два альтернативных варианта ведения разработки – доработка основной конфигурации “по старинке” или с использованием механизма расширений.

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

        Зачем нужны расширения?

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

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

        Сравнение разработки через изменение конфигурации и с использованием расширения

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

        Критерии сравнения Конфигурация Расширение Комментарий Источник
        Создание регламентных заданий В расширении нельзя создавать регламентные задания
        Ограничение на работу конструктора запросов Конструктор запросов видит только данные, добавленные в расширение. Чтобы конструктор видел метаданные основной конфигурации, необходимо выйти из контекста расширения, например, построить запрос в обработке. Затем его перенести в расширение, что довольно утомительно — инструмента, позволяющего это сделать в один клик, нет.
        Подключение внешних печатных форм для собственных документов В расширении для собственных документов не подключаются назначаемые печатные формы. Реализовать это можно только командами из формы. Причина: в подсистеме используется ТЧ «Назначения», где для дополнительного отчета хранятся ссылки на идентификаторы объектов метаданных. При этом справочника в БСП два: для объектов метаданных и для объектов расширений. Но хранить ссылку там можно только для объектов метаданных.
        Добавление предопределенных элементы в собственные справочники и заимствованные объекты Реализовано с версии 8.3.20 https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy/
        Изменение длинны и точности предопределяемых типов В расширении нельзя изменить точность учета чего-либо. Например, веса с сотых до тысячных если это необходимо. (Реализовано с версии 8.3.20) https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy/
        Создание предопределенных элементов для планов видов характеристик Нельзя создать предопределенный элемент. Например, для статьи расходов. (Реализовано с версии 8.3.20) https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy/
        Доступность всех объектов конфигурации по ссылке на наборы типов В расширении при ссылке на определенный тип объекта возвращаются только те типы, которые определены в конфигурации, и не учитываются те, что добавлены в расширение (Реализовано с версии 8.3.20) https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy/
        Возможность изменения параметров номеров и кодов объектов Изменение длины, типа и других настроек кода/номера объектов с помощью расширений конфигурации было невозможно. Например, невозможно увеличить длину номера документа. Если менять это в самой конфигурации, то надо включить в ней возможность изменений, что усложнит обновление конфигурации на новую версию. (Планируется с версии 8.3.22) https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy-8322/?sphrase_id=271065
        Настройки нумерации В расширении нельзя изменить свойства нумерации для объектов типа «Документ», «Бизнес-процесс», «Задача» и «Нумератор». (Планируется с версии 8.3.22) Можно будет увеличивать значение свойства «Длина номера», задавать значение свойства «Тип номера», задавать значение свойства «Допустимая длина номера», «Периодичность» и «Контроль уникальности» https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy-8322/?sphrase_id=271065
        Создание собственных нумераторов В расширении нельзя создавать свои нумераторы. (Планируется с версии 8.3.22) https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy-8322/?sphrase_id=271065
        Изменение значения свойства «Длина кода» для объектов типа «Планы обмена», «Справочники», «Планы видов характеристик», «Планы счетов», «Планы видов расчета» (Планируется с версии 8.3.22) https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy-8322/?sphrase_id=271065
        Изменение значения свойства «Тип кода» для объектов типа «Справочники» и «Планы видов расчета» (Планируется с версии 8.3.22) https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy-8322/?sphrase_id=271065
        Изменение значения свойства «Длина наименования» для объектов типа «Планы обмена», «Справочники», «Планы видов характеристик», «Планы счетов», «Планы видов расчета», «Задачи» (Планируется с версии 8.3.22) https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy-8322/?sphrase_id=271065

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

        При разработке непосредственно в конфигураторе в таком случае перестанет работать только объект с ошибкой, но не все доработки.

        Заключение

        В заключении можно сказать: расширение до конца не решает проблему обновления с доработками. Почему обновление доработанной конфигурации вообще занимает больше времени? Потому что нужно проверить, не возникло ли конфликта между доработкой и новой конфигурацией, и, если конфликт все-таки возник, то понять, как его решить. А такой конфликт может возникнуть независимо от того, где сделана доработка.

        Вывод:
        • Расширение НЕ решает проблему обновления, оно просто смотрит на нее с другой точки зрения.
        • При изменении типовых механизмов в ЛЮБОМ случае нужен квалифицированный специалист для обновления. Если изменения и обновления конфликтуют, нужно разбираться и решать этот конфликт. Иногда с написанием нового кода.

        В целом можно выделить несколько причин, при которых точно НЕ стоит использовать расширения:

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

        Механизм расширений не отменяет изменения конфигурации, а в некоторых случаях дополняет его. Расширение незаменимо в качестве «багфикса» — быстрого исправления ошибки в рабочей базе. Так же их целесообразно использовать, если у вас небольшой объем доработок типового функционала программы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *