добавление реквизита на форму в расширении 1с

Доработка управляемых форм на примере типовой УТ 11 – нюансы расширений

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Представьте: Вы доработали форму, потом в новом релизе добавили реквизиты – но они на форме не отображаются!…

Смотрите в Конфигуратор – есть. Видимость, доступность – все Ok.

Тем не менее – на форме новые реквизиты не видно, хотя они есть!

Добавили (заимствовали) форму Заказа в расширение. Вывели на заимствованную форму добавленные в расширении реквизиты. Все хорошо…

Выходит новый релиз конфигурации поставщика, где у документа добавлен КакойТоНовыйРеквизит, который выведен на форму документа в конфигурации поставщика.

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

И с этим надо что-то делать:)

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

Дело в том, что платформа использует сразу 3 формы:

И как они взаимодействуют – мы разберем в новом видео.

12 минут видео, 100% полезности 🙂

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Профессиональная доработка 1С не должна вызывать проблем с обновлениями

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

Musthave для внедренцев.

Комментарии / обсуждение (70):

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

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

Извиняюсь, пока писал сам разобрался.

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Алексей, хорошо – бывает 🙂

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Добрый день!
Спасибо.
Хорошая новость, потому что пути к данным действительно слетают, это мешает использовать расширения на практике.

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Добрый день!
1-3. Да, такое поведение воспроизводится и на платформе 8.3.16.
Можно вот такой способ обхода использовать. В редакторе формы в расширении добавить новый элемент (Ins с клавиатуры или нажать кнопку Добавить), выбрать его тип – Таблица, затем в свойстве ПутьКДанным указать Объект.ИмяТабличнойЧасти.
После этого система запросит, нужно ли добавить колонки. На командной панели будут отображаться кнопки, а в списке событий – будут доступны все события, в том числе и ПриАктивизацииСтроки.
4. Тоже встречается такое. По наблюдениям – что-то происходит со свойством ПутьКДанным. Если его перевыбрать у проблемных элементов, они снова начинают отображаться. Еще иногда помогает закрыть конфигуратор, снова открыть, нажать кнопку Обновить расширение формы. Точной закономерности пока не уловил.

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

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Добрый день!
У меня воспроизводится подобное поведение, но как-то нестабильно – иногда система может разрешать редактирование имени добавленной в расширении колонки, хотя чаще действительно не дает редактировать.
Нашел вот такую опубликованную ошибку – https://bugboard.v8.1c.ru/error/000051727
В расширении конфигурации, в форме, свойства добавленных колонок табличной части объекта не доступны для редактирования.

Так что попробуйте платформу посвежее использовать.

ААААААААААААААААААААААААААААААААА.
О боги… я раз пять то удаляла форму из расширения, то снова добавляла. 1С:Предприятие 8.3 (8.3.14.1854). И все таки мой реквизит ТЧ документа там появился…
Спасибо за статью и видео – без них я бы не справилась.

Пожалуйста!
Интересного обучения!

Добрый день! Подскажите, а почему нельзя удалить реквизит (колонка реквизита формы “тфПараметрыНазначения” с типом ТаблицаЗначений, которое было заимствовано из основной конфигурации), который я добавила в расширение.
Правильно ли я сделала, когда удалила сам реквизит “тфПараметрыНазначения” и добавила его в расширение обратно?

Добрый день!
Тут все зависит от версии платформы. Если версия младше 8.3.14, то удалить колонку таблицы значений можно, иначе – нет. Это связано с тем, что в платформе 8.3.14 изменился механизм работы с формами – при заимствовании формы происходит заимствование только элементов формы (реквизиты, команды и параметры формы не заимствуются). Можно предложить вариант поработать со свойством видимости колонки на форме и при этом ее не удалять из таблицы значений.

Ольга, спасибо за ответ. Да, платформа 8.3.15.
Мне этот реквизит совсем не нужен (реализовала задачу по другому), и добавляла я только его одного, поэтому вариант, который я написала (удалила сам реквизит “тфПараметрыНазначения” и добавила его в расширение обратно) мне подошёл. Проверила работу в данной форме, вроде ничего не поломалось.
Конечно, если бы я добавила много реквизитов, а потом захотела бы удалить один, то получается при таком подходе (удалении реквизита и добавлении его обратно) пришлось бы остальные добавленные мной реквизиты обратно добавлять, что не удобно, но всё таки правильней, а вариант с видимостью на мой взгляд не очень корректный, так как вызывает в последующем непонимание зачем был добавлен данный реквизит и наверно затрачивает дополнительный объем памяти.

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

Здравствуйте!
8.3.14.1779, ЕРП 2.4.8.84
Такая проблема – есть расширения, в которых не активна кнопка “добавить в расширение”.
В чём может быть проблема?

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Добрый день!
У меня не воспроизвелось. Возможно, зависит от типа объекта, который Вы пытаетесь добавить в расширение. Или проблема конкретного релиза платформы.

А как дружит расширение с конвертацией данных? Если я создал расширение, добавил в нём новый реквизит в документ, а потом выгрузил информацию о структуре информационной базы – попадёт туда расширение?

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Добрый день!
В тестовую конфигурацию загрузил расширение, в котором в документе добавил реквизит.
При помощи обработки MD82Exp.epf из Конвертации данных выгружаю структуру конфигурации в xml-файл. В полученном файле новый реквизит из расширения присутствует.

А что если ситуация интереснее?! Вы только добавили реквизиты в только что созданную форму расширения и они не показываются. В чем дело если сохраненная форма не причем?

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Добрый день!
Возможно, дело в правах доступа.

Здравствуйте. Платформа 8.3.14, Добавил в расширение заимствованный объект “ПодразделенияОрганизаций”, добавил в него свой реквизит “GC_Кластер”. Заимстовал форму элемента, пытаюсь вывести на форму добавленный реквизит, но в реквизитах объекта на форме его попросту нет. Раньше вроде бы таких проблем не было, сейчас как то иначе это делается?

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Добрый день!
В конструкторе формы добавляю Объект в расширение:
добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.
После этого на форму можно вынести созданный в расширении реквизит:
добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

1. Взял последнюю на сегодняшний день платформу – 8.3.15.1489.
Заимствовал форму справочника в расширение, добавил новый реквизит формы. После этого добавил Объект в расширение.
Реквизит формы остался на месте:
добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.
Попробуйте для теста повторить Ваши действия на чистом расширении под свежей версией платформы.

2. На этой странице нельзя добавлять скриншоты, только на страницах Мастер-группы.

Недопонимание.
1. Создаю новое расширение (единственное)
2. В расширение добавляю заимствованием справочник “Подразделения организаций”, объект и форму объекта
3. Захожу в расширении в объект “Подразделения организаций” и добавляю в него 2 реквизита – Реквизит1, Реквизит2
4. Захожу в расширении в форму объекта, нажимаю правой кнопкой мыши по корню “Объект”, жму добавить в расширение (без этого нет возможности вывести на форму добавленные мной реквизиты, см. пункт 3). После данного действия, элементов на заимствованной форме становится раза в 2 меньше чем было до.
Как мне кажется с формы исчезают элементы, которые не были добавлены заимствованием в расширение. Например есть в реквизитах формы набор записей регистра сведений (типовой реквизит), а сам регистр сведений в расширение я не добавлял. При выполнении вот этого действия (нажимаю правой кнопкой мыши по корню “Объект”, жму добавить в расширение) данный реквизит пропадает с формы в расширении.
Если в расширении в форме объекта нажать правой кнопкой по корню “Объект” и нажать удалить, а затем обновить форму расширения из конфигурации, реквизит снова появляется на форме.
5. Если мои догадки и пункта 4 верны, то получается не очень весело, например на форме есть 50 типовых реквизитов, которые ссылаются на разные справочники, регистры сведений, измерения регистров сведений, нужно пройтись по конфигурации и руками подобавлять каждый такой объект в расширение.

Конфигурация Зарплата и управление персоналом КОРП, редакция 3.1 (3.1.10.50), платформа 8.3.14.1565

Посидел немного поковырялся еще
1. Создаю новое расширение (единственное)
2. В расширение добавляю заимствованием справочник “Подразделения организаций”, объект и форму объекта
3. Захожу в расширении в объект “Подразделения организаций” и добавляю в него 2 реквизита – Реквизит1, Реквизит2
4. Захожу в расширении в форму объекта, нажимаю правой кнопкой мыши по корню “Объект”, жму добавить в расширение (без этого нет возможности вывести на форму добавленные мной реквизиты, см. пункт 3). После данного действия, элементов на заимствованной форме становится раза в 2 меньше чем было до.

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

Например имя реквизита – “ПроцентСевернойНадбавки”, синоним – “% северной надбавки”, нажимаю правой кнопкой мыши по корню “Объект”, жму добавить в расширение, путь к данным слетает, прописываю руками путь к данным, реквизит вновь отображается на форме, но с синонимом “ПроцентСевернойНадбавки”

Источник

1С Дополнительные реквизиты на форме при помощи расширения

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

1) Выносим в расширение документ документ «Реализация товаров и добавляем реквизит «ПокупкаССайта» в реквизиты формы. Да! именно в реквизиты формы, а не документа. В настоящий момент платформа 1С не дает добавлять в расширения реквизиты документа (но обещают). Перетаскиваем реквизит в элементы и обязательно ставим галочку на «АктивизироватьПоУмолчанию» — иначе на форме при запуске не отобразится:

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

И далее создадим обработчики открытия формы и закрытия в которых реализуем чтение из регистра и запись в этот регистр:

Источник

Реквизиты в расширении и изменение формы.

А что, там все так печально сейчас? Расширения же еще с бородатых 8.3.6 (а может и раньше) платформ ввели

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

В режиме 1С:Предприятие происходит формирование результирующего объекта объединением расширяемого и всех расширяющих объектов. Процесс объединения работает следующим образом:

1. Выполняется объединение расширяемой конфигурации и первого (по порядку регистрации) расширения.

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

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

1. Если изменений нет ‑ компонента берется из расширяемого объекта;

2. Если изменение есть только в расширяемой форме ‑ компонента берется из расширяемой формы;

3. Если изменение есть только в расширяющей форме ‑ компонента берется из расширяющей формы;

4. Если изменение есть и в расширяемой форме и в расширяющих формах ‑ компонента берется из расширяющей формы.

Сопоставление компонентов управляемой формы выполняется по имени соответствующего элемента.

Вышеописанный режим не действует:

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

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

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

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

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

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

Если без конфликтов порядок определить нельзя, используется следующий алгоритм:

● Исходным выступает список элементов расширения в порядке, который установлен в расширении.

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

● В соответствии с порядком элементов в расширении, определяется, какой элемент является следующим ‑ существовавший или добавленный в расширении:

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

● Если элемент или элементы, добавленные в расширении, то элемент основной конфигурации добавляется после них.

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

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

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

● Новые элементы основной конфигурации, добавленные в конец списка, добавляются перед новыми элементами расширения, добавленными в конец списка.

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

● Удаляются элементы, которые были удалены в основной конфигурации по сравнению с сохраненной версией.

Источник

Внесение изменения в формы с помощью расширений, без заимствования формы.

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

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

Пример использования заимствованной формы и формы-шаблона

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Дополнения от 13.09.2019

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Краткая инструкция на примере добавленных реквизитов в документ «Поступления на расчетный счет» конфигурации «Бухгалтерия предприятия, редакция 3.0 БИТ.ФИНАНС 3.1»

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

в результате на панели действий формы должна появиться ссылка «Расширение формы»

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

в результате расширенная форма стала выглядеть так,

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

При редактировании данные формы расширения переносятся в основную форму.

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

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

Предполагаю, что должно работать на любой конфигурации (не проверял), разрабатывал на платформе 1С:Предприятие 8.3 (8.3.13.1809).

Источник

1С расширение конфигурации. Адаптация.

Механизм расширения конфигурации 1C

Приветствую уважаемый читатель, в данной статье предлагаю ознакомиться с Механизмом расширения конфигурации 1С 8.3, в частности мы познакомимся с его работой в режиме Адаптация, а также рассмотрим пример программного изменения Формы объекта при помощи расширения. Ну, а сейчас немного теории…

Как указано в описании: «Механизм расширения конфигурации – это специальный механизм, предназначенный для доработки расширяемой конфигурации без изменения этой конфигурации (в том числе без снятия с поддержки).»

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

При разработке расширений следует учитывать следующие факты:

— в системе могут функционировать более одного расширения.

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

Расширение может иметь одно из следующих назначений:

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

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

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

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

Ограничения использования расширений:

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

— Подписки на события.

— Функциональные опции и параметры функциональных опций.

— Бизнес-процессы и задачи.

— Внешние источники данных.

Не поддерживается расширение следующих объектов:

— Нельзя создавать подчиненные подсистемы.

— Если объект не может быть собственным объектом расширения его расширение также не поддерживается.

— Состав значений перечислений;

Не поддерживается добавление реквизитов и табличных частей для:

— План видов характеристик;

— План видов расчетов.

Не поддерживается изменение структуры регистров всех видов. Поддерживается только расширение состава регистраторов.

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

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

Как добавить расширение конфигурации 1С 8.3

Предлагаю рассмотреть задачу добавления нового Справочника «Категория должности по Классификатору Предприятия» с выводом его значения на Форму Справочника Должности, на базе Конфигурации ЗУП 3.1

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

В конфигураторе необходимо зайти в меню «Конфигурация» и выбрать пункт «Расширения конфигурации». Откроется окно со списком расширений (если они есть). Далее нажмем кнопку «Добавить». Мы увидим диалоговое окно создания расширения:

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Стоит отдельно выделить поле Назначение – необходимо выбрать его значение в зависимости от решаемой задачи – т.к. мы выполняем добавление объектов по требованиям конкретного заказчика – нам подойдет вариант «Адаптация».

После нажатия на кнопку «ОК» — двойным кликом по появившейся строке откроем Конфигурацию расширения. Мы увидим практически пустое дерево конфигурации.

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

— Интерактивно, добавив Форму «ФормаЭлемента» в расширение

— Программно, не добавляя Форму Справочника в расширении, а добавив подходящую процедуру, вызываемую в обработчике Формы «ПриСозданииНаСервере» в расширение.

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

Интерактивное изменение Формы в расширении.

Для того чтобы вывести Реквизит на форму интерактивно: необходимо добавить саму Форму «ФормаЭлемента» в расширение. Обращу ваше внимание на следующий момент – для того чтобы появилась возможность Интерактивного добавления Реквизита объекта на форму необходимо сам Объект тоже добавить в расширение.

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Далее добавим новый Реквизит в подходящую Группу на форме.

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Запустив 1С в режиме Предприятия убедимся, что новый Справочник появился в интерфейсе

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

А открыв элемент справочника Должности, увидим, что добавляемый реквизит Категория должности также в нужном месте.

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Программное изменение Формы в расширении.

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

Предлагаю воспользоваться одной из процедур вызываемых в обработчике Формы «ПриСозданииНаСервере», в которую передается наша Форма в качестве параметра например УправлениеСвойствами.ПриСозданииНаСервере.

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Перейдем в Общий модуль УправлениеСвойствами где находится данная процедура, и кликнем правой кнопкой мыши по процедуре ПриСозданииНаСервере. В выпадающем меню выберем пункт «Добавить в расширение»

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

После проделанных процедур увидим что в Расширение был добавлен общий модуль УправлениеСвойствами и процедура Расш1_ПриСозданииНаСервере с аннотацией &После(«ПриСозданииНаСервере»)

Далее в добавленную процедуру поместим следующий код:

Запустим 1С в режиме предприятия и убедимся, что на форме также появился добавленный реквизит «КатегорияДолжности (пр.)»

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

Готовое расширение можно выгрузить в файл перейдя в конфигураторе в меню «Конфигурация» и выбрать пункт «Расширения конфигурации». В открывшемся списке расширений по правой кнопкой мыши можно вызвать выпадающее меню, либо выбрать пункт командной панели «Конфигурация» и выбрать пункт «Сохранить конфигурацию в файл…». На выходе мы получим Файл типа *.cfe который можно передать заказчику.

добавление реквизита на форму в расширении 1с. добавление реквизита на форму в расширении 1с фото. картинка добавление реквизита на форму в расширении 1с. смотреть фото добавление реквизита на форму в расширении 1с. смотреть картинку добавление реквизита на форму в расширении 1с.

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

Источник

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

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