При открытии в форме обработки создаются программно реквизиты.
В дальнейшем нужно как-то определить имеется ли реквизит с указанным именем.
Никак не могу найти способ поиска реквизита по имени. Кроме как перебрать все реквизиты и сравнивать имя с переданным параметром.
Может кто-нибудь подсказать как это сделать по-другому?
В дальнейшем нужно как-то определить имеется ли реквизит с указанным именем.
Никак не могу найти способ поиска реквизита по имени. Кроме как перебрать все реквизиты и сравнивать имя с переданным параметром.
Может кто-нибудь подсказать как это сделать по-другому?
По теме из базы знаний
- Универсальный редактор реквизитов Управляемый + Обычный интерфейс v 2.4
- Выгрузка-загрузка любых данных из 1С (и измененных) в XML между похожими конфигурациями (ФАЙЛ, HTTP, COM) ЛЮБЫХ баз 1С 8.1-8.3 с обработкой и поиском данных по произвольным полям поиска
- Заполнение контрагента по ИНН или наименованию реквизитов по данным сайта ФНС в 1С: 8.3
- Еще раз о дополнительных реквизитах и дополнительных сведениях
- Поиск метаданных в расширениях
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Смотри метод ПолучитьРеквизиты(), но он работает только в контексте сервера.
Я обычно в таких случаях делаю в при СозданииНаСервере реквизит формы в котором храню все имена реквизитов и табличных частей и их колонок, что бы каждый раз на сервер не бегать.
Если обработка небольшая - то можно затратами переходов на сервер пренебречь.
Если сложная - то или попытка или хранить в реквизите имена и пути к ним.
Других способов НаКлиенте узнать состав реквизитов и таблиц формы нет.
Я обычно в таких случаях делаю в при СозданииНаСервере реквизит формы в котором храню все имена реквизитов и табличных частей и их колонок, что бы каждый раз на сервер не бегать.
Если обработка небольшая - то можно затратами переходов на сервер пренебречь.
Если сложная - то или попытка или хранить в реквизите имена и пути к ним.
Других способов НаКлиенте узнать состав реквизитов и таблиц формы нет.
Еще способ, доступный как на сервере, так и на клиенте:
Это унивесальный способ для всех возможных типов реквизитов. Можно использовать заранее сгенерированный уникальный идентификатор. Либо, если известен заранее тип проверяемого реквизита, и он не составной, можно вовсе использовать Неопределено в качестве значения по умолчанию.
ЗначениеПоУмолчанию = Новый УникальныйИдентификатор;
СтруктураСвойств = Новый Структура("ИмяПроверяемогоРеквизита", ЗначениеПоУмолчанию);
ЗаполнитьЗначениеСвойств(СтруктураСвойств, ЭтаФорма);
ЕстьРеквизит = Не (СтруктураСвойств["ИмяПроверяемогоРеквизита"] = ЗначениеПоУмолчанию);
Это унивесальный способ для всех возможных типов реквизитов. Можно использовать заранее сгенерированный уникальный идентификатор. Либо, если известен заранее тип проверяемого реквизита, и он не составной, можно вовсе использовать Неопределено в качестве значения по умолчанию.
(6) С таблицами да, все сложнее. Если хочется универсального решения для всех коллекций (НаборЗаписей, ТабличнаяЧасть, ТаблицаЗначений, ДанныеФормыКоллекция и т.д.) то можно, наверное, добавить элемент коллекции, проверить его реквизит и удалить только что добавленный элемент. Единственный недостаток здесь, что я сейчас вижу, это т.н. сайд-эффект: исходный у объекта с коллекцией будет взведен признак модифицированности.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот