Программное создание реквизита управляемой формы с помощью механизма расширений

23.07.19

Разработка - Механизмы типовых конфигураций

В ЗУП 3 возникла задача добавить реквизит в справочник не внося изменений в конфигурацию. БСП с механизмом дополнительных реквизитов использовать было нежелательно, поэтому был использован механизм расширений. Для вывода данного реквизита на форму добавлять саму форму в расширение не хотелось по ряду причин, описанных ниже. Создание реквизита и элемента формы, соответствующего данному реквизиту было решено сделать программно в самом расширении, следуя принципу минимального воздействия на конфигурацию.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Расширение конфигурации для приведенного примера
.cfe 7,00Kb
25
25 Скачать (1 SM) Купить за 1 850 руб.

Начиная с платформы 1С версии 8.3.12 и выше появилась возможность добавлять реквизиты объектов в расширениях, чем я и воспользовался:

Но для вывода данного реквизита на форму элемента добавлять саму форму в расширение совсем не хотелось.

Во-первых добавление (заимствование) формы в расширение может привести к некоторым нежелательным эффектам, которые могут возникнуть после обновления конфигурации. Приведем немного теории.

Платформа использует сразу три формы:

  • Форму из основной конфигурации
  • Сохраненную форму
  • Форму из расширения

Данные формы взаимодействуют между собой и в результате такого взаимодействия получается Результирующая форма, которую видит пользователь. В ходе взаимодействия указанных форм может возникнуть нежелательная ситуация, например, мы доработали форму в расширении, потом в новом релизе добавились реквизиты и они на форме не отображаются! Более подробно тут.

Во-вторых добавление формы в расширение привело бы к автоматическому добавлению всех реквизитов этого объекта и объектов метаданных (соответствующих ссылочным типам реквизитов объекта) в данное расширение, что загромождало бы само расширение и также не желательно.

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

В конфигурациях ERP 2 и УТ 11 для целей программного создания реквизитов и элементов формы можно использовать типовой механизм упрощенного изменения, который хорошо описан в статье: //infostart.ru/public/303645/. Но у меня конфигурация ЗУП 3 и данного механизма там нет. 

Посмотрев начало процедуры ПриСозданииНаСервере() модуля формы объекта, видим что вызываются экспортные методы ПриСозданииНаСервере() общих модулей подсистем БСП:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Если Параметры.Свойство("АвтоТест") Тогда // Возврат при получении формы для анализа.
		Возврат;
	КонецЕсли;
	
	// СтандартныеПодсистемы.ВерсионированиеОбъектов
	ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов
	
	// СтандартныеПодсистемы.ПодключаемыеКоманды
	ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
	// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
	
	// СтандартныеПодсистемы.Свойства
	ДополнительныеПараметры = Новый Структура;
	ДополнительныеПараметры.Вставить("Объект", Объект);
	ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
	УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
	// Конец СтандартныеПодсистемы.Свойства
	
	// СтандартныеПодсистемы.СклонениеПредставленийОбъектов
	СклонениеПредставленийОбъектов.ПриСозданииНаСервере(ЭтотОбъект, Объект.Наименование);	
	// Конец СтандартныеПодсистемы.СклонениеПредставленийОбъектов

Было принято решение код для программного добавления реквизита формы объекта добавить в метод ПриСозданииНаСервере() общего модуля УправлениеСвойствами. Данный модуль предназначен для работы с дополнительными реквизитами и сведениями, но переопределив его в расширении он вполне сгодится и для наших целей.

Добавляем общий модуль УправлениеСвойствами в наше расширение:

и создаем обработчик события НП_ПриСозданииНаСервере(), вызываемый после типовой процедуры УправлениеСвойствами.ПриСозданииНаСервере().

Ниже приведен готовый код, код снабжен комментариями и разбит на области для лучшего понимания:

&После("ПриСозданииНаСервере")
Процедура НП_ПриСозданииНаСервере(Форма, ДополнительныеПараметры = Неопределено) Экспорт
	
	Если Форма.ИмяФормы = "Справочник.ПодразделенияОрганизаций.Форма.ФормаЭлемента" Тогда
		
		#Область ДобавлениеРеквизитовФормы
		// Массив для новых реквизитов
		ДобавляемыеРеквизиты	= Новый Массив;
		
		// Опишем ревизиты формы
		Реквизит_НаименованиеДляПечати = Новый РеквизитФормы("НаименованиеДляПечати",	Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(300)),	, "Наименование для печати");
		
		// Заполним массив после описания реквизитов формы
		ДобавляемыеРеквизиты.Добавить(Реквизит_НаименованиеДляПечати);
		
		// Добавим новые реквизиты в форму
		Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
		#КонецОбласти
		
		#Область ДобавлениеЭлементовФормы
		// Элементы
		ИмяГруппы = "ГруппаНаименованиеКод";
		ГруппаФормы = Форма.Элементы.Найти(ИмяГруппы);
		Если ГруппаФормы <> Неопределено Тогда
			
			ИмяЭлемента = "НаименованиеДляПечати";
			Если Форма.Элементы.Найти(ИмяЭлемента) = Неопределено Тогда
				ЭлементФормы = Форма.Элементы.Добавить(ИмяЭлемента, Тип("ПолеФормы"), ГруппаФормы);        
				ЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
				ЭлементФормы.ПутьКДанным = "Обьект.НаименованиеДляПечати";
				ЭлементФормы.МногострочныйРежим = Истина;
				ЭлементФормы.Высота = 3;
			КонецЕсли;   
			
		КонецЕсли;
		#КонецОбласти
		
		#Область ЗаполнениеДанных
		Форма.НаименованиеДляПечати = Форма.Объект.НаименованиеДляПечати;
		#КонецОбласти
		
	КонецЕсли;
	
КонецПроцедуры

Запускаем конфигурацию и убеждаемся, что все работает:

См. также

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    1195    PROSTO-1C    0    

17

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    1308    Vidz    0    

9

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Очень часто в написании кода требуется обращаться к предопределённым значениям. Если идёт обращение к типовым предопределённым значениям, то проблем не возникает.

24.06.2024    959    olja-ljaaa    0    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    4084    Serg2000mr    32    

104

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

11.04.2024    943    tango    5    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    802    tango    5    

4

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Бесплатно (free)

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

08.04.2024    1080    tango    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alexpvs 64 12.03.19 11:20 Сейчас в теме
(4) "Во-первых добавление формы в расширение привело бы к её "заморозке", то есть если форма будет меняться разработчиками в последующих релизах, то эти изменения не будут больше отображаться, пользователи будут видеть как бы "снимок" формы, который был при её добавлении в расширение" - это не так.
2. ni_cola 352 12.03.19 12:33 Сейчас в теме
(1) При заимствовании формы в расширение платформа использует сразу 3 формы: Форму из основной конфигурации, Сохраненную форму (я назвал её "замороженной") и Форму из расширения. Они взаимодействуют между собой и в результате мы получаем Результирующую форму. В результате такого взаимодействия может быть, например, такая ситуация: мы доработали форму в расширении, потом в новом релизе добавили реквизиты, но они на форме не отображаются.
Более подробно тут: https://xn----1-bedvffifm4g.xn--p1ai/news/2017-11-24-forms-customization-by-using-extensions/
7. alexpvs 64 13.03.19 07:45 Сейчас в теме
(2) Смотря как поменяли форму в расширении.
Вот простейший пример: у поставщика документ с 2 реквизитами, в первом релизе выглядит так (см шаг1).
Заимствуем эту форму в расширение, добавляем свой реквизит на форму, выводим в конец формы его. (см. шаг2).
После этого поставщик делает 2 релиз, в котором у одного реквизита меняет синоним, у второго реквизита меняет имя и синоним. И на форме свои два реквизита помещает в горизонтальную группу. После этих изменений, расширение продолжает работать, и изменения поставщика присутствуют в результирующей форме (см. шаг3)
Прикрепленные файлы:
11. ids79 8502 13.03.19 09:37 Сейчас в теме
(2)По приведенной Вами ссылке совсем другая ситуация описана.
Если перенести доработанную форму в расширение, а потом удалить доработки в основной,
эти доработки не будут на результирующей форме.
Там объясняется почему так происходит.
Но в описанной Вами ситуации, новые реквизиты будут отображыены, если конечно их наименования не совпадут с наименованиям новых реквизитов в расширенной форме.
А лишние метаданные, добавленные в расширение вместе с формой можно без проблем удалить.
3. DoctorRoza 12.03.19 13:18 Сейчас в теме
(1) тут изначальный посыл смущает. Добавление каких - либо реквизитов потребует доработку, например, отчетов. печатныйх форм. Значит, придется дописывать алгоритм. В свою очередь, появятся еще внешние и т.п. подключамые объекты. Что выливается еще в лишнюю 100-ню строк кода! А сделать через доп. реквизит, чтобы вообще кода не было - отказались, по своим причинам.
4. Ioryk30 12.03.19 16:37 Сейчас в теме
(1) А как ? Пока вижу на практике именно " заморозку". Имена объектов (Документов и справочников) при обновлении в расширение не попадают.
5. unichkin 1578 12.03.19 18:47 Сейчас в теме
Я стараюсь не использовать изменение метаданных в расширении. Был прецедент когда клиент удалил расширение, и у него исчезли добавленные во время работы с ним договоры (в договоры был добавлен реквизит, расширением). После включения договоры восстановились - повезло, что не было реструктуризации.
Можно добавить свойство, и вывести его поле на форму, программно. В запросах не так удобно им пользоваться, но все же риска меньше.
rpgshnik; fxmike; Irwin; EVKash; shtinalex; +5 1 Ответить
6. insurgut 208 13.03.19 06:31 Сейчас в теме
Разница данного метода от дополнительных реквизитов по сути в том, что мы нужный реквизит поместим куда захотим? Но в дальнейшем разработчикам типовой конфигурации ничего не мешает изменить/переименовать групп реквизитов и решение станет не рабочим, в отличие от дополнительных реквизитов.
rpgshnik; +1 Ответить
8. papami 56 13.03.19 08:47 Сейчас в теме
Вот так программно из разных мест надобавляют реквизитов разработчики и, когда приспичит, сидишь и ищешь код по всей конфе, вспоминая разработчиков добрым словом. В Медицину кто заглядывал?
jONES1979; leaguener; rpgshnik; +3 Ответить
9. mpeg1989 131 13.03.19 09:08 Сейчас в теме
(8) А вы попробуйте обновить формы, когда на них через конструктор добавляют элементы. И попробуйте ничего не пропустить, а не как обычно - "ой, не работает, сейчас подключимся и посмотрим" - и так в течение недели после обновления.
myoker; buzzzard; rpgshnik; +3 Ответить
10. user633533_encantado 11 13.03.19 09:31 Сейчас в теме
Не понимаю, почему разработчики ЗУП не хотят добавить модули модификации конфигурации и их вызовы во все формы, как это сделано в УТ и прочих.
buzzzard; mark_oilbass; romankoav; +3 Ответить
12. koln 13.03.19 11:38 Сейчас в теме
Попробовал, но получил ошибку в месте
Форма.НаименованиеДляПечати = Форма.Объект.НаименованиеДляПечати;
Ругается на то, что не найден реквизит. На мой взгляд, это и логично, ведь добавляется реквизит формы, а не Объекта.
При чем пробовал даже не через расширение, а в модуле формы, в обработчике "ПриСозданииНаСервере". Может я что-то не так понял, но даже в отладчике, после добавления реквизита, он не появляется.
13. ni_cola 352 13.03.19 12:21 Сейчас в теме
(12) Проверьте порядок действий:
1. Заимствовать объект в расширение, например Справочник.ПодразделенияОрганизаций.
2. Добавить реквизит НаименованиеДляПечати в заимствованный объект в расширении.
3. Заимствовать в расширение общий модуль УправлениеСвойствами.
4. Добавить в него метод, выполняющийся после УправлениеСвойствами.ПриСозданииНаСервере() для программного создания реквизита.
14. koln 13.03.19 14:06 Сейчас в теме
(13) 1. У меня даже в модуле самой формы в основной конфигурации такую ошибку выдает, не то, что через расширение;
2. Откуда у Вас берутся данные для заполнения вновь созданного программного реквизита, которые выводятся на форму?
15. ni_cola 352 13.03.19 15:05 Сейчас в теме
(14) Приложил к статье расширение с рассматриваемым примером для скачивания
16. Eremkin 14.03.19 09:21 Сейчас в теме
В Бухгалтерии немного дорабатывал форму Инвентаризация товаров на складе. Добавил команду на форму + дополнительная форма выбора счета. Выполнил заимствование формы документа. При этом автоматически подтянулись реквизиты объекта, табличная часть. Поместил свою команду в нужное подменю на форме и удалил реквизиты с табличной частью. И все отлично отлично работает. Ранее еще добавлял новый реквизит на форму (позже удалил с формы за ненадобностью, т.к. реализовал отдельную форму выбора счета с отборами). На то и оно и расширение, чтобы не городить писанину с программным созданием различных элементов формы.
Прикрепленные файлы:
33. triviumfan 96 04.03.21 13:35 Сейчас в теме
(16) Почему выбор упал на расширение вместо доп обработки заполнения объекта?
34. Eremkin 04.03.21 13:49 Сейчас в теме
(33)Там реализована еще дополнительная логика
17. TerveRus 18.03.19 08:01 Сейчас в теме
Мотивация автора изобретать велосипед вызывает недоумение.
Да, в расширении что-то добавлять чуть сложнее, чем просто в конфигурации править, но удобства перекрывают некоторые минусы. А автор из-за нюансов работы с расширениями вовсе отказывается от расширений, еще и других такому учит.

Если Вы не знали, то у окошка расширения есть кнопочка, которая показывает только вручную добавленные объекты в расширение, скрывая автоматически заимствованные.
А в последних версиях платформы появился инструмент обновления заимствованной формы из формы поставщика.

Если уж ссылаетесь на теорию, то следите за изменениями механизма. Разработчики понимают о некоторых неудобствах, и стараются упростить жизнь с расширениями, но кто-то уже обозвал расширения злом и избегает их, это же глупо.
user1889375; user_2010; Zarikus26; stako8; +4 1 Ответить
19. ni_cola 352 18.03.19 10:01 Сейчас в теме
(17)
А в последних версиях платформы появился инструмент обновления заимствованной формы из формы поставщика.


Не знал об этом, можно поподробнее? Даже если это уже реализовано, то мне не нравится, что при заимствовании формы в расширение автоматически заимствуются объекты метаданных всех ссылочных типов, выводящихся на форму, что загромождает расширение "не нужными" объектами и в свою очередь усложняет сопровождение данного расширения.
18. Andrefan 18.03.19 09:38 Сейчас в теме
Не знал что за такую очевидность можно столько плюсов собрать)
triviumfan; +1 Ответить
20. kembrik 10 21.06.19 12:38 Сейчас в теме
Отбояриваемся пока от создания реквизитов в расширении как можем (пока получается). Не нравится вам как реализованы дополнительные реквизиты (автоматический вывод в закладке дополнительно, хранение в табличной части) - используйте Дополнительные сведения. - Удобное хранение в единственном регистре сведений, неявное для пользователей (про мааааленький гамбургер "дополнительные сведения" многие не в курсе), возможность программного вывода на форму в любое место. Да, теряем немного в быстродействии, но по своей сути в случае с реквизитами справочника это будет не сильно отличаться от того, как хранятся дополнительные реквизиты расширений, зато "случайное" отключение расширения или проблемы со сменой режима совместимости не вызовет полную потерю введенных данных
21. Yashazz 4779 23.06.19 18:40 Сейчас в теме
Вот же охота людям извращаться...

Не говоря уж о том, что с выходом каждого нового релиза ситуация по расширениям меняется. Не меняется только одно - степень их кривизны. У меня давеча вот 8.3.13.1690 стабильно ронял конфигуратор при попытке в расширенной форме удалить команду. Так что, имхо, проще грамотно курочить конфу, чем мучиться с хренью вроде "расширений". Так оно хоть стабильно.
wolfsoft; biimmap; +2 Ответить
22. Denic_01 47 23.07.19 09:53 Сейчас в теме
строка ЭлементФормы.ПутьКДанным = "НаименованиеДляПечати";

должно быть ЭлементФормы.ПутьКДанным = "Обьект.НаименованиеДляПечати";

а то не записывается в базу
23. ni_cola 352 23.07.19 13:38 Сейчас в теме
26. newtraveller 24 27.02.20 11:26 Сейчас в теме
(23) Поправьте, если я не прав. Пример публикации содержал именно программное создание реквизита формы, которое и выводилось на форму.
ЭлементФормы.ПутьКДанным = "НаименованиеДляПечати"

После данного исправления на форму выводится реквизит расширения (что логично и соответствует поставленной задаче):
ЭлементФормы.ПутьКДанным = "Объект.НаименованиеДляПечати"


Но в этом случае кусок кода оказывается лишним:
		#Область ДобавлениеРеквизитовФормы
		// Массив для новых реквизитов
		ДобавляемыеРеквизиты	= Новый Массив;
		
		// Опишем ревизиты формы
		Реквизит_НаименованиеДляПечати = Новый РеквизитФормы("НаименованиеДляПечати",	Новый ОписаниеТипов("Строка", , , Новый КвалификаторыСтроки(300)),	, "Наименование для печати");
		
		// Заполним массив после описания реквизитов формы
		ДобавляемыеРеквизиты.Добавить(Реквизит_НаименованиеДляПечати);
		
		// Добавим новые реквизиты в форму
		Форма.ИзменитьРеквизиты(ДобавляемыеРеквизиты);
		#КонецОбласти
Показать
user659168_xec8787; shalupov61; myoker; provost_ua; manuel; +5 Ответить
38. shalupov61 25.07.23 09:54 Сейчас в теме
(26) Если этот кусок кода убрать, то в строке Форма.НаименованиеДляПечати = Форма.Объект.НаименованиеДляПечати; появится ошибка:
Поле объекта "НаименованиеДляПечати" не обнаружено
Zloten; VyacheslavShilov; +2 Ответить
24. ba2000 13 30.07.19 11:28 Сейчас в теме
Подскажите, добавил через расширение в общий модуль реквизиты на форму.
А как создать обработчик при изменении?
Форму в расширение копировать не хочется, а процедура обработчика должна быть в форме.
Можно ли как то процедуру программно добавить?
27. newtraveller 24 27.02.20 11:33 Сейчас в теме
(24)
ЭлементФормы.УстановитьДействие("ПриИзменении", "ПроцедураОбработкиДействияВМодулеФормы");
VyacheslavShilov; +1 Ответить
25. Barok 12.01.20 14:09 Сейчас в теме
У меня почему то не видит реквизит, созданный в расширении, вываливается ошибка
Ошибка при установке значения атрибута контекста (ПутьКДанным)
				ЭлементФормы.ПутьКДанным = "Обьект.ЗаявкаВРозницу";
по причине:
Недопустимое значение

Реквизит ЗаявкаВрозницу создан в расширении.
В чем может быть причина?

UPD. Причина в мягком знаке :D
Innuil; Zloten; Ermigen; shiaju; shalupov61; Arzv; Wrols; maksa2005; bars21rus; broiderys; rulan87; Aleksey_1C; nofear; +13 Ответить
31. UtSpar 136 29.08.20 16:05 Сейчас в теме
(25) Тоже попался на это. DDD
36. Arzv 16.02.23 15:06 Сейчас в теме
(25) Исправьте уже в теме =) я пол часа понять не мог, что не так...
Innuil; shalupov61; +2 Ответить
28. Stivens 35 23.05.20 22:17 Сейчас в теме
У управляемой формы нет "самого первого события". И это, мягко говоря, неудобно.
Пишешь умные вещи в "при создании на сервере", а 1С-ники обработку реквизитов начинают в "При чтении", Пишешь в "При чтении", а оно не всегда есть... Да еще и при "Перечитать" пытается создать дубль и вылетает с ошибкой.
В итоге пишем и туда и туда, но проверяем наличие перед добавлением.
Неудобно.
EvilMilko; VyacheslavShilov; retr0; +3 Ответить
29. user591389_aska_rabota 24.07.20 20:04 Сейчас в теме
Николай Лазутин, огромное Вам СПАСИБО!!!

Для тех кто не сталкивался с расширениями, допетрить что надо писать программное создание реквизитов формы не просто с директивой &После("ПриСозданииНаСервере")
а в отдельном модуле было нелегко
30. UtSpar 136 29.08.20 15:43 Сейчас в теме
Использовав вашу статью сделал так:
1. в расширении добавил новый реквизит.
2. Перенес форму в расширение, удалил из дерева все подтянуты реквизиты.
3. Создал в расширении метод после "При создании на сервере", в котором программно вывел и заполнил реквизит.
32. Aleksey_1C 22.01.21 16:59 Сейчас в теме
ЭлементФормы.ПутьКДанным = "Обьект.НаименованиеДляПечати";


В слове "ОбЬект" ошибка
Innuil; user1971360; Zloten; shiaju; shalupov61; Arzv; wrooom; Para_1987; Wrols; sizeoff; doda666; Andrei_Ivanov; broiderys; +13 Ответить
39. shiaju 25 18.10.23 16:29 Сейчас в теме
(32) Удваиваю, исправьте ошибку в коде, я час гуглил прежде чем понял в чем дело.
42. Zloten 08.01.24 21:19 Сейчас в теме
(39) Пусть я покажусь грубым, но автор дятел. Тоже час потерял.
Сколько человек уже отписалось насчет ошибки.
35. wrooom 226 12.10.22 22:00 Сейчас в теме
37. shalupov61 25.07.23 08:38 Сейчас в теме
Очень полезная статья. Спасибо!
Для оппонентов, ратующих здесь за типовой механизм добавления дополнительных реквизитов: не забывайте, что не у всех объектов конфигурации есть табличная часть "ДополнительныеРеквизиты", поэтому не для всех объектов эти дополнительные реквизиты можно добавить. Пример: попробуйте создать дополнительный реквизит в документ "ЗаказОтПоставщика" - в списке объектов такого документа вы не увидите.
40. DELOVOYDOM 08.11.23 17:43 Сейчас в теме
Эта статья никакого реквизита в расширение не добавляет. Вы добавляете реквизит кликом мышки в расширении в первом пункте статьи. А все остальное это добавление поля на форму. Либо я что-то не понял, либо всем комментаторам все равно что поле что реквизит без разницы)
Статья вводит в заблуждение. Искал думал вдруг в Задачи в расширении можно добавить программно реквизит. Самое забавное что комментаторы похоже не разделяют понятие реквизит и поле на форме.
41. peper- 01.12.23 19:15 Сейчас в теме
(40)
Эта статья никакого реквизита в расширение не добавляет. Вы добавляете реквизит кликом мышки в расширении в первом пункте статьи. А все остальное это добавление поля на форму. Либо я что-то не понял, либо всем комментаторам все равно что поле что реквизит без разницы)
Статья вводит в заблуждение. Искал думал вдруг в Задачи в расширении можно добавить программно реквизит. Самое забавное что комментаторы похоже не разделяют понятие реквизит и поле на форме.

Забавно другое. А именно, что вы, критикуя автора и комментаторов, сами не разделяете понятий "реквизит объекта", "реквизит формы" и "поле формы". В примере добавляется именно "реквизит формы", который потом выводится на форму в виде "поля формы". И в названии это тоже отражено. Можете не благодарить!
ZergKRSK; +1 Ответить
Оставьте свое сообщение