Простой механизм работы с объектами конфигурации с помощью внешних обработок

09.02.19

Разработка - Механизмы платформы 1С

Доступ к объекту конфигурации по-быстрому!

Всем добрый день!

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

ОБЪЕКТ

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

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

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

Но в нашей внешней обработке никто не мешает нам вывести данную табличную часть на форму и тем самым получить к ней доступ:

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

КАК ПОЛУЧИТЬ ДОСТУП К ОБЪЕКТУ?

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

Очень просто. Для этого в серверной процедуре или функции модуля формы существует замечательный метод: "ЗначениеВРеквизитФормы".

Т.е. мы можем написать такой вот код, чтобы "загрузить" в объект выбранное значение:

&НаКлиенте
Процедура ВыбратьСсылку(Команда)
    ПоказатьВводЗначения(Новый ОписаниеОповещения("ПриВыбореСсылки", ЭтаФорма, ), Объект.Ссылка, "Выберите значение", тип("СправочникСсылка.Контрагенты"));
КонецПроцедуры

&НаСервере
Процедура ПриВыбореСсылки(Рез, Доп) Экспорт 
    Если Рез = Неопределено Тогда Возврат
    Иначе
        ЗначениеВРеквизитФормы(Рез.ПолучитьОбъект(), "Объект");
    КонецЕсли;
КонецПроцедуры

Ну и "ВыбратьСсылку" - это обработчик команды, а "ПриВыбореСсылки" - оповещение сразу на сервере (раньше, кстати, писать для подобных серверных процедур "Экспорт" было необязательно, но в последнее время правила игры поменялись.

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

ЭПИЛОГ

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

Произвольный отбор при открытии формы любого динамического списка

Таблицы на управляемых формах: создание, расширение, управление

Подбор в управляемой форме - что может быть проще?

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

управляемые формы изменение объектов

См. также

Механизмы платформы 1С Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Про ООП в 1С и о том, как сделать свой код более кратким и выразительным при помощи использования текучего интерфейса (fluent interface).

03.02.2025    6934    bayselonarrend    126    

61

Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    9526    dsdred    61    

111

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    13892    bayselonarrend    21    

164

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    8393    dsdred    18    

82

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    30327    YA_418728146    33    

74
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. German_Tagil 43 10.02.19 06:58 Сейчас в теме
2. user612295_death4321 11.02.19 18:22 Сейчас в теме
3. German_Tagil 43 12.02.19 05:33 Сейчас в теме
(2) пометку ставлю чтобы не искать потом
5. starik-2005 3171 12.02.19 11:18 Сейчас в теме
(3) так можно в избранное добавить.
(4) по сцылке убогий велосипед? Не буду нажимать.
8. AGit1C 24.04.19 08:58 Сейчас в теме
(5) В таком стиле можно собрать цикл статей с примерами (отличными от примеров в тиражной литературе) и оформить в курс для начинающих осваивать разработку в 1С.
Плюс.
4. TMV 11 12.02.19 05:54 Сейчас в теме
(0) какой убогий велосипед получился.
Тыц
6. Dmtr666 14.02.19 07:25 Сейчас в теме
Инструменты разработчика-редактор объектов и динамический список
7. starik-2005 3171 14.02.19 10:10 Сейчас в теме
(6) в следующей статье расскажу, как сделать универсальный редактор объектов из внешней обработке пошагово с примерами кода )))
9. pvlunegov 160 10.12.20 06:47 Сейчас в теме
Убого! Делаем новую обработку. Создаем управляемую форму. В форме обработки добавляем новое поле с типом ЛюбаяСсылка. В режиме Предприятия открываем поле формы, выбираем исследуемый объект (например справочник.Номенклатура) абсолютно в любой конфигурации. В обработчике поля ПриИзменении пишем код в котором обращаемся к функции Метаданные(). Из этой функции вытягиваем циклами:
1. все реквизиты Объекта
2. Все табличные части объекта.
3. В каждой табличной части объекта опять же циклом (получается цикл в цикле) вытягиваем все реквизиты табличной части.
4. При необходимости можно у ссылочных реквизитов (когда реквизит есть ссылка на другой объект) через шаги 1-3 вытягивать всю вложенную информацию о Метаданных.

Всю вытащенную информацию (шаги 1-4) вытягиваем на форму, создавая необходимые таблицы.

Блин. Хорошая идея, надо по быстрому статейку написать с простой обработочкой.
user1503726; +1 Ответить
10. starik-2005 3171 10.12.20 11:46 Сейчас в теме
(9) ну так Вы тут текста на парочку статей накидали - могли бы уже написать за потраченное время статью и огребать рейтинг)))

Подобных редакторов форм полно, но основная фишка как раз в том, чтобы выбрать основной объект, как объект конфигурации, а не как ссылку. В этом есть свои плюсы.
11. user1503726 10.12.20 12:02 Сейчас в теме
А запрос к метаданным это только через справочник БСП? И реквизитов табличных частей в нем нет, а писать нетленку на базе конвертации это глупость конечно.
В любом случае даже если в одной базе есть все это, в запросе по регистру с несколькими регистраторами нельзя сделать соединение и группировку по типу регистратора.
А счастье было так возможно
Оставьте свое сообщение