Определяемые типы в расширении 1с

Обновлено: 06.07.2024

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

Использование констант в расширениях недопустимо в режиме совместимости 8.3.15 и ниже
При проверке метаданных обнаружены ошибки!
Операция не может быть выполнена.

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

  • Общие реквизиты.
  • Регламентные задания.
  • Определяемые типы.
  • Хранилища настроек.
  • Языки.
  • Журналы документов.
  • Бизнес-процессы и задачи.
  • Внешние источники данных.

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

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

Версия 8.3.18

Реализована возможность расширять типы реквизитов заимствованных объектов, кроме:
1. типов общих реквизитов;
2. реквизитов с типами внешних источников данных;
3. реквизитов, имеющие определяемый тип;
4. реквизит Тип плана видов характеристик.
В документации данное изменение описано здесь.

Версия 8.3.17

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

Версия 8.3.16

Реализована возможность создания в расширении конфигурации:
1. констант;
2. функциональных опций и параметров функциональных опций;
3. критериев отбора.
Реализована возможность расширения:
1. состава заимствованных функциональных опций (собственными и заимствованными объектами);
2. состава заимствованных критериев отбора реквизитами собственных объектов расширения.
В документации данное изменение описано здесь, здесь и здесь.

Версия 8.3.15

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

Версия 8.3.14

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

Версия 8.3.13

В расширении конфигурации реализована возможность создания следующих собственных объектов:
1. планы видов характеристик;
2. планы счетов;
3. планы видов расчета;
4. регистры накопления;
5. регистры бухгалтерии;
6.регистры расчета.

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

В документации данное изменение описано здесь.

Версия 8.3.12

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

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

В документации данное изменение описано здесь.

Версия 8.3.11

Реализована возможность добавлять в расширение конфигурации ;

  • справочники,
  • документы,
  • планы обмена
  • регистры сведений.

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

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

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

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

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

Получилось разобраться? просто столкнулся с такой же проблемой.

Мне тоже интересно, удалось ли кому решить данный вопрос и на каком релизе?

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

Но проблему это по прежнему не решает. Пока в расширении полная копия составного типа то ни на что не ругается. Как только добавляем еще свой документ то все: "Значение контролируемого свойства Тип у объекта ОпределяемыйТип.ВладелецФайлов не совпадает со значением в расширяемой конфигурации".
Отключение проверки значения убирает ошибку и даже пишет, что расширение подключено, но состав составного типа остается как в основной конфигурации.
Пытался побороть аналогичную проблему на 8.3.12.1685

Изучая, расширения конфигураций, столкнулся со странной проблемой Вот, пример:

- В основной конфигурации находится справочник «А» и «Реквизит1», ссылающийся на этот справочник
- В расширении «Расш1» добавлен ещё один справочник «Расш1_Б»
- «Реквизит1» справочника «А» импортирован в расширение «Расш1»
- В расширении «Расш1», в «Реквизит1» справочника «А» добавлен тип - справочник «Расш1_Б» из расширения
- В расширении «Расш1», в «Реквизит1» справочника «А» снята галочка «Проверять значение при подключении расширения» (кстати так и не понял сакраментального смысла её наличия - что делает ясно - но зачем это нужно - мне не понято)
Проблема: В режиме «1С Предприятие» «Реквизит1» справочника «А» не может иметь значения ссылки на справочник «Расш1_Б» (хотя в расширении его тип был расширен)

Аналогично:
- В основной конфигурации ввожу определяемый тип «Т» типа справочник «А»
- В основной конфигурации в справочник «А» добавляю «Реквизит2» типа «Т»
- В расширение «Расш1» импортирую определяемый тип «Т» и «Реквизит2» справочника «А»
- В расширении «Расш1» расширяю тип определяемого типа «Т» типом «Расш1_Б»
- В расширении «Расш1» снимаю галочку "Проверять значение при подключении расширения" у свойства "Типа" определяемого типа «Т»
Проблема: В режиме «1С Предприятие» «Реквизит2» не может иметь значения ссылки на справочник «Расш1_Б» (хотя в расширении его тип определяемый тип «Т» был расширен)

Что я делаю не так? Или в расширениях конфигураций нельзя расширять типы импортированных элементов метаданных типами из расширения?
Впрочем, я расширил в расширении «Реквизит1» справочника «А» типом справочника «В» из основной конфигурации - и всё равно не могу присваивать Реквизиту1 значения справочника «В» (если расширять типами из расширения – всё то же самое – не расширяются).

Ну, если добавить в расширение «Расш1» в справочник «А» «Реквизит3» - то ему можно назначить все доступные справочники и можно будет устанавливать их значения.

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

Проверено на платформах 1С Предприятие следующих версий: 8.3.13.1513, 8.3.15.1700, 8.3.16.942 (beta), режимы совместитмости соответсующие (в т.ч. у расширения)

прочитал три строки в (0) и шокирован.

Не понимаю, что там не понятно написано - даже базу приложил - всё по пунктам разложил.

Но хорошо, если в двух словах:
Почему я в расширении не могут для импортированного в расширение реквизита основной конфигурации расширить его тип новым типом?

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

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


Начиная с версии «1С:Предприятие 8.3.20», расширения будут поддерживать изменение определяемых типов, планов видов характеристик и добавление предопределенных элементов в справочниках. А наборы типов будут формироваться с учетом добавленных в расширениях объектов.

Поддержка определяемых типов

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

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


Поддержка наборов типов

Начиная с версии 8.3.20 в наборах типов станут доступны ссылки на объекты, добавленные в расширениях.

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

Кроме того, в реквизит типа ЛюбаяСсылка, СправочникСсылка, ДокументСсылка и тому подобные, можно будет помещать ссылки на объекты типов, определенных в расширениях. Ранее после присвоения таким реквизитам ссылок на объекты типов, определенных в расширениях, значение реквизита становилось равным Неопределено.

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

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

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

С полным текстом заметки о новых возможностях работы с расширениями можно ознакомиться в официальном технологическом блоге «1С».

Начиная с версии «1С:Предприятие 8.3.20», расширения будут поддерживать изменение определяемых типов, планов видов характеристик и добавление предопределенных элементов в справочниках

Ну наконец-то. Почти 10 лет уже как расширения были анонсированы (если не ошибся в подсчётах, хотя тут ещё от какого момент считать)! Ниже речь в основном о заимствованных в расширение объектов метаданных.

Задолбало уже ограничение на расширение "Определяемого типа" (если в исходной конфигурации тип задана через "Определяемый тип" то до 20 релиза всё - хана - с ним ничего нельзя сделать в расширении - в лучше случае снять требование на этот тип и задать типы заново, уже без "Определяемого типа" - и получать предупреждения при старте приложения).

Описания обоснования того, что компания 1С снизошла до этого - просто умиляет (и официальное и инфостартовское обоснования)! Её архитекторам просто невдомёк, что типовые конфигурации сейчас активно применяют "Определяемый тип", где находятся ссылочные типы (например виды документов), которые назначают разным "реквизитам" разных видов метаданных, для обобщения описания архитектуры (и это действительно весьма удобно и правильно - повторное использование определения составных типов). И когда в расширении нужно включить в эту архитектур дополнительные виды метаданных - возникает полная ж. т.к. с определяемым типом в расширении ничего сделать нельзя. Даже нельзя совместить в реквизите типы из "Определяемый тип" с любым другим типом(и). И отказаться от этого "Определяемого типа" в реквизите в расширении тоже "неудобно" - из-за встроенного механизма контроля типов.

Хорошо хоть с недавних пор вообще можно стало в некоторых объектах метаданных расширять типы - а то год назад возмущался - что в расширениях и расширить то почти ничего нельзя!

А вот в Общие команды когда завезут возможность расширять тип параметра? Ведь там можно назначить тип через "Определяемый тип" - расширение Определяемого типа в этом случае расширит тип параметра команды? Это тоже очень важная потребность!

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

Если бы ещё и привязка к таким обобщённым типам в основной конфигурации (где есть такая возможность) сразу на расширения распространялась - вообще лепота была бы (сейчас такие обобщённые типы в конфигурации не видят и не включают в себя типы указанных видов из расширений - их в расширениях нужно дополнительно включать в описание типов таких реквизитов, что ОЧЕНЬ НЕУДОБНО и логически неправильно).


Кроме того, в реквизит типа ЛюбаяСсылка, СправочникСсылка, ДокументСсылка и тому подобные, можно будет помещать ссылки на объекты типов, определенных в расширениях. Ранее после присвоения таким реквизитам ссылок на объекты типов, определенных в расширениях, значение реквизита становилось равным Неопределено

А ну да - это, наконец-то, тоже будет - Ура

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

Ну спасибо. А когда предопределённые элементы можно добавлять будет в заимствованные объекты метаданных? Там это тоже очень даже бывает необходимо

(1)Ещё заметил, что в 8.3.19 если реквизит (или измерение - это не принципиально) добавлен в расширении (а не заимствован из основной конфигурации) - то ему нельзя назначить обобщённый тип (например "СправочникСсылка") или "Определенный тип".
А если реквизит заимствован - то можно (ну разве что контролируемые тип должны сочетаться)!
Вот такая, вот, не справедливость :-(

А ещё плохо и то, что, "Определяемый тип" не сочетается с другими типами при определении составного типа - т.е. реквизиту можно назначить только один "Определяемый тип", и не удастся сочетать его с другими типами - причём дойти может до того, что нельзя будет реструктуризовать конфигурацию без удаления всего расширения (даже если настроить типы абсолютно идентичными) - страшная ошибка "В результате расширения тип будет содержать один или несколько типов, которые не могут быть включены в составной тип данных: Справочник.Справочник1.Реквизит.Реквизит1()" (в обоих конфигурациях тип указан один и тот же "Определяемый тип")

(1)Ещё заметил, что в 8.3.19 если реквизит (или измерение - это не принципиально) добавлен в расширении (а не заимствован из основной конфигурации) - то ему нельзя назначить обобщённый тип (например "СправочникСсылка") или "Определенный тип".
А если реквизит заимствован - то можно (ну разве что контролируемые тип должны сочетаться)!

Как я понял в 8.3.20 поправили.
Раньше нельзя было грузить

А когда сделают по умолчанию перенос расширений в РИБ?

(3)Может и никогда - по-моему компания 1С уже 1 забила на РИБ - непопулярная и тупиковая ветвь платформы оказалась; по сравнению современными тенденциями развития инфраструктуры приложений РИБ уже устарел, и у него нет обозримого будущего.
Да и в нём и так были проблемы с передачей основной конфигурации. А Вы хотите чтобы там были ещё проблемы с передачей расширений, у которых есть проблемы с работой и без РИБ.
Советую отказать от РИБ (тем более если управляемое приложение, раз говорите о расширениях конфигураций, хотя это не обязательно) - варианты отказа от РИБ:

1. Перейти на централизованную работу в одной конфигурации (тонкие/web/мобильные клиенты, накрайняк - Терминальный сервер - хотя почему накрайняк - очень даже предпочтительное решение - тем более что для экономии можно всё бесплатно поднять на Linux, а клиенты 1С работают на Linux даже в неуправляемом приложении - такой вариант на работе у меня, кстати, рассматривают)

2. Перейти на обмен данными вне РИБ (через XML, для управляемых приложений лучше на типовом протоколе обмена 1С Enterprise Data - т.е. настроить обмен через 1С Конвертацию данных 3.0), ну а конфигурации и расширения синхронизировать отдельно скриптами - в этом же нет каких-то особых сложностей (наверняка сейчас расширения так и синхронизируете - если используете)
Возможен и гибридный вариант - вот так было у меня в прошлой компании - перешли с РИБ на XML синхронизацию (допиленный Универсальный обмен XML, для УПП) - но там в основном только упр учет какой-то синхронизировался, да справочники с документами - пару раз в день (это не каждые 5 минут - тут всё проще с изменениями в конфигурации разрулить). Все основные пользователи работали через терминальный сервер в одной базе.
Несколько удалённых "офисов" работали через Тонкий клиент (для них отдельно в УПП разработали нужные им формы в управляемом приложении) - но тогда такая работа была не очень удобной - там с интернетом туго было (использовали мобильный интернет в глубинке, но нужна была оперативность данных, тут даже РИБ не очень поможет).
Связь крупных удалённых офисов с Москвой была по выделенной Интернет линии - тут канал был стабильный.

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

Читайте также: