Куда пропал произвольный тип из конфигуратора?
Не знаю с какого релиза в конфигураторе в выборе Тип Значения пропал тип Произвольный. Столкнулся с этой проблемой когда в обычном приложении понадобилось вывести в таблицу значений на форму результаты функции НайтиПоСсылкам(). Для вывода результата не подходит никакой тип из предлагаемых в конфигураторе. Думал, что данный тип совсем упразднили, но в списке значений можно не выбирать тип значения для элементов, что в общем соответствует Произвольному типу. За что так наказали Таблицу значений и Дерево значений?
Вопрос заключается вот в чем. Поделитесь своим опытом. Как вы обходите данное ограничение? Не все можно поместить в список (в одну колонку), а в других (таблица, дерево) нельзя вывести, к примеру, записи регистра сведений (они не ссылочного типа).
Вопрос заключается вот в чем. Поделитесь своим опытом. Как вы обходите данное ограничение? Не все можно поместить в список (в одну колонку), а в других (таблица, дерево) нельзя вывести, к примеру, записи регистра сведений (они не ссылочного типа).
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Я тоже понимаю разницу между данными, реквизитами и элементами. Приходилось писать для разных платформ (начиная с 6.0). Тут потребовалась отработка для УТ 10.3. Причем не вопрос создать программно такую таблицу, но зачем такой геморой?
Прикрепленные файлы:
(7) А вот тут начинается самое интересное. Если создать программно колонку для реквизита Формы, то на форме она не появится. Можно программно добавить колонку и на форму, но связи между ними не будет.. И такая свистопляска только из за того, чтобы на форму в колонку таблицы выводились значения любых типов.
(8) Попробовал - программно создаем только 1 колонку для хранения значения с произвольным типом. В таблицу добавляем колонку для представления. Если требуется еще редактирование значения произвольного типа, то нужна еще колонка с описанием типов. Накидал пример, максимально покрывающий возможные задачи.
Прикрепленные файлы:
КолонкаПроизвольногоТипаВДереве.epf
приходится преобразовывать во что-то подходящее,
у меня такой код работает (фрагмент)
у меня такой код работает (фрагмент)
тзРезультат = НайтиПоСсылкам(МассивСсылок);
тзРезультат.Колонки.Добавить("ДанныеСтрока");
тзРезультат.Колонки.Добавить("ТипСтрока");
лкДопМассив = Новый Массив; //иерархия объектов
Для каждого лкСтр Из тзРезультат Цикл
//лкСтр.Данные
лкМета = лкСтр.Метаданные;
лкМетаТип = лкМета.ПолноеИмя();
лкСтр.ТипСтрока = лкМетаТип;
//по наличию метода: УникальныйИдентификатор, определяем что это Ссылка
Попытка
лкГУИД = лкСтр.Данные.УникальныйИдентификатор();
лкЭтоСсылка = Истина;
Исключение
лкЭтоСсылка = Ложь;
КонецПопытки;
Если лкЭтоСсылка Тогда
лкСтр.ДанныеСтрока = Строка(лкСтр.Данные); //представление данных
Иначе
лкСтр.ДанныеСтрока = лкМетаТип; //представление данных
КонецЕсли;
КонецЦикла;
//тзРезультат.Колонки.Удалить("Данные");
тзРезультат.Колонки.Удалить("Метаданные");
Возврат Новый ХранилищеЗначения(тзРезультат);
Показать
Да, если нужно только выводить значения без редактирования, то достаточно:
Предварительно нужно добавить колонку "Ссылки" без привязки к данным (очистить свойство колонки "Данные").
ДеревоСсылок.Колонки.Добавить("Ссылки");
ЭлементыФормы.ДеревоСсылок.Колонки.Ссылки.Данные = "Ссылки";
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот