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

23.07.19

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

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

Скачать файлы

Наименование Файл Версия Размер
Расширение конфигурации для приведенного примера
.cfe 7,00Kb
20
.cfe 7,00Kb 20 Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Расширяем возможности дополнительных обработок и настраиваем их отладку

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

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2260    YA_418728146    11    

38

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    960    5    2ncom    3    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

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

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4733    mrXoxot    11    

97

Ключи аналитик учета в ЕРП, КА, УТ

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

Разбираемся, зачем в системе ЕРП созданы справочники: ключи аналитик учета, зачем созданы аналогичные по набору измерений регистры сведений. Какие проблемы они решают, какие создают новые и что с этим делать.

08.11.2023    6769    ids79    25    

72

Распределение по базе среднего в ЗИКГУ 3.1

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

Результат расчета начислений (отпуск, БЛ и т.д.) может распределятся по базе среднего заработка. У таких начислений на вкладке "Налоги, взносы, бухучет" стоит галка "По базе среднего заработка". Но бывают случаи, что данное распределение необходимо скорректировать.

1 стартмани

14.09.2023    438    1    Vlx    0    

1

Расширение типового механизма настройки заполнения бухгалтерской отчетности (на примере конфигурации 1С:ERP. Управление холдингом 3.1.8.15)

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

В статье приведен алгоритм доработок типового механизма настройки заполнения бухгалтерской отчетности на примере конфигурации 1С:ERP. Управление холдингом (3.1.8.15). Цель доработок - сделать процесс настроек более гибким и удобным для пользователей

11.09.2023    1846    ICL-Soft    3    

12

Разбор механизма "Настройки полей формы" в 1С:ERP. Управление холдингом

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

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

18.07.2023    2101    it_box    0    

6

Работа с контактной информацией. Часть 2

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

Во второй части статьи рассмотрим вопрос преобразования адреса из старого формата в новый. Рассмотрим реальные задачи, связанные с контактной информацией.

05.06.2023    6810    biimmap    4    

41
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. alexpvs 63 12.03.19 11:20 Сейчас в теме
(4) "Во-первых добавление формы в расширение привело бы к её "заморозке", то есть если форма будет меняться разработчиками в последующих релизах, то эти изменения не будут больше отображаться, пользователи будут видеть как бы "снимок" формы, который был при её добавлении в расширение" - это не так.
2. ni_cola 331 12.03.19 12:33 Сейчас в теме
(1) При заимствовании формы в расширение платформа использует сразу 3 формы: Форму из основной конфигурации, Сохраненную форму (я назвал её "замороженной") и Форму из расширения. Они взаимодействуют между собой и в результате мы получаем Результирующую форму. В результате такого взаимодействия может быть, например, такая ситуация: мы доработали форму в расширении, потом в новом релизе добавили реквизиты, но они на форме не отображаются.
Более подробно тут: https://xn----1-bedvffifm4g.xn--p1ai/news/2017-11-24-forms-customization-by-using-extensions/
7. alexpvs 63 13.03.19 07:45 Сейчас в теме
(2) Смотря как поменяли форму в расширении.
Вот простейший пример: у поставщика документ с 2 реквизитами, в первом релизе выглядит так (см шаг1).
Заимствуем эту форму в расширение, добавляем свой реквизит на форму, выводим в конец формы его. (см. шаг2).
После этого поставщик делает 2 релиз, в котором у одного реквизита меняет синоним, у второго реквизита меняет имя и синоним. И на форме свои два реквизита помещает в горизонтальную группу. После этих изменений, расширение продолжает работать, и изменения поставщика присутствуют в результирующей форме (см. шаг3)
Прикрепленные файлы:
11. ids79 8275 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 1559 12.03.19 18:47 Сейчас в теме
Я стараюсь не использовать изменение метаданных в расширении. Был прецедент когда клиент удалил расширение, и у него исчезли добавленные во время работы с ним договоры (в договоры был добавлен реквизит, расширением). После включения договоры восстановились - повезло, что не было реструктуризации.
Можно добавить свойство, и вывести его поле на форму, программно. В запросах не так удобно им пользоваться, но все же риска меньше.
rpgshnik; fxmike; Irwin; EVKash; shtinalex; +5 1 Ответить
6. insurgut 207 13.03.19 06:31 Сейчас в теме
Разница данного метода от дополнительных реквизитов по сути в том, что мы нужный реквизит поместим куда захотим? Но в дальнейшем разработчикам типовой конфигурации ничего не мешает изменить/переименовать групп реквизитов и решение станет не рабочим, в отличие от дополнительных реквизитов.
rpgshnik; +1 Ответить
8. papami 55 13.03.19 08:47 Сейчас в теме
Вот так программно из разных мест надобавляют реквизитов разработчики и, когда приспичит, сидишь и ищешь код по всей конфе, вспоминая разработчиков добрым словом. В Медицину кто заглядывал?
jONES1979; leaguener; rpgshnik; +3 Ответить
9. mpeg1989 130 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 331 13.03.19 12:21 Сейчас в теме
(12) Проверьте порядок действий:
1. Заимствовать объект в расширение, например Справочник.ПодразделенияОрганизаций.
2. Добавить реквизит НаименованиеДляПечати в заимствованный объект в расширении.
3. Заимствовать в расширение общий модуль УправлениеСвойствами.
4. Добавить в него метод, выполняющийся после УправлениеСвойствами.ПриСозданииНаСервере() для программного создания реквизита.
14. koln 13.03.19 14:06 Сейчас в теме
(13) 1. У меня даже в модуле самой формы в основной конфигурации такую ошибку выдает, не то, что через расширение;
2. Откуда у Вас берутся данные для заполнения вновь созданного программного реквизита, которые выводятся на форму?
15. ni_cola 331 13.03.19 15:05 Сейчас в теме
(14) Приложил к статье расширение с рассматриваемым примером для скачивания
16. Eremkin 14.03.19 09:21 Сейчас в теме
В Бухгалтерии немного дорабатывал форму Инвентаризация товаров на складе. Добавил команду на форму + дополнительная форма выбора счета. Выполнил заимствование формы документа. При этом автоматически подтянулись реквизиты объекта, табличная часть. Поместил свою команду в нужное подменю на форме и удалил реквизиты с табличной частью. И все отлично отлично работает. Ранее еще добавлял новый реквизит на форму (позже удалил с формы за ненадобностью, т.к. реализовал отдельную форму выбора счета с отборами). На то и оно и расширение, чтобы не городить писанину с программным созданием различных элементов формы.
Прикрепленные файлы:
33. triviumfan 91 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 331 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 4707 23.06.19 18:40 Сейчас в теме
Вот же охота людям извращаться...

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

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

а то не записывается в базу
23. ni_cola 331 23.07.19 13:38 Сейчас в теме
26. newtraveller 23 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 23 27.02.20 11:33 Сейчас в теме
(24)
ЭлементФормы.УстановитьДействие("ПриИзменении", "ПроцедураОбработкиДействияВМодулеФормы");
VyacheslavShilov; +1 Ответить
25. Barok 12.01.20 14:09 Сейчас в теме
У меня почему то не видит реквизит, созданный в расширении, вываливается ошибка
Ошибка при установке значения атрибута контекста (ПутьКДанным)
				ЭлементФормы.ПутьКДанным = "Обьект.ЗаявкаВРозницу";
по причине:
Недопустимое значение

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

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

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


В слове "ОбЬект" ошибка
user1971360; Zloten; shiaju; shalupov61; Arzv; wrooom; Para_1987; Wrols; sizeoff; doda666; Andrei_Ivanov; broiderys; +12 Ответить
39. shiaju 25 18.10.23 16:29 Сейчас в теме
(32) Удваиваю, исправьте ошибку в коде, я час гуглил прежде чем понял в чем дело.
42. Zloten 08.01.24 21:19 Сейчас в теме
(39) Пусть я покажусь грубым, но автор дятел. Тоже час потерял.
Сколько человек уже отписалось насчет ошибки.
35. wrooom 171 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)
Эта статья никакого реквизита в расширение не добавляет. Вы добавляете реквизит кликом мышки в расширении в первом пункте статьи. А все остальное это добавление поля на форму. Либо я что-то не понял, либо всем комментаторам все равно что поле что реквизит без разницы)
Статья вводит в заблуждение. Искал думал вдруг в Задачи в расширении можно добавить программно реквизит. Самое забавное что комментаторы похоже не разделяют понятие реквизит и поле на форме.

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