Проверить наличие колонки реквизита формы (Неуникальное имя реквизита)
По теме из базы знаний
Найденные решения
(1) если известна хоть одна из колонок, то можно выгрузкой в ТЗ.
Главное знать имя одной из колонок и в отбор подставить ее с несуществующим значением, тогда получится незаполненная ТЗ но с колонками. А уже у ТЗ можно найти колонку по имени.
Если не известна ни одна из колонок, то просто выгрузкой, но тут будут выгружены все значения.
ТЗ = РеквизитТЗ.Выгрузить(Новый Структура("ИмяКолонки", Ложь),);
Главное знать имя одной из колонок и в отбор подставить ее с несуществующим значением, тогда получится незаполненная ТЗ но с колонками. А уже у ТЗ можно найти колонку по имени.
Если не известна ни одна из колонок, то просто выгрузкой, но тут будут выгружены все значения.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) если известна хоть одна из колонок, то можно выгрузкой в ТЗ.
Главное знать имя одной из колонок и в отбор подставить ее с несуществующим значением, тогда получится незаполненная ТЗ но с колонками. А уже у ТЗ можно найти колонку по имени.
Если не известна ни одна из колонок, то просто выгрузкой, но тут будут выгружены все значения.
ТЗ = РеквизитТЗ.Выгрузить(Новый Структура("ИмяКолонки", Ложь),);
Главное знать имя одной из колонок и в отбор подставить ее с несуществующим значением, тогда получится незаполненная ТЗ но с колонками. А уже у ТЗ можно найти колонку по имени.
Если не известна ни одна из колонок, то просто выгрузкой, но тут будут выгружены все значения.
(21) мозги попробуй включить. Приведен скрин с уже существующей таблицей и несколькими колонками. Нужно к ней добавлять колонки программно. Но часть колонок существует изначально. Значит в отбор по строкам можем указать уже известную колонку. Она нужна только для отсева выгрузки всех строк.
Но не указывая какие колонки выгружать, будут выгружены все.
Но не указывая какие колонки выгружать, будут выгружены все.
(6)
несколько нестандартное, но ок
если б это была типовая обработка/таблица, так бы и поступил, но нет, зачем отвлекать внимание разраба от логики?
Для этого надо выгрузить в таблицу значений и искать колонку по имени.
несколько нестандартное, но ок
при добавлении своих реквизитов в именах добавляйте им префиксы
если б это была типовая обработка/таблица, так бы и поступил, но нет, зачем отвлекать внимание разраба от логики?
(9) Поясню, как родилась необходимость проверки. В обработке на форме АРМ все реквизиты и элементы формы исторически создавались программно. И случилось так(ТМ), что их решили продублировать вручную, разместив на форме в режиме конфигуратора. Чтобы не ломался оригинальный код программного формирования, нужно перед созданием колонок проверить их отсутствие на форме. Префиксы лесом, задача иная.
Когда вся форма будет переведена на статические реквизиты, динамическое их формирование будет убрано.
Когда вся форма будет переведена на статические реквизиты, динамическое их формирование будет убрано.
(10) Конфигурация не озвучена. Если типовая - может есть модуль ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта
//реквизит может уже существовать, если например вызывается команда "Перечитать"
Если НЕ ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(Форма, "НаОснованииОприходования") Тогда
ДобавляемыеРеквизиты = Новый Массив;
ТипРеквизита = Новый ОписаниеТипов("ДокументСсылка.ОприходованиеИзлишковТоваров");
РеквизитФормы = Новый РеквизитФормы("НаОснованииОприходования", ТипРеквизита, "", "На основании оприходования");
ДобавляемыеРеквизиты.Добавить(РеквизитФормы);
Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
КонецЕсли;
(14) А по-другому никак. Это старая боль платформы - неумение искать по реквизитам формы, и даже неумение искать по массиву выгруженных этих реквизитов...
Приходится их получать в массив, а при необходимости - выгружать их имена во второй массив (чтобы использовать нормальные методы массива с примитивными типами).
С элементами формы есть метод Найти(), а с реквизитами - нет (потому что принцип уникальности имен разный).
Приходится их получать в массив, а при необходимости - выгружать их имена во второй массив (чтобы использовать нормальные методы массива с примитивными типами).
С элементами формы есть метод Найти(), а с реквизитами - нет (потому что принцип уникальности имен разный).
(16) Бесспорно проще в массив, структура в мысленном эксперименте с данными вылезла из кеша первой, как самая ходовая коллекция ;). Вживую применять время ещё не пришло, разбираюсь с "обязательной" 10 сек. паузой при проведении поступлений для расчета взаиморасчетов онлайн: ещё одно передовое техническое решение, в купе с формой реестра документов блокирующее интерфейс ЕРП на 15+сек.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот