Программная работа с пользовательскими реквизитами

1. Enigma 308 21.01.19 08:12 Сейчас в теме
Приветствую коллеги,

На управляемых формах есть возможность добавить пользовательский элемент к форме списка (Еще - Изменить форму - встаем на "Ссылка" (или другой реквизит ссылочного типа) - Добавить - выбираем реквизит). Возможность очень удобная, но хотелсь бы её сделать еще более удобной для конечного пользователя и дать ему возможность нажатием одной кнопки вывести сразу несколько пользовательских элементов себе на форму.

Проблема в том, что я не знаю где эти элементы хранятся. В коллекции значений Элементы их не существует. Я смог найти эти элементы через ЭтаФорма.Список.ТекущийЭлемент (если предварительно выбрать этот элемент в Предприятии), но при попытке понять что это (с помощью табло) платформа 8.3.13.1644 вылетает (даже не пытаясь записать дамп).

Есть ли у кого опыт программной работы с этими пользовательскими элементами?
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
4. lefthander 21.01.19 08:45 Сейчас в теме
(1)Это системная функция - она зашита в платформу. Для использования вашей задумки необходимо писать свой интерфейс. Главное не очень понятно зачем? Ведь настройка сохраняется, достаточно настроить колонки один раз они будут вызываться всегда.
markw; t.v.s.; +2 Ответить
7. Enigma 308 21.01.19 09:29 Сейчас в теме
(4) Не хочется бегать по пользователям и им все перенастраивать. Также не хочется изменять запрос динсписка и потом париться с обновлениями.

(5) Попробую так сделать.
8. EVKash 14 21.01.19 09:47 Сейчас в теме
(7) Как вариант запрос тоже можно модифицировать программно, но элементы все равно создавать, хоть они и появятся в выборе для пользователей.
		СтрокаДляПоиска = 	"
							|ИЗ
							|	Справочник.Партнеры КАК СправочникПартнеры";
		СтрокаДляЗамены =	",
							|	СправочникПартнеры.НужныйРеквизит1 КАК НужныйРеквизит1,
							|	СправочникПартнеры.НужныйРеквизит2 КАК НужныйРеквизит2
							|ИЗ
							|	Справочник.Партнеры КАК СправочникПартнеры";
		Список.ТекстЗапроса = СтрЗаменить(Список.ТекстЗапроса, СтрокаДляПоиска, СтрокаДляЗамены);
Показать
9. lefthander 21.01.19 09:52 Сейчас в теме
(7)Расширения - это теперь наше все.
10. EVKash 14 21.01.19 10:13 Сейчас в теме
(9) Офтоп.
При сильном изменении конфы, расширения тоже ломаются.
Вероятность поломки можно сильно снизить, если создавать расширение в пустой конфигурации и все изменения делать программно в модуле формы.
11. lefthander 21.01.19 10:24 Сейчас в теме
(10)Странно, а примеры поломки описанные в интернете можно посмотреть.
Я понимаю, если у меня не ломается, это не значит что у всех не ломается, но не видел сообщений о массовой поломке расширений сильно измененных конф. Смысл расширения это снизить количество изменений в самой типовой конфе. В идеале вообще не трогать типовую и доработать функционал под свои нужды только с помощью расширения. Но если конфа уже дорабатывается, то с помощью расширения есть смысл изменения типового функционала перенести в расширение только для того что бы облегчить процесс обновления.
ЗЫ ИМХО ваше утверждение о поломках расширений сильно преувеличены, и да, кстати, не обязательно все делать на пустой конфе, программно менять объекты можно в высоко нагруженной и сильно заполненной конфе. Для подобных вещей кстати предназначены хранилища. Разрабатывается и тестируется с подключенным хранилищем, а затем доработки переносятся в рабочую базу.
12. EVKash 14 21.01.19 11:00 Сейчас в теме
(11) Я о том, что при изменении в обновленной конфе любого контролируемого в расширении реквизита, расширение не запустится. Пример обновление УТ 11.3 на 11.4
При этом, если расширение было создано в пустой конфигурации (не могу сейчас найти публикацию по теме), то там только режим совместимости надо было бы поправить. Смысл в том, что в пустой конфе создается объект, в нем нужная форма, и все изменения производятся программно в модуле формы. Влияние изменения других объектов, которые тащатся автоматом в классическое расширение, на такое расширение минимально.
13. lefthander 21.01.19 16:12 Сейчас в теме
(12)Так при изменении контролируемых реквизитов, их тоже надо менять в расширении. К сожалению 1С пока не умеет автоматом менять контролируемые реквизиты.
5. EVKash 14 21.01.19 08:51 Сейчас в теме
(1) Сам так не делал, но в принципе должно быть как-то так.
Создаем новый элемент - колонку списка и путькданным указываем "НазваниеДинСписка.Ссылка.КакойТоРеквизит"
6. lefthander 21.01.19 08:59 Сейчас в теме
(5)Не забыть проверить реквизит объекта ссылка, должен быть с признаком "использовать всегда".
А вообще достаточно сделать команду и вывести нужные колонки динамически переформировав табличную часть, да и не только, можно форму настроить как нужно, добавив или убрав любые реквизиты.
2. dhurricane 21.01.19 08:28 Сейчас в теме
Уточните, пожалуйста, Вы хотите по нажатию на некоторую кнопку вывести на форму списка несколько наперед известных колонок?
3. dhurricane 21.01.19 08:32 Сейчас в теме
Если же я правильно Вас понял, и Вы хотите доработать форму пользовательской настройки формы, открываемой по команде "Изменить форму...", то добраться у Вас до этой формы и изменить ее не получится. Только разработать свою форму и добавить для нее свою команду.
lefthander; +1 Ответить
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)