Как изменить тип реквизита в расширении 1с

В платформе 8.3.18 произошли значительные изменения, связанные с механизмом расширений. Например, теперь при помощи расширений можно изменять типы реквизитов из основной конфигурации!

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

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

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

Какие преимущества это дает?

  • К примеру, когда не хватает типовой длины строкового поля, ее можно можно увеличить с помощью расширения – то есть, не снимая конфигурацию с поддержки.
  • Можно увеличить длину числового реквизита в документе, когда разработчики типовой задали недостаточную длину для хранения данных конкретного предприятия.
  • Также можно в реквизит составного типа добавить еще один тип данных при помощи расширения. Например, разработчик типовой предполагает, что в реквизите можно указывать только документы «Заказ клиента» и «Реализация». А на проекте для реализации требований заказчика нужно добавить в этот реквизит еще «Заказ поставщику». Это можно теперь сделать при помощи расширения, что очень удобно.

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

Кроме того, разобраны и другие полезные возможности расширений:

  • Объединение расширений с cfe-файлом из командной строки
  • Работа платформы при отключенных расширениях — когда при старте сеанса были подключены не все расширения, изменяющие структуру хранения данных
  • Новая логика проверки применимости расширения, использующего аннотацию ИзменениеИКонтроль
  • И другие полезные «фишки»…

Общая длительность видео – полтора часа. Приятного просмотра! :)

Видео 1 – Вступление

Ключевые моменты видео:

00:00 – Узнаем, какие темы разбираются в занятии.

Видео 2 – Объединение расширений

Ключевые моменты видео:

00:00 – При помощи какой команды пакетного режима запуска конфигуратора можно выполнять сравнение расширения с файлом на диске?
00:45 – Где на сайте ИТС найти описание параметров командной строки
04:05 – Как вручную в конфигураторе выполнить объединение расширения с файлом на диске
05:10 – Какие параметры нужно указывать в командной строке
06:40 – Почему при объединении расширения из командной строки возникает ошибка “Каталог не обнаружен”
07:50 – Как работает сохранение настроек объединения в файл
12:50 – В каких случаях на практике можно применять объединение расширения с файлом на диске

Видео 3 – Расширение типов реквизитов

Ключевые моменты видео:

00:00 – Как убедиться, что в платформе 8.3.17 и ранее нельзя изменить тип реквизита при помощи расширения
01:20 – Как установить признак контролируемого или проверяемого свойства в расширении

Видео 4 – Расширение строковых реквизитов

Ключевые моменты видео:

00:00 – Как в платформе 8.3.18 увеличить длину строкового реквизита при помощи расширения
01:20 – Какие изменения произошли в панели свойств объекта расширения
03:20 – Можно ли уменьшить длину строкового реквизита при помощи расширения
04:20 – Происходит ли потеря данных при уменьшении длины строкового реквизита с помощью расширения

Видео 5 – Расширение числовых реквизитов

Ключевые моменты видео:

00:00 – Как в платформе 8.3.18 изменить длину и точность числового реквизита при помощи расширения
01:50 – Можно ли уменьшить длину и точность числового реквизита при помощи расширения

Видео 6 – Изменение длины кода

Ключевые моменты видео:

00:00 – Можно ли изменить длину кода и наименования справочника при помощи расширения
01:20 – Как в расширении установить признак контролируемого или проверяемого свойства для длины кода и наименования справочника
02:20 – Можно ли изменить длину номера документа при помощи расширения

Видео 7 – Формирование результирующего типа

Ключевые моменты видео:

00:00 – Почему нельзя уменьшить длину строкового реквизита при помощи расширения
00:50 – Каким образом при расширении типа реквизитов получается составной тип данных
03:20 – Как при помощи расширения добавить дополнительные типы в тип данных реквизита из основной конфигурации
04:20 – Как платформа обеспечивает сохранность данных при расширении типов реквизитов

Видео 8 – Примеры расширения типа

Ключевые моменты видео:

00:00 – Какой тип данных в результате будет иметь реквизит, если его тип изменяет одновременно несколько расширений
02:15 – Как ведет себя платформа при отключении расширения, изменяющего тип данных реквизита основной конфигурации
04:30 – Как при помощи консоли запросов проверить результирующую длину строки реквизита
06:00 – Как воспроизвести пример потери данных при изменении типа данных в расширении

Видео 9 – Свойство Тип

Ключевые моменты видео:

00:00 – Как сделать в расширении свойство Тип одновременно и контролируемым, и модифицируемым
01:30 – Что означает признак контролируемости свойства при расширении типа данных реквизита
02:50 – Каким образом формируется всплывающая подсказка для свойства Тип

Видео 10 – Ограничения составного типа

Ключевые моменты видео:

00:00 – Какие типы данных нельзя включать в составной тип
02:00 – Почему при помощи расширения нельзя изменить тип строкового реквизита на ХранилищеЗначения

Видео 11 – Ограничения расширений

Ключевые моменты видео:

00:00 – Можно ли расширить тип данных для общего реквизита
00:50 – Можно ли при помощи расширения изменить тип реквизита, ссылающегося на внешний источник данных
02:50 – Можно ли расширить тип данных определяемого типа
04:30 – Какие ограничения существуют при работе с планом видов характеристик

Видео 12 – Типовые конфигурации

Ключевые моменты видео:

00:00 – Можно ли в типовой конфигурации УТ 11 воспользоваться расширением типов данных
01:20 – Какой режим совместимости необходим для расширения типов данных
02:20 – Как использование определяемых типов усложняет использование расширения типов

Видео 13 – Отключенные расширения

Ключевые моменты видео:

00:00 – Как ведет себя система, когда при старте сеанса подключены не все расширения, изменяющие структуру хранения данных
01:00 – Как работают предыдущие версии платформы в таком случае
03:40 – Какие изменения произошли в платформе 8.3.18
04:10 – Какие особенности существуют при работе со справочниками, документами, планами обмена
10:40 – Какие особенности существуют при работе с табличными частями
15:50 – Какие особенности существуют при работе с регистрами

Видео 14 – Изменение и контроль

Ключевые моменты видео:

00:00 – Какие изменения произошли в механизме проверки применимости расширения, когда в нем используется аннотация ИзменениеИКонтроль
00:40 – Как платформа 8.3.18 трактует добавленные (удаленные) пустые строки и строки, состоящие только из пробелов и символов табуляции
02:40 – Как восстановить соответствие метода расширения с методом основной конфигурации
03:50 – Как работает проверка применимости расширения на платформе 8.3.18
04:30 – Как исправить синтаксическую ошибку, возникшую в расширении

 

Смена типа данных у реквизитов в расширении

Я
   NIGHTHUNTER

19.08.22 — 10:04

Есть документ, добавлен в расширение. Нужно увеличить размерность числа у двух полей.

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

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

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

  

Партнерская программа EFSOL Oblako

   NIGHTHUNTER

1 — 19.08.22 — 10:07

Кажется это все создается программно.

И не связанно с визуальными, элементами , реквизитами.

Как тогда изменить размерность?

   NIGHTHUNTER

2 — 19.08.22 — 10:07

Элементы.Вставить(«ХХХ_» + ТабличнаяЧасть.Имя + Реквизит.Имя + «1», Тип(«ПолеФормы»), Элемент, ПредПолеДатаСклада);

                    НовыйЭлемент = Элементы.Найти(«ХХХ_» + ТабличнаяЧасть.Имя + Реквизит.Имя + «1»);

   NIGHTHUNTER

3 — 19.08.22 — 10:16

Вот, программно создается элемент.

МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, Реквизит.Тип, «ХХХ_» + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));    

У него в Реквизит.Тип, квалификатор числа, разрядность дробной части 1. как задать 3 ?

Видимо нужно отлавливать нужные элементы и менять им это.

   NIGHTHUNTER

4 — 19.08.22 — 10:20

как правильно вот эту единицу, изменить на 3 ?

http://joxi.ru/v29b7JoC4vLEOA

   6awkup_true

5 — 19.08.22 — 10:24

ТипЧисло = Новый ОписаниеТипов(«Число»,,, Новый КвалификаторыЧисла(10, 3, ДопустимыйЗнак.Неотрицательный));

вот только если в объекте 2, то не сохранит

   NIGHTHUNTER

6 — 19.08.22 — 10:29

Хотел так сделать, не получилось. Поле объекта не доступно для записи

                Если Реквизит.Имя = «Количество» или Реквизит.Имя = «КоличествоСклад» Тогда

                    Реквизит.Тип.КвалификаторыЧисла.РазрядностьДробнойЧасти = 3;

                КонецЕсли;                    

                МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, Реквизит.Тип, «ХХХ_» + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));

   NIGHTHUNTER

7 — 19.08.22 — 10:30

(5) В объекте это где? Визуально то есть? Там было 1 знак после запятой, я сделал 3 .

   NIGHTHUNTER

8 — 19.08.22 — 10:30

(5) Мне нужно 15.3 .

   NIGHTHUNTER

9 — 19.08.22 — 10:31

(5) То есть тут, нужно задавать не Реквизит.Тип, а предварительно созданный ТипЧисло ?

МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, Реквизит.Тип, «ХХХ_» + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));

   NIGHTHUNTER

10 — 19.08.22 — 10:33

(5) И после 15, наверное точка, не запятая.

   NIGHTHUNTER

11 — 19.08.22 — 10:38

Ошибка

Несоответствие типов (параметр номер ‘2’)

                Если Реквизит.Имя = «Количество» или Реквизит.Имя = «КоличествоСклад» Тогда

                    ТипЧисло = Новый ОписаниеТипов(«Число»,,, Новый КвалификаторыЧисла(15.3, ДопустимыйЗнак.Неотрицательный));                    

                    МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, ТипЧисло, «ХХХ_» + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));    

                Иначе

                    МассивРеквизитов.Добавить(Новый РеквизитФормы(Реквизит.Имя, Реквизит.Тип, «ХХХ_» + ТабличнаяЧасть.Имя, ТабличнаяЧасть.Синоним));    

                КонецЕсли;

   NIGHTHUNTER

12 — 19.08.22 — 10:39

(5) куда это задавать, то?

   NIGHTHUNTER

13 — 19.08.22 — 10:43

(5) Сработало. Нужна именно запятая там, не точка. Как я подумал.

  

6awkup_true

14 — 19.08.22 — 10:45

ТипЧисло = Новый ОписаниеТипов(«Число»,,, Новый КвалификаторыЧисла(10, 3, ДопустимыйЗнак.Неотрицательный));

    
    Элементы.Реквизит1.ОграничениеТипа = ТипЧисло;

    Объект.Реквизит1 = ТипЧисло.ПривестиЗначение(Объект.Реквизит1);

Проверяем возможность применения расширений конфигурации

Открываем конфигуратор и переходим к списку расширений конфигурации: Конфигурация => Расширения конфигурации. В списке расширений проверяем возможность применения всех расширений конфигурации: Действия => Проверка возможности применения расширений конфигурации.

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

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

Обновляем режим совместимости расширения конфигурации

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

Еще лучшим решением будет снятие контроля за режимом совместимости (система перестанет контролировать это свойство):

Исправляем ошибки изменения свойств объектов и их реквизитов

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

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

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

Обновляем формы в расширении конфигурации

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

Далее открываем нужную форму и нажимаем на кнопку «Обновить расширение формы»:

Переход на платформу 8.3.14 (и выше) и пересоздание расширения конфигурации

Фирма 1С с каждым релизом платформы развивает механизм расширений. Поэтому все расширения можно условно разделять на актуальные и устаревшие. Термин «устаревшие» означает устаревание внутренней структуры расширения относительно последних версий платформ. Первые расширения требовали включения в состав расширения большого количества объектов типовой конфигурации. Это означало, что очень часто такие расширения надо обновлять при обновлении типовой конфигурации. В версиях платформы 8.3.14 и выше добавлены механизмы, благодаря которым в расширение не нужно добавлять все объекты — фактически описываются и захватываются только нужные для доработки объекты типовой конфигурации. Поэтому если у Вас было разработано расширение на платформе 8.3.10 — 8.3.13 — его желательно переработать под актуальные версии платформы.

Если не получилось исправить ошибки?

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

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

2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

1

15.07.2021, 15:23. Показов 6803. Ответов 22


Здравствуйте, коллеги!
Кто сталкивался с расширениями, помогите, пожалуйста.
В УНФ в расширение из основной конфигурации заимствую документ Заказ покупателя и реквизит Номенклатура, который имеет составной тип данных (Строка, СправочникСсылкаНоменклатура). Сам справочник в расширение тоже позаимствовала с его реквизитами и формой элемента. В результате в расширение реквизит Номенклатура приобретает Определяемый тип ЛюбаяСсылка. Как это можно исправить? Вручную изменить тип данных нельзя.



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

15.07.2021, 16:40

2

НоваяВика, А кто сказал, что нельзя менять тип? Все прекрасно меняется на нужный



0



2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

15.07.2021, 16:59

 [ТС]

3

polax, А как быть с этим?

Миниатюры

1С: УНФ Расширение - составной тип данных реквизита
 

1С: УНФ Расширение - составной тип данных реквизита
 



0



2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

15.07.2021, 17:05

 [ТС]

4

polax, А как быть с этим?

Миниатюры

1С: УНФ Расширение - составной тип данных реквизита
 



0



2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

15.07.2021, 17:13

 [ТС]

5

polax, Может у меня прав недостаточно? Поменять режим совместимости я не могу.

Добавлено через 5 минут
Роль у меня — Администратор системы. Типовая.



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

15.07.2021, 17:26

6

НоваяВика, Действительно какая-то хрень. Объяснить не могу. Потому что не должно быть такого. Скрины ниже — как у меня

Миниатюры

1С: УНФ Расширение - составной тип данных реквизита
 

1С: УНФ Расширение - составной тип данных реквизита
 



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

15.07.2021, 17:48

7

НоваяВика, Проверил на 8.3.18 Действительно выдает таккую ошибку. Надо читать что про типы сказано в расширениях 8.3.18.

Добавлено через 8 минут
Предполагаю (точно пока НЕ знаю), что связано именно с Определяемыми типами (кстати, Любая ссылка — это тоно НЕ Определяемый тип) А вот НОменклатура (СправочникСсылка.Номенклатура) попал в определяемые типы. Видимо планируется создание ограничений доступа по номенклатуре. Работа с определяемыми типами в расширениях возможно только начиная с 8.3.18. Поэтому он и выдает такую ошибку. И видимо проверка идет по ответу на режим совместимости. Т.е. если проверка выдает режим совместимости 8.3.18 или Не использовать, разрешает работу с опр типом. Но это мои домыслы. При этом расширение созданное в 8.3.16 с измененным типом на нужный, прекрасно себя чувствует в 8.3.18



0



2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

15.07.2021, 17:58

 [ТС]

8

polax, Видимо, сначала нужно обновить платформу. У меня как раз 8.3.18.1433.

Миниатюры

1С: УНФ Расширение - составной тип данных реквизита
 



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

15.07.2021, 18:04

9

Вот что выцепил из описания нового в 8.3.18:

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

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

Добавлено через 3 минуты

Цитата
Сообщение от НоваяВика
Посмотреть сообщение

У меня как раз 8.3.18.1433.

У меня 8.3.18.1363 (т.е. рекомендованная ПРЕДЫДУЩАЯ платформа) и все тоже самое. Нет. Я уверен, что дело именно в том что написал постом выше. Не обращай внимание на тип заимствованного реквизита. Должно работать все как надо. Попробуй



0



2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

15.07.2021, 18:10

 [ТС]

10

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

Добавлено через 2 минуты

Цитата
Сообщение от polax
Посмотреть сообщение

У меня 8.3.18.1363 (т.е. рекомендованная ПРЕДЫДУЩАЯ платформа) и все тоже самое. Нет. Я уверен, что дело именно в том что написал постом выше. Не обращай внимание на тип заимствованного реквизита. Должно работать все как надо. Попробуй

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



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

15.07.2021, 18:16

11

НоваяВика, Кстати, если удалить ЛюбаяСсылка, расширение прекрасно сохраняется. Т.е. вообще не фиксируется возможность изменить тип



0



369 / 173 / 74

Регистрация: 04.03.2020

Сообщений: 659

15.07.2021, 19:06

12

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



0



2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

15.07.2021, 19:29

 [ТС]

13

Цитата
Сообщение от Scratchsv
Посмотреть сообщение

при заполнении записывать на всякий случай в старый.

Не поняла. Вы имеете ввиду, что в регистр запись делать на старый реквизит?



0



369 / 173 / 74

Регистрация: 04.03.2020

Сообщений: 659

15.07.2021, 19:53

14

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



0



2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

15.07.2021, 19:58

 [ТС]

15

Цитата
Сообщение от Scratchsv
Посмотреть сообщение

Старый нужно заполнять из нового только на случай отключения расширения.

Вот это предложение я и не понимаю. Как и где заполнять один реквизит из другого?



0



369 / 173 / 74

Регистрация: 04.03.2020

Сообщений: 659

15.07.2021, 20:13

16

Ну, где обычно заполняется номенклатура в документах.
Либо с формы, интерактивно. Из события ПриИзменении, либо при создании документа на основании другого.
Ну или экзотические варианты вроде загрузки из Битрикса, агент+, и прочих внешних источников.



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

15.07.2021, 20:19

17

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

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



1



2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

15.07.2021, 20:32

 [ТС]

18

Scratchsv, Давайте не примере. Вот в расширении документ Заказ покупателя с табличной частью Запасы. В табличной части есть реквизит Номенклатура (новый) с типом СправочникСсылкаНоменклатура. Так у меня все будет работать.
Далее отключаем расширение. Соответственно, моя доработка не работает, и в Заказ покупателя в реквизит Номенклатура тянется Номенклатура из СправочникаСсылкаНоменклатура из основной конфигурации.
Где (в каких случаях) мне может потребоваться реквизит, ранее заимствованный в расширение и переименованный в Номенклатура_Old?

Добавлено через 31 секунду
polax, Добавлено через 6 минут

Цитата
Сообщение от polax
Посмотреть сообщение

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

А это корректно будет работать? У меня сейчас так, но я думаю, что так делать не совсем правильно. Поэтому пытаюсь сделать, чтобы все реквизиты для запроса были в расширении.



0



1808 / 1228 / 442

Регистрация: 16.01.2015

Сообщений: 5,396

15.07.2021, 20:36

19

НоваяВика, Пример некорректный. Работает не так. Реквизит Номенклатура у тебя НЕ новый. Он есть в ТЧ, ты его заимствовала. Например, для использования где-то в коде расширения. Т.е. реквизит основной конфигурации и ЗАИМСТВОВАННЫЙ реквизит в расширении — это одно и то же. Вот если ты СОЗДАШЬ реквизит в расширении — это будет новый

Добавлено через 2 минуты

Цитата
Сообщение от НоваяВика
Посмотреть сообщение

но я думаю, что так делать не совсем правильно.

Неправильно думаешь. Хороший тон программиста, создать расширение, а потом «почистить» его удалив ВСЕ, кроме реально измененных объектов. Да. При проверке модулей будет выдавать ошибки, но работать будет. Реально критические ошибки не дадут сохранить расширение



0



2 / 2 / 1

Регистрация: 11.03.2021

Сообщений: 109

15.07.2021, 20:38

 [ТС]

20

polax,

Цитата
Сообщение от polax
Посмотреть сообщение

Вот если ты СОЗДАШЬ реквизит в расширении — это будет новый

Это я понимаю.

Добавлено через 1 минуту
polax,

Цитата
Сообщение от polax
Посмотреть сообщение

Неправильно думаешь. Хороший тон программиста, создать расширение, а потом «почистить» его удалив ВСЕ, кроме реально измененных объектов. Да. При проверке модулей будет выдавать ошибки, но работать будет. Реально критические ошибки не дадут сохранить расширение

Это хорошо! Тогда больше не буду мучить ни себя, ни вас.



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

15.07.2021, 20:38

20

Skip to content

1С, как добавить, изменить реквизит формы объекта через расширение

Как добавить, изменить реквизит формы через расширение

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

Вам необходимо выполнить следующие действия:

  • В дереве метаданных нажать правой кнопкой мыши на реквизит -> «Добавить в расширение» -> выбрать расширение;

  • Перейти в расширение конфигурации, открыть форму, в которую планируем добавить (или изменить) реквизит -> в области справа выделить реквизит -> нажать правую кнопку мыши -> «Добавить реквизит»;

Почему в новой платформе изменился данный механизм?

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

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

Связанные статьи

02.02.2021

Развитие расширений

Данная статья является анонсом новой функциональности.

Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.


Полное описание новой функциональности будет приведено в документации к соответствующей версии.


Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.20.1549

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

Поддержка определяемых типов, планов видов характеристик и общих реквизитов

В расширениях будут поддержаны определяемые типы.

Как это можно использовать?

Предположим, у нас есть конфигурация для автоматизации торговли. В ней есть определяемый тип Вес (Число (10,3)), который используется для определения веса продаваемых товаров (т.е. учет ведется с точностью до грамма).

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

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

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

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

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

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

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

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

Поддержка предопределенных в справочниках

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

Теги:
8.3.20 
расширения 

Понравилась статья? Поделить с друзьями:
  • Как включить рефрижератор на газели бизнес
  • Как изменить тип сообщества в вк на бизнес
  • Как влиться в компанию если ты стесняешься
  • Как измерить время работы программы python
  • Как внести изменение реквизитов в договоре