[Шпаргалка] Программное создание элементов формы

0. rpgshnik 3362 06.09.19 13:30 Сейчас в теме
Программное создание практически всех популярных элементов формы.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. lmnlmn 67 06.09.19 13:38 Сейчас в теме
Каждый раз при необходимости создать программно элементы формы посещает мысль что надо бы сделать модуль, но все некогда и некогда. А у автора руки, таки, дошли. Полезно!
1Cynep4eJIoBek; Strannik777; maksa2005; kaliuzhnyi; pavelpribytkin96; Perfolenta; Pavel Rodinchenko; v.l.; markers; JohnyDeath; ids79; magdeevik; Senator_I; user774630; mnemchinov; rpgshnik; +16 Ответить
42. huxuxuya 319 23.12.19 09:42 Сейчас в теме
(1) Пожалуйста:
Модуль - https://infostart.ru/public/1170285/

Если прокомментируете, буду благодарен.
Там модуль, но поставляемый с обработкой тестирования для проверки обратной совместимости.
Demetry2000; Lacoste4life; SeiOkami; ZLENKO; +4 1 Ответить
2. VmvLer 06.09.19 13:47 Сейчас в теме
как шпаргалка неплохо для новичков

пара замечаний, ну куда ж без них
1. Напишите жирным шрифтом
синтаксис ЭтаФорма.Элементы.
использовать только если этот фрагмент кода расположена в методе с параметром
ЭтаФорма, например Функция СоздатьГруппуФормы(ЭтаФорма, ПараметрыГруппы)
если же этот фрагмент кода будет расположен в модуле формы, то достаточно
написать Элементы.
Когда будет копипастить код из этой шпаргалки, то всегда думайте чтобы НЕ рукоягодничить.


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

пожалуй все остальное чики-пуки, больше замечаний нет.
user1675974; Новичок1с; unichkin; Interrupted; Yashazz; +5 1 Ответить
5. user774630 06.09.19 14:45 Сейчас в теме
(2)
можно найти в общих модулях типовых конфигураций

Ну вы бы сказали куда смотреть хотя бы для старта.
a-m-gv; starponyx; +2 Ответить
6. VmvLer 06.09.19 15:01 Сейчас в теме
(5) раздел "общие модули"

искать аналоги глобальным поиском от пары секунд до минуты если вы конечно видели конфигуратор.
Kilka_v_Kepke; safm; +2 6 Ответить
7. user774630 06.09.19 15:09 Сейчас в теме
(6) Ну т.е. как и большинство ваших комментов - вякнуть и всё.
ybatiaev; KoC_one; Serg243; sapervodichka; yegorovnv; mpeg1989; +6 Ответить
8. VmvLer 06.09.19 15:25 Сейчас в теме
(7) Большинство моих комментариев по существу, но прямолинейно - это неприятно многим.

А от вас пока лишь хамство.

В чем я не прав конкретно в комментарии в (2) или в (6) - разве это не по существу вопроса?
Kilka_v_Kepke; +1 3 Ответить
13. Yashazz 4511 06.09.19 19:53 Сейчас в теме
(7) А вы, товарисч, не ленитесь, время - оно денег стоит, а опыт по отыскиванию чего-либо в коде БСП и вовсе бесценен. А то вам мало что разжуй, так ещё и пищеварить, а как отказывают, так вы сразу хамите? Ну-ну.
Kilka_v_Kepke; +1 4 Ответить
10. rpgshnik 3362 06.09.19 15:48 Сейчас в теме
(2) этот код вызывается из общего модуля, по другому не получилось. Я знаю, что в модуле формы не обязательно писать ЭтаФорма. Я предлагаю не функции копипастить в модуль формы, а целиком модуль создать для этих целей. И при необходимости вызывать с модуля формы, функцию общего модуля.
annak2980; +1 Ответить
12. Labotamy 06.09.19 19:08 Сейчас в теме
Свойство ЭтаФорма объекта УправляемаяФорма удалено и поддерживается для совместимости. https://dl04.1c.ru/content/Platform/8_3_3_641/1cv8upd.htm

Как бы 6ть лет прошло. Пора уже вообще забыть "ЭтаФорма"
Дмитрий74Чел; SagittariusA; Danil.Potapov; v.l.; azhilichev; MVK80; +6 Ответить
16. rpgshnik 3362 07.09.19 09:18 Сейчас в теме
(12) хорошее замечание, проверю. Удаленно "условно" выходит 🙃
22. MVK80 09.09.19 14:50 Сейчас в теме
(12), это будет до тех пор, пока разработчики типовых сами не избавятся от этого. Так-то, да я сам всегда использую ЭтотОбъект вместо ЭтаФорма и другим рекомендую.
rpgshnik; +1 Ответить
26. unichkin 1535 13.09.19 02:48 Сейчас в теме
(2) еще для передачи параметра в 8.3 не "ЭтаФорма", а "ЭтотОбъект".
https://its.1c.ru/db/metod8dev/content/5293/hdoc/_top/%D1%8D%D1%82%D0%B0%D1­%84%D0%BE%D1%80%D0%BC%D0%B0
BigB; v.l.; +2 Ответить
3. TanisIntec 5 06.09.19 14:18 Сейчас в теме
Как раз занимался динамическим созданием, полезная инфа
rpgshnik; +1 Ответить
4. Timic 46 06.09.19 14:26 Сейчас в теме
В примере создания полей я бы поменял местами присваивание вида и пути к данным. Сначала устанавливаем путь к данным, потом вид поля формы. По крайней мере раньше при установке пути к данным вид автоматически устанавливался в поле надписи
9. Senator_I 106 06.09.19 15:45 Сейчас в теме
Спасибо, полезная вещь, добавил себе в "Избранное".
pavelpribytkin96; rpgshnik; +2 Ответить
11. ids79 7788 06.09.19 15:56 Сейчас в теме
Спасибо, полезный материал!
Сам хотел написать подобную статью, Вы меня опередили ))
Для расширений динамическое создание элементов форм - это уже почти стандарт.
alex99232014; rpgshnik; +2 Ответить
14. Yashazz 4511 06.09.19 19:54 Сейчас в теме
(11) Вот и убивать надо за такой стандарт. Есть же нормальная возможность перегрузить форму своей собственной, нафига такие танцы с бубном? Чтоб ваши последователи тратили втрое больше времени, пытаясь а) спрогнозировать внешний вид, б) поменять, чтоб ничего не сдохло?
DmitrySinichnikov; kiruha; +2 2 Ответить
17. ids79 7788 07.09.19 09:19 Сейчас в теме
(14)Позволю себе с Вами не согласиться. Я сам сперва добавлял и изменял реквизиты в загруженной в расширение форме. Но потом перешел на программное создание именно для большей прозрачности и управляемости. Хотя, в целом, я сторонник использования расширений.
annak2980; Anchoret; rpgshnik; +3 Ответить
59. vik070777 289 10.03.20 09:49 Сейчас в теме
(17) При программном создании в больших доработках очень сильно увеличивает код конфигурации что становится весьма неудобно. А так статья конечно полезна.
20. azhilichev 210 09.09.19 10:32 Сейчас в теме
(14) Программное создание отлично подходит для подключаемых механизмов, в виде API. Пример. Вы реализовали визуальный инструмент, который нужно подключить к нескольким формам. Вносить интерфейсные изменения во все формы - так себе решение. При каждом изменении внешнего вида и поведения необходимо будет вносить изменения во все экземпляры. Работа же через API - более логичное решение. Условно, при создании формы вызывается конструктор, который дополняет форму. И вся работа инструмента идет через 1-3 обработчика, которые используют единую логику, вынесенную в общий модуль.
rpgshnik; +1 Ответить
15. Yashazz 4511 06.09.19 19:57 Сейчас в теме
Как и любая мода, этот подход сейчас на слуху и популярен, а потому шпаргалка, безусловно, невредная для начинающих. Но, уверен, программное создание под тяжестью собственной непрозрачности, негибкости, времязатратности и громоздкости рано или поздно займёт подобающее ему небольшое место в ряду иных инструментов. Это костыль, однажды он на 90% отомрёт.
cloudspb; DmitrySinichnikov; FreeArcher; +3 7 Ответить
18. Yashazz 4511 08.09.19 10:21 Сейчас в теме
(15) Знаете, примерно так же со мной не соглашались, когда я говорил, что концепция "переопределяемых" модулей - это костыль. Мне говорили, ты что, это удобно, прогрессивно и прозрачно, дописал своё в типовой и обновлять легче! А потом появились расширения)
Так что, господа, попрыгаете на грабли программной доработки формы (особенно чужой и криво сделанной), поймёте. Лет через 5 вернёмся к этой теме)
27. lvictor58 135 18.09.19 12:31 Сейчас в теме
(18) Ну, во-первых 5 лет еще как-то надо прожить, работать и зарабатывать, а не ждать непонятно чего.
А во вторых, кто на этих расширениях уже что называется "собаку съел" советуют новые элементы форм создавать в расширениях программно, что бы потом не было проблем с обновлениями.
mpeg1989; rpgshnik; +2 Ответить
78. AtamanovYS 132 25.11.21 13:23 Сейчас в теме
(18) Не проблема использовать переопределяемые интерфейсы внутри расширения. При интерактивной доработке это всё не контролируется, форму нужно (вручную) обновлять в расширении нажатием соответствующей кнопки, чтобы она заново объединилась. При сложном изменении бывают (как минимум, бывали) разные артефакты. Расширения вообще не панацея от программной работы с формой. Правильно и в расширении их программно дорабатывать.

Так что, господа, попрыгаете на грабли программной доработки формы (особенно чужой и криво сделанной), поймёте. Лет через 5 вернёмся к этой теме)

Наоборот, за пределами 1С моветон рисовать формы. Даже в декларативном стиле, как это на управляемых сделано. Весь веб-интерфейс описывается кодом. Все эти конструктора для Веб'а канули в лету.

Наоборот, функционал для программной работы с формами давно напрашивается в БСП. Но он почему-то есть только в выборочных конфигурациях (как мне говорили, в Документообороте 3 есть такой модуль).
annak2980; rpgshnik; +2 Ответить
19. azhilichev 210 09.09.19 10:24 Сейчас в теме
(15)
программное создание под тяжестью собственной непрозрачности, негибкости, времязатратности и громоздкости

Если сделана грамотная декомпозиция методов по созданию элементов, команд, реквизитов и обработчиков, то трудозатраты на доработку программно-генерируемого интерфейса формы лишь незначительно больше, чем на изучение и разработку в конструкторе.
28. Yashazz 4511 18.09.19 22:26 Сейчас в теме
(19) Только это уникально редко встречается.
azhilichev; +1 Ответить
32. azhilichev 210 19.09.19 09:57 Сейчас в теме
(28) Пожалуй, плюсану. Среди 1С-ников качественный и осмысленный код встречается не столь часто. Увы.
35. XSlava 157 11.11.19 12:06 Сейчас в теме
(32)Везде тупой не осмысленный код встречается, а не у только "1С-ников". Вы наверное ошиблись форумом.
annak2980; ubnkfl; rpgshnik; +3 1 Ответить
36. azhilichev 210 12.11.19 04:33 Сейчас в теме
(35) "неосмысленный" пишется слитно. Перед и после "наверное" нужны запятые.
user958101; gufadmin; +2 Ответить
37. XSlava 157 12.11.19 07:48 Сейчас в теме
(36)Вы точно ошиблись форумом.
user1583894; olya1990; ubnkfl; rpgshnik; +4 1 Ответить
38. azhilichev 210 13.11.19 08:16 Сейчас в теме
(37) Если вам за 1С-ников обидно, то не понимаю сути ваших претензий.

Везде тупой не осмысленный код встречается, а не у только "1С-ников".


Давайте процитирую мой исходный комментарий:
Среди 1С-ников качественный и осмысленный код встречается не столь часто.


Разве я в нем сравнивал разработчиков 1С и разработчиков, пишущих на других языках? Только подчеркнул факт, что 1С-никам надо чаще писать качественный и сопровождаемый код. Желательно с соблюдением стандартов. Весь посыл.

При чем тут другой форум, я так и не понял.
40. XSlava 157 13.11.19 10:51 Сейчас в теме
(38)Наверное вы очень образованный человек, т. к. считаете возможным указывать на грамматические и синтаксические ошибки. По моему мнению, это форум где разбираются алгоритмы, а не грамматические и синтаксические ошибки, написания текста сообщений. На основании этого делаю вывод, что вам нужен форум, где разбираются ошибки правописания русского языка.

Ваша фраза "Среди 1С-ников качественный и осмысленный код встречается не столь часто.". По моему мнению означает, что вы встречали код в разработках не на платформе 1С, написанный гораздо качественней с вашей точки зрения.

Заранее извиняюсь за ошибки, которые вам "режут глаз".
annak2980; olya1990; +2 2 Ответить
21. Andrefan 09.09.19 10:41 Сейчас в теме
Отличная работа, спасибо. Для полноты картины хотелось бы ещё увидеть сложные ЭУ: таблица формы, динамический список, командная панель, контекстное меню таблиц.
olya1990; rpgshnik; +2 Ответить
23. rpgshnik 3362 09.09.19 14:57 Сейчас в теме
(21) Динамический список включен в код модуля в конце публикации, а писал я про него уже давненько https://infostart.ru/public/728597/
24. smirnov.es 21 11.09.19 10:36 Сейчас в теме
Дима, спасибо за такой качественный контент.
rpgshnik; +1 Ответить
25. rpgshnik 3362 11.09.19 15:02 Сейчас в теме
29. sulitckaja 19.09.19 08:48 Сейчас в теме
Есть реквизит формы "Таблица значений". При выборе у колонки на форме "ПутьКДанным"
открывается форма "Выбор реквизита" в которой помимо реквизитов (колонки) есть еще реквизит Строка[0]
в которой тоже присутствуют колонки. Может кто то подсказать, как и для чего используется реквизит Сnрока[0]? или ссылку где можно почитать? Изображение прикреплено.
Спасибо заранее.
Прикрепленные файлы:
30. dhurricane 19.09.19 09:15 Сейчас в теме
(29) Т.о. можно, например, реализовать два варианта интерфейса: полный (с таблицей) и упрощенный (реквизиты первой строки отображаются как обычные поля ввода). Такое встречается в типовых конфигурация, например УТ11, документ "Заявка на расходование денежных средств". Он содержит переключатель для расшифровки платежа "Без разбиения / Списком" (см. рис.)

P.S. Я немного слукавил. В УТ используется не первая строка таблицы, а текущая. Подход немного другой, но сути это не меняет.
Прикрепленные файлы:
sulitckaja; +1 Ответить
31. sulitckaja 19.09.19 09:30 Сейчас в теме
(30)Спасибо большое за помощь.
44. PeRom 51 17.01.20 13:48 Сейчас в теме
(29)Коллекция строк таблицы, т.е. как я понял можно заполнить таблицу программно или конкретными значениями в конфигураторе - например внести таблицу умножения...
sulitckaja; +1 Ответить
33. karpik666 3705 23.09.19 16:23 Сейчас в теме
Добавлю, что для логичной работы с общим моделем можно добавить ряд инициализированных структур, где перечислены, доступные параметры, например
Функция ВозможныеПараметрыДекорации()
      ПараметрыДекорации = Новый Структура("Ширина, Высота, Вид");
Возврат ПараметрыДекорации;
КонецФункции;

поможет напомнить, что конкретно можно передать.
annak2980; rpgshnik; +2 Ответить
34. ksi_2166 26.09.19 11:23 Сейчас в теме
Спасибо от новичка в 8-ке
rpgshnik; +1 Ответить
39. yurikmellon 6 13.11.19 09:39 Сейчас в теме
Спасибо, думаю пригодится
41. Alexey_Yurov 13.11.19 11:03 Сейчас в теме
Очень удобно использовать в общем модуле МодификацияКонфигурацииПереопределяемый - так можно вносить изменения в типовые формы практически не изменяя их модуль (только добавляя процедуры обработчиков событий)
rpgshnik; +1 Ответить
43. AgentNiCho 31.12.19 13:56 Сейчас в теме
Можно добавить вопрос изменения реквизитов. На днях искал как добавить столбец в реквизит формы Таблица значений. Не сразу нашел. А в шпаргалке было бы полезно.
rpgshnik; gradus; +2 Ответить
47. rpgshnik 3362 10.02.20 08:30 Сейчас в теме
(43) обновил публикацию, теперь есть информация и по "Таблице формы".
AgentNiCho; +1 Ответить
50. AgentNiCho 10.02.20 13:52 Сейчас в теме
45. gradus 09.02.20 22:47 Сейчас в теме
А как бы, например, добавить реквизит в табличную часть?
На примере документа ПТУ в конфигурации БП 3.0. В реквизиты табличной части добавлено поле Склад. Как его программно выводить на форму?
46. rpgshnik 3362 10.02.20 05:16 Сейчас в теме
(45) вот мои функции по добавлению колонок типа Поле или Флажок

ТаблицаФормы например Форма.Элементы.Товары

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

&НаСервере
Функция СозЭлементТаблицаКолонкаФлажок(Форма,
	ТаблицаФормы,
	ИмяКолонки,
	ПутьКДанным,
	Заголовок = "", 
	ВставитьПеред = Неопределено) Экспорт
	
	Если ВставитьПеред = Неопределено Тогда
		НовыйЭлемент  = Форма.Элементы.Добавить(ИмяКолонки,Тип("ПолеФормы"),ТаблицаФормы);
	Иначе
		НовыйЭлемент  = Форма.Элементы.Вставить(ИмяКолонки,Тип("ПолеФормы"),ТаблицаФормы,ВставитьПеред);			
	КонецЕсли;
	
	Если Заголовок <> "" Тогда НовыйЭлемент.Заголовок = Заголовок КонецЕсли;
	НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;      
	НовыйЭлемент.ПутьКДанным = ПутьКДанным;
	
	Возврат НовыйЭлемент;
	
КонецФункции
Показать
49. gradus 10.02.20 12:04 Сейчас в теме
77. AtamanovYS 132 24.11.21 17:49 Сейчас в теме
(46)
Если ВставитьПеред = Неопределено Тогда
НовыйЭлемент = Форма.Элементы.Добавить(ИмяКолонки,Тип("ПолеФормы"),ТаблицаФормы);
Иначе
НовыйЭлемент = Форма.Элементы.Вставить(ИмяКолонки,Тип("ПолеФормы"),ТаблицаФормы,ВставитьПеред);
КонецЕсли;

А тут зачем так ? Можно всегда метод "Вставить" использовать, последний параметр не обязателен. В справке написано "Элемент, перед которым должен быть вставлен новый элемент. Если не указан, то элемент будет вставлен в конец."
rpgshnik; +1 Ответить
48. rpgshnik 3362 10.02.20 08:31 Сейчас в теме
(45) обновил публикацию, добавил информацию по созданию "Таблицы формы" и колонок у неё
51. lmnlmn 67 10.02.20 23:01 Сейчас в теме
(48) Где таблица - там и дерево))
52. rpgshnik 3362 11.02.20 04:26 Сейчас в теме
53. vkozak 28.02.20 12:09 Сейчас в теме
Качественная и полезная шпаргалка.
Спасибо!!
54. rus16rom 04.03.20 16:31 Сейчас в теме
Добрый день.
Случайно наткнулся на вашу статью и не смог пройти мимо. Программное создание элементов на форме использовал ранее в конфигурации и было ровно также реализовано, через общий модуль и далее вызов всего этого "чуда" при создании формы.
Да, соглашусь, проблему на типовое обновление это решает вопрос, но вот когда база стала расти, пользователей в базе стало больше 300 активных, вот тут мы стали получать проблему производительности, так как, каждый раз при открытии формы создаются программно элементы. Когда пользователей стало более 1000 было принято решение перехода на расширения, так как, показатели производительности стремились к нулю.
А после, я где-то на ИТС встетил информацию, что сами разработчики 1С не рекомендуют использовать программное создание элементов на форме, ровно по той причине, которую я выше описал. Так сказать, получил практический опыт, как делать не нужно.

А так, статья хорошая, но наверное не стоит злоупотреблять программным созданием элементов + помнить, что чем больше активных пользователей. тем медленнее будет работать система.
annak2980; chng; acanta; rpgshnik; BigB; +5 Ответить
56. rpgshnik 3362 05.03.20 03:19 Сейчас в теме
(54) Добрый день. Очень интересно, честно ни разу не слышал о такой точки зрения.
57. rus16rom 05.03.20 10:27 Сейчас в теме
(56) Это практический опыт:) Попробуйте написать нагрузочный тест и поставить замеры Apdex в формы, где создаются программно элементы, сразу увидите все изменения.
annak2980; chng; +2 Ответить
58. rpgshnik 3362 05.03.20 10:38 Сейчас в теме
(57) да уже проверил, вы правы.

Опять же я создавал 120 элементов. Разница в миллисекундах вышла почти в два раза. Грубо говоря расширением 82 мс, программно 179 мс :) ну и конечно речь идёт про повторное открытие, при первом открытие формы разница не так велика, где-то 195 (расширение) против 207 (программно).
73. imm0rtal 14 23.08.21 21:05 Сейчас в теме
Да так себе сервис, чего скрывать то.
Мне как то роуминг настраивали несколько месяцев


(57)это просто руки из жопы.
а не опыт=)
55. Dmitryflagman 24 04.03.20 16:52 Сейчас в теме
Спасибо , то что давно искал !
rpgshnik; +1 Ответить
60. Mechanik21 23 04.06.20 17:01 Сейчас в теме
А как удалить программно добавленные реквизиты?
61. rpgshnik 3362 05.06.20 06:20 Сейчас в теме
(60) ИзменитьРеквизиты(,МассивУдаляемых);

ИзменитьРеквизиты (ChangeAttributes)
Синтаксис:
ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>)
Параметры:
<ДобавляемыеРеквизиты> (необязательный)
Тип: Массив.
Массив, содержащий объекты типа РеквизитФормы.
Добавлять можно реквизиты верхнего уровня и вложенные реквизиты, являющиеся колонками.
К добавленным реквизитам верхнего уровня из модуля можно обращаться только с помощью конструкции ЭтотОбъект.<Имя реквизита>.
<УдаляемыеРеквизиты> (необязательный)
Тип: Массив.
Массив, содержащий строки, описывающие пути к удаляемым реквизитам.
Удалять можно только ранее программно добавленные реквизиты.
62. rpgshnik 3362 05.06.20 06:22 Сейчас в теме
(60) Если элементы тоже тогда можно удалять разом все - удалив родителя.
Допустим удаляя динамический список - не нужно удалять каждую колонку, достаточно удалить элемент динамического списка.
ИмяЭлемента = "ИмяВашегоЭлемента";
Элементы.Удалить(Элементы[ИмяЭлемента]);
63. ITSun 22.07.20 18:11 Сейчас в теме
Полезная статья, однозначно в закладки! :)
64. WrongLane 3 02.12.20 08:33 Сейчас в теме
А на такие поля как-то можно события запрограммировать, например, при изменении?
65. rpgshnik 3362 02.12.20 10:11 Сейчас в теме
(64) на такие какие? Элемент формы "Поле"?
67. lefthander 25.12.20 16:45 Сейчас в теме
(64)Да можно
НовоеПоле.УстановитьДействие("ПриИзменении", "ПолеПриИзменении");

и собственно Процедура ПолеПриИзменении(Элемент)
maksa2005; kyzma-kyzmi4; WrongLane; +3 Ответить
66. пользователь 06.12.20 19:43
Сообщение было скрыто модератором.
...
68. user1021719 12.01.21 23:19 Сейчас в теме
Спасибо за описание механизмов. Многое использовал. Столкнулся только с одной проблемой - реквизит и его сохранение. Не Сохраняемые данные, а именно Сохранение. В списке всех реквизитов столбец который. Не могу программно найти, как установить Истина. Возможно это кодом описать ?
Прикрепленные файлы:
70. rule_2 42 30.03.21 08:26 Сейчас в теме
(68)
Не могу программно найти, как установить Истина. Возможно это кодом описать ?


Сам как-то столкнулся с подобным вопросом. К сожалению, не все возможно сделать программно. Эту галку поставить при программном создании невозможно.
69. JOJ73 22.01.21 10:28 Сейчас в теме
Немного изменил для себя ваш проЭлементы.

Заменил :
Если СтруктураСвойств = Неопределено Тогда
СтруктураСвойств = Новый Структура;
КонецЕсли;
......
Для Каждого Элемента Из СтруктураСвойств Цикл
НовыйЭлемент[Элемента.Ключ] = Элемента.Значение;
КонецЦикла;

На:
Если СтруктураСвойств <> Неопределено Тогда
Для Каждого Свойства Из СтруктураСвойств Цикл
НовыйЭлемент[Свойства.Ключ] = Свойства.Значение;
КонецЦикла;
КонецЕсли;

Но в целом большое спасибо за работу, у самого был подобный модуль,
но у Вас все удобнее и красивее )).
rpgshnik; +1 Ответить
71. rpgshnik 3362 30.03.21 10:09 Сейчас в теме
75. angabanga5 23.09.21 12:50 Сейчас в теме
(71) Пардон. пишу код для добавления кнопки в процедуре "ПриСозданииНаСервере", но никакой кнопки не добавляется. код просто проходит мимо. не могу понять, что еще нужно дописать, чтобы было отображение.
76. rpgshnik 3362 23.09.21 14:06 Сейчас в теме
(75) команда должна быть определена заранее как минимум, текст чуть выше в статье
72. angabanga5 26.06.21 12:31 Сейчас в теме
чет я попробовал - не работает. тупо код пропускается и никаких новых элементов не добавляется
74. 1Cynep4eJIoBek 22.09.21 12:19 Сейчас в теме
Спасибо добрый человек, ты сэкономил мне много времени. Жаль что не попалась раньше статья
maksa2005; rpgshnik; +2 Ответить
79. Sirruf 181 08.02.22 23:54 Сейчас в теме
Подскажите, пожалуйста, как программно добавить на форму строку поиска, источником которой является таблица формы? По какой-то причине у добавляемого элемента формы нет свойства источник... Удалось нагуглить только саму проблему, решение не могу найти.
https://dev.mista.ru/topic.php?id=867412

Интерактивно это делается примерно так
https://1c-bezproblem.ru/blog/v-pomoshch-1s-programmistu/1c-stroka-poiska-ne-otobrazhaetsya-v-komandnoj-paneli-1s-vyvesti-stroku-poiska-v-komandnuyu-panel-pomestit-stroku-poiska-na-komandnuyu-panel-2

код по добавлению элемента управления
НовыйЭлемент = Элементы.Добавить("СтрокаПоиска", Тип("ДополнениеЭлементаФормы"), Элементы.ГруппаОтбора);
НовыйЭлемент.Вид = ВидДополненияЭлементаФормы.ОтображениеСтрокиПоиска;
//НовыйЭлемент.Источник = ??? //нет свойства источник
81. rpgshnik 3362 10.02.22 04:20 Сейчас в теме
(79) "Автозаполнение" я с ним сталкивался когда пытался полноценно влиять на командную панель динамического списка, но увы управлять этим свойством программно никак нельзя было, думаю и сейчас не возможно.
80. Sirruf 181 09.02.22 00:38 Сейчас в теме
Еще один вопрос - как программно ограничить состав команд командной панели таблицы формы? Интерактивно опять же это можно сделать в пару кликов...
82. rpgshnik 3362 10.02.22 04:21 Сейчас в теме
(80) опять же дополняя прошлый ответ - делал костыльно в процедуре создания динамического списка - скрывал стандартную панель списка и наполнял её уже необходимыми кнопками.
83. silverr 12 21.07.22 12:55 Сейчас в теме
Всем доброго времени суток!
В расширение добавлен регистр сведений. Желаю в регистр сведений сделать запись, источником данных для которой, являются динамически(программно) созданные реквизиты на форме элемента справочника.
Никак не могу получить значение "своего" реквизита.
Подскажите пожалуйста выход из тупика, или как его обойти.
84. rpgshnik 3362 21.07.22 12:58 Сейчас в теме
(83)ЭтотОбъект["ИмяВашегоРеквизита"]
85. silverr 12 22.07.22 10:29 Сейчас в теме
Спасибо, растерялся из-за отсутствия локальных переменных в отладчике.
rpgshnik; +1 Ответить
86. silverr 12 22.07.22 12:13 Сейчас в теме
Еще подскажите пожалуйста, как повлиять на размеры Элемента формы если Тип "ПолеФормы" Вид "ПолеКартинки". В поле выводится сама картинка. Вызов методов: НовыйЭлемент.Высота = 2; НовыйЭлемент.Ширина = 5;, свойства изменяют, но на форме все без изменения.
87. silverr 12 22.07.22 13:49 Сейчас в теме
(86)Вроде разобрался, может "костыляво":
НовыйЭлемент.Высота = 20;	НовыйЭлемент.АвтоМаксимальнаяВысота = Ложь;	НовыйЭлемент.МаксимальнаяВысота = 20;
		НовыйЭлемент.Ширина = 50;	НовыйЭлемент.АвтоМаксимальнаяШирина = Ложь;	НовыйЭлемент.МаксимальнаяШирина = 50;

Теперь масштабирование не работает)))
88. ignor 235 22.04.23 11:32 Сейчас в теме
Могу наверное ошибиться, но по попыткам эксплуатации упёрся в то что тут нельзя создать командную панель
Оставьте свое сообщение
Вакансии
Консультант 1С
Москва
зарплата от 80 000 руб. до 150 000 руб.
Полный день

Программист 1С (ERP, УХ, КА 2, УТ 11), удаленно
Москва
зарплата от 160 000 руб.
Полный день

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

Консультант 1С / Специалист поддержки 1C
Екатеринбург
зарплата от 70 000 руб.
Полный день

Технический архитектор 1С
Екатеринбург
зарплата от 200 000 руб.
Полный день