Макроподстановка - Присвоить значение в реквизит &("ДополнительныйРеквизитЗначение_1253") = 0

1. Vitaly1C8 02.10.17 10:59 Сейчас в теме
Добрый день !
Есть на форме Дополнительный реквизит, необходимо присвоить значение этому реквизиту. Аналогично макроподстановке в FOX-е

НаборДопРеквизитов = Неопределено;
	Для Каждого ГруппаФормыНаборДопРеквизитов из ЭтаФорма.Элементы.ГруппаСвойства.ПодчиненныеЭлементы Цикл
		НаборДопРеквизитов = ГруппаФормыНаборДопРеквизитов;
		Прервать;
	КонецЦикла;
	
	ДопРеквизит = Неопределено;
	Для Каждого ПолеФормы из НаборДопРеквизитов.ПодчиненныеЭлементы Цикл
		ДопРеквизит = ПолеФормы;
		Прервать;
	КонецЦикла;

// ДопРеквизит .Имя = "ДополнительныйРеквизитЗначение_381EDDBFxB919x11E5x80F7x0015­5D73060F_D6CCD465xB63Bx11E6x8109x00155D73060F"

// Как сделать :
// &(ДопРеквизит .Имя) = 2017
Показать
Найденные решения
2. DenisCh 02.10.17 11:01 Сейчас в теме
Выполнить("" + Допреквизит.Имя _+ "=2017");
Vitaly1C8; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DenisCh 02.10.17 11:01 Сейчас в теме
Выполнить("" + Допреквизит.Имя _+ "=2017");
Vitaly1C8; +1 Ответить
3. user733863 27.09.18 16:36 Сейчас в теме
Это будет работать, если набор реквизитов только один и там один доп.реквизит.

В справочник контрагенты в 1С ДО у меня получилось так
НаборДопРеквизитов = Неопределено;
	Для Каждого ГруппаФормыНаборДопРеквизитов из ЭтаФорма.Элементы.ГруппаДополнительныеРеквизиты.ПодчиненныеЭлементы Цикл
	// ГруппаДополнительныеРеквизиты - это страница в форме, где несколько групп по числу наборов
		Если ГруппаФормыНаборДопРеквизитов.Заголовок= "Доп. свойства справочника ""Контрагенты"" (общие)" Тогда
			НаборДопРеквизитов = ГруппаФормыНаборДопРеквизитов;
			Прервать;
		КонецЕсли
	КонецЦикла;
	
	ДопРеквизит = Неопределено;
	Для Каждого ПолеФормы из НаборДопРеквизитов.ПодчиненныеЭлементы Цикл
	// Перебор по элементам этой группы. Тут только поля = доп.реквизитам
		Если ПолеФормы.Подсказка = "Полное официальное наименование" Тогда  // Единственный вариант отличить - это подсказка!!!
			ДопРеквизит = ПолеФормы;
			Выполнить(ДопРеквизит.Имя + "=РеквизитыКонтрагента.НаименованиеПолное");
			Прервать;
		КонецЕсли;
	КонецЦикла;
Показать
4. user733863 04.10.18 14:48 Сейчас в теме
Все данные по доп.реквизитам хранятся в ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов
Поэтому лучше так

Для каждого Строка Из ЭтаФорма.Свойства_ОписаниеДополнительныхРеквизитов Цикл // Тип ДанныеФормыЭлементыКоллекции
Если Строка.Свойство.Наименование = "Полн. юр. наименование (Доп. свойства справочника ""Контрагенты"" (общие))" Тогда
// Строка.ИмяРеквизитаЗначение = "ДополнительныйРеквизитЗначение_D9FB876AxCB8Cx11E7x9343x0024­810CC482_33135085xC182x11E8xA9C3x00155D01713F" или типа этого
// в этот объект и пишем данные
Выполнить(Строка.ИмяРеквизитаЗначение + "=РеквизитыКонтрагента.НаименованиеПолное");
Прервать;
КонецЕсли;
КонецЦикла;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот