Условное оформление по дополнительному реквизиту

1. user1903812 01.06.23 09:53 Сейчас в теме
Здравствуйте.
Конфигурация ERP
Необходимо реализовать, чтобы в Документе.ЗаказКлиента при заполнении таблицы Товары в зависимости от значения дополнительного реквизита «Хар-ка формирования запасов» фон строки разных товаров красились в разные цвета. Пробую делать через Условноное оформление программно, смог добиться только, чтобы по какому-то реквизиту строки красились в один цвет (взял розовый). Также есть проблема с получением значения дополнительного реквизита, так как я делаю это через запрос, но не очень понимаю каким образом могу получить для каждого товара в заказе свое значение, видимо я не очень правильно задаю значение &Cсылки в параметре запроса.

Вопроса 2:
1. Как я могу сделать разбивку по цветам в зависимости от значения реквизита? То есть не чтобы был розовый, а допустим как в моем примере все позиции с артикулом МС7429 были бы красные, а все МО564 зеленые.
2. Что не так в запросе на получение Характеристики формирования запасов и как его можно исправить, чтобы я вместо артикула мог подставлять значения доп.реквизита Хар-ка формирования запасов и в зависимости от значений у каждого товара менять цвета?

Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	НоменклатураДополнительныеРеквизиты.Значение КАК Значение
	|ИЗ
	|	Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
	|ГДЕ
	|	НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка
	|	И НоменклатураДополнительныеРеквизиты.Свойство = &Свойство";
	Запрос.УстановитьПараметр ("Ссылка", );
	Запрос.УстановитьПараметр ("Свойство",
							ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Хар-ка формирования запасов"));
	ХаркаФормЗапасов = Запрос.Выполнить().Выбрать();
							
	// Отчистка примененнных оформлений	
	УсловноеОформление.Элементы.Очистить();
	
	
	// Заполнение массива столбцами, для которых будет изменяться цвет фона	
	МассивИменКолонокДляПодсветки = Новый Массив;	
	Для каждого Стр из Элементы.Товары.ПодчиненныеЭлементы Цикл
	    МассивИменКолонокДляПодсветки.Добавить(Стр.Имя);
	КонецЦикла;
	
	ЭлементОформления				= УсловноеОформление.Элементы.Добавить();
	ЭлементОформления.Использование	= Истина;
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(222, 122, 180));
	
	ЭлементУсловияГруппа				= ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ЭлементУсловияГруппа.ТипГруппы		= ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
	ЭлементУсловияГруппа.Использование	= Истина;		

	ЭлементУсловия                = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));		
	ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
	ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементУсловия.ПравоеЗначение = "МС7429";
	ЭлементУсловия.Использование  = Истина;
	
	ЭлементУсловия                = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
	ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементУсловия.ПравоеЗначение = "МО564";   
	ЭлементУсловия.Использование  = Истина;	
	
	Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл		
		ОформляемоеПоле      = ЭлементОформления.Поля.Элементы.Добавить();
	    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
	КонецЦикла;
Показать


Первая половина это запрос, вторая УсловноеОформление программно.
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. polax 01.06.23 12:23 Сейчас в теме
(1)
видимо я не очень правильно задаю значение &Cсылки в параметре запроса.

Параметр Ссылка вообще не задан. Покажи код процедуры сначала и до условного оформления. Скорей всего этот запрос в цикле. Тогда получай текущие данные и в качестве ссылки передавай значение номенклатуры из строки тек данных
3. user1903812 01.06.23 12:55 Сейчас в теме
(2)
В данном случае да, параметр "Ссылка" для запроса отсутствует, так как он ругается на любой параметр, который я подставлял (ЭтотОбъетк, ТекЭлемент, Ссылка, Справочники.Номенклатура.Ссылка и т.д.). Просто отказывался открывать заказ, поэтому я временно решил оставить значение пустым.

Сама процедура, так как это расширение конфигурации — точная копия процедуры УстановитьУсловноеОформление(), куда я и дописывал свой код.
&НаСервере
&Вместо("УстановитьУсловноеОформление")
Процедура сс_УстановитьУсловноеОформление()

	УсловноеОформление.Элементы.Очистить();

	ОперацииПередачи = ПродажиСервер.ОперацииПередачиТоваров();

	// Условное оформление обеспечения.
	ОбщегоНазначенияУТ.УстановитьСнятьОтметкуНезаполненного(
		УсловноеОформление, "ДатаОтгрузки", "Объект.ДатаОтгрузки", "ДатаОтгрузкиОбязательна");
	
	ОбщегоНазначенияУТ.УстановитьСнятьОтметкуНезаполненного(
		УсловноеОформление, "ТоварыДатаОтгрузки", "Объект.Товары.ДатаОтгрузки", "Объект.Товары.ДатаОтгрузкиОбязательна");
	
	ОбщегоНазначенияУТ.УстановитьСнятьОтметкуНезаполненного(
		УсловноеОформление, "Склад", "Объект.Склад", "СкладОбязателен");
	
	ОбщегоНазначенияУТ.УстановитьСнятьОтметкуНезаполненного(
		УсловноеОформление, "ТоварыСклад", "Объект.Товары.Склад", "Объект.Товары.СкладОбязателен");
		
	ОбеспечениеВДокументахСервер.УстановитьУсловноеОформлениеОбособленно(
		УсловноеОформление,
		Элементы.ТоварыОбособленно,
		"Объект.Товары.ВариантОбеспечения",
		"Объект.Товары.ТипНоменклатуры");
		
	ОбеспечениеВДокументахСервер.ДоступныеОстаткиДобавитьОформлениеКолонкиДоступно(ЭтотОбъект);
	
	// сс+++
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	НоменклатураДополнительныеРеквизиты.Значение КАК Значение
	|ИЗ
	|	Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
	|ГДЕ
	|	НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка
	|	И НоменклатураДополнительныеРеквизиты.Свойство = &Свойство";
	Запрос.УстановитьПараметр ("Ссылка", );
	Запрос.УстановитьПараметр ("Свойство",
							ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Хар-ка формирования запасов"));
	ХаркаФормЗапасов = Запрос.Выполнить().Выбрать();
							
	// Отчистка примененнных оформлений	
	УсловноеОформление.Элементы.Очистить();
	
	
	// Заполнение массива столбцами, для которых будет изменяться цвет фона	
	МассивИменКолонокДляПодсветки = Новый Массив;	
	Для каждого Стр из Элементы.Товары.ПодчиненныеЭлементы Цикл
	    МассивИменКолонокДляПодсветки.Добавить(Стр.Имя);
	КонецЦикла;
	
	ЭлементОформления				= УсловноеОформление.Элементы.Добавить();
	ЭлементОформления.Использование	= Истина;
	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(222, 122, 180));
	
	ЭлементУсловияГруппа				= ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ЭлементУсловияГруппа.ТипГруппы		= ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
	ЭлементУсловияГруппа.Использование	= Истина;		

	ЭлементУсловия                = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));		
	ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
	ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементУсловия.ПравоеЗначение = "МС7429";
	ЭлементУсловия.Использование  = Истина;
	
	ЭлементУсловия                = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
	ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
	ЭлементУсловия.ПравоеЗначение = "МО564";   
	ЭлементУсловия.Использование  = Истина;	
	
	Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл		
		ОформляемоеПоле      = ЭлементОформления.Поля.Элементы.Добавить();
	    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
	КонецЦикла;	
	
	// сс---
	
	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Состояние.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СостояниеПросрочено");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Истина;

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ПросроченныйДокумент);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Состояние.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Состояние");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Перечисления.СостоянияЗаказовКлиентов.Закрыт;

	Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", ЦветаСтиля.ЗакрытыйДокумент);
	
	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПроцентАвтоматическойСкидки.Имя);

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаАвтоматическойСкидки.Имя);

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыПроцентРучнойСкидки.Имя);

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаРучнойСкидки.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Отменено");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Ложь;

	Элемент.Оформление.УстановитьЗначениеПараметра("ВыделятьОтрицательные", Истина);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЦена.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ВидЦены");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
	Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСумма.Имя);

	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

	ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;

	ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ВидЦены");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;

	ГруппаОтбора3 = ГруппаОтбора2.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;

	ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьРучныеСкидкиВПродажах");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Ложь;

	ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
	ОтборЭлемента.ПравоеЗначение = ОперацииПередачи;

	Элемент.Оформление.УстановитьЗначениеПараметра("ТолькоПросмотр", Истина);

	//
	
	УчетНДСУП.УстановитьУсловноеОформлениеСуммНДСПоНалогообложениюПродажи(ЭтаФорма);

	//

	ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеЦенаВключаетНДС(ЭтаФорма);

	//

	НоменклатураСервер.УстановитьУсловноеОформлениеЕдиницИзмерения(ЭтаФорма);

	//

	ОбщегоНазначенияУТ.УстановитьУсловноеОформлениеПриоритета(ЭтаФорма);

	//

	НоменклатураСервер.УстановитьУсловноеОформлениеХарактеристикНоменклатуры(ЭтаФорма);

	//

	СкладыСервер.УстановитьУсловноеОформлениеСкладаВТЧ(ЭтаФорма);

	//
	
	СкладыСервер.УстановитьУсловноеОформлениеПодразделенияВТЧ(ЭтаФорма);
	
	//

	Элемент = УсловноеОформление.Элементы.Добавить();

	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыЗаполнитьСкладВВыделенныхСтроках.Имя);

	ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("СкладГруппа");
	ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
	ОтборЭлемента.ПравоеЗначение = Ложь;

	Элемент.Оформление.УстановитьЗначениеПараметра("Доступность", Ложь);

	//

	ЦеныПредприятияЗаполнениеСервер.УстановитьУсловноеОформлениеВидовЦен(ЭтаФорма);

	//
	
	НоменклатураСервер.УстановитьУсловноеОформлениеСодержания(ЭтаФорма);

	//
	
	ПараметрыУстановки = МногооборотнаяТараСервер.ПараметрыУстановкиУсловногоОформленияДляСтрокСМногооборотной­Тарой();
	
	ПараметрыУстановки.Форма                 = ЭтаФорма;
	ПараметрыУстановки.ЭтоПоступление        = Истина;
	
	МногооборотнаяТараСервер.УстановитьУсловноеОформлениеДляСтрокСМногооборотнойТарой(ПараметрыУстановки);

	//

	НоменклатураСервер.УстановитьУсловноеОформлениеСерийНоменклатуры(ЭтаФорма, "СерииВсегдаВТЧТовары");

	//

	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	Приоритеты.Ссылка КАК Приоритет,
	|	Приоритеты.Цвет   КАК Цвет
	|ИЗ
	|	Справочник.Приоритеты КАК Приоритеты");
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Если НЕ РезультатЗапроса.Пустой() Тогда
		
		Выборка = РезультатЗапроса.Выбрать();
		
		Пока Выборка.Следующий() Цикл
			
			Элемент = УсловноеОформление.Элементы.Добавить();

			ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
			ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Приоритет.Имя);

			ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Приоритет");
			ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
			ОтборЭлемента.ПравоеЗначение = Выборка.Приоритет;

			Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", Выборка.Цвет.Получить());
			
		КонецЦикла;
		
	КонецЕсли;

	//

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

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Договор.Имя);
	
	ГруппаОтбора1 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
	
		ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьДоговорыСКлиентами");
		ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		ОтборЭлемента.ПравоеЗначение = Истина;
		
		ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Договор");
		ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
		
		ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
		ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
		
			ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьПередачуТоваровНаХранение");
			ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
			ОтборЭлемента.ПравоеЗначение = Истина;
			
			ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КомиссионныеПродажи25");
			ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
			ОтборЭлемента.ПравоеЗначение = Истина;
			
			ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьСоглашенияСКлиентами");
			ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
			ОтборЭлемента.ПравоеЗначение = Истина;
			
		ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
		ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
			
			ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Соглашение");
			ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
			
			ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
			ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
			ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПоставкаПодПринципала;
		
	Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Истина);

	//

	Элемент = УсловноеОформление.Элементы.Добавить();
	
	ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
	ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.Договор.Имя);
	
	ГруппаОтбора0 = Элемент.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
	ГруппаОтбора0.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаНЕ;

		ГруппаОтбора1 = ГруппаОтбора0.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
		ГруппаОтбора1.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;
		
			ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьДоговорыСКлиентами");
			ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
			ОтборЭлемента.ПравоеЗначение = Истина;
		
			ОтборЭлемента = ГруппаОтбора1.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
			ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Договор");
			ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
			
			ГруппаОтбора2 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
			ГруппаОтбора2.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
			
				ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
				ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьПередачуТоваровНаХранение");
				ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
				ОтборЭлемента.ПравоеЗначение = Истина;
				
				ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
				ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("КомиссионныеПродажи25");
				ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
				ОтборЭлемента.ПравоеЗначение = Истина;
				
				ОтборЭлемента = ГруппаОтбора2.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
				ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ИспользоватьСоглашенияСКлиентами");
				ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
				ОтборЭлемента.ПравоеЗначение = Истина;
				
			ГруппаОтбора3 = ГруппаОтбора1.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
			ГруппаОтбора3.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
				
				ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
				ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Соглашение");
				ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;
				
				ОтборЭлемента = ГруппаОтбора3.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
				ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ХозяйственнаяОперация");
				ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
				ОтборЭлемента.ПравоеЗначение = Перечисления.ХозяйственныеОперации.ПоставкаПодПринципала;
			
		Элемент.Оформление.УстановитьЗначениеПараметра("ОтметкаНезаполненного", Ложь);

КонецПроцедуры
Показать
4. polax 01.06.23 13:09 Сейчас в теме
Ну нет. Это же процедура УсловноеОформление вызываемая из ПриСозданииНаСервере какого-то документа? Откуда там ссылка на номенклатуру. Тогда либо в цикле этот запрос(так себе решение) типа
Для Каждого Стр ИЗ Объект,ТвояТЧ Цикл
// Твой запрос и параметр "Ссылка" = Стр.Номенклатура

Либо (лучше решение) Запрос к справочнику Номенклатура с отбором по массиву номенклатуры
ГДЕ НоменклатураДополнительныеРеквизиты.Ссылка В ( &Массив)
// а массив получаешь выгрузкой колонки Номенклатура из своей ТЧ
// Уже в обработке запроса в цикле Пока устанавливаешь усл оформление строки в зависимости от доп реквизита
user1903812; +1 Ответить
5. user1903812 01.06.23 13:18 Сейчас в теме
(4) Вроде как понял Вас, благодарю за ответ, если получится, то отпишусь.
А еще вопрос по УсловномуОформлению, чтобы в зависимости от разных параметров разные цвета строк получать, можете подсказать в каком направлении копать?
6. user1903812 01.06.23 13:27 Сейчас в теме
(4)Еще вопрос, я правильно понимаю, что для более лучшего решения нужно добавить Цикл в котором будет происходить заполнение Массива через еще один запрос и потом данные из этого Массива (В котором содержатся данные номенклатуры) передать в следующий запрос, который у меня уже прописан?
7. user1826630 01.06.23 14:00 Сейчас в теме
(6) Даёшь больше циклов!!!
12. user1903812 02.06.23 15:01 Сейчас в теме
(4)polax, уже второй день бьюсь, не могу понять, если будет возможность, можешь сказать в чем проблема может быть?

Дошел до того, что код пока имеет такую структуру, но при попытки получить 1 значение из трех (там просто 3 варианта "Выпуск под заказ", "Ограниченный объем", "Складская продукция") он выдает что-то вроде того, что на картинке. То есть наименования получаю, но сам дополнительный реквизит для сравнения какой-то кривой.

Если просто оставить при выводе
Сообщить(ХаркаФормЗапасов);

то выводит пустые значения

&НаСервере
Процедура ую_ТоварыПриИзмененииПослеНаСервере()
	
	РеквизитОбъект = РеквизитФормыВЗначение("Объект");
	МассивТЧ = РеквизитОбъект.Товары.ВыгрузитьКолонку("Номенклатура");	
	
    Для Инд = 0 По МассивТЧ.ВГраница() Цикл
		
		  Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	НоменклатураДополнительныеРеквизиты.Значение КАК Значение
		|ИЗ
		|	Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
		|ГДЕ
		|	НоменклатураДополнительныеРеквизиты.Ссылка В (&Массив)
		|	И НоменклатураДополнительныеРеквизиты.Свойство = &Свойство";
		
		Запрос.УстановитьПараметр ("Массив", МассивТЧ[Инд]);
		Запрос.УстановитьПараметр ("Свойство",
								ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Хар-ка формирования запасов"));
		ХаркаФормЗапасов = Запрос.Выполнить().Выгрузить();
		
		Сообщить(ЗначениеВСтрокуВнутр(ХаркаФормЗапасов));
		
		//ЭлементыТЧ = ЭтаФорма.Элементы;
		//УсловноеОформление = Этаформа.УсловноеОформление;
		//ЭлементОформления = УсловноеОформление.Элементы.Добавить();
		//ЭлементОформления.Использование = Истина;
		//
		//Если Строка(ХаркаФормЗапасов) = "Выпуск под заказ" Тогда
		//	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый);
		//ИначеЕсли Строка(ХаркаФормЗапасов) = "Ограниченный объем" Тогда
		//	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный);
		//Иначе
		//	ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Синий);	
		//КонецЕсли;
		
		// Заполнение массива столбцами, для которых будет изменяться цвет фона	
		//МассивИменКолонокДляПодсветки = Новый Массив;	
		//Для каждого Стр из Элементы.Товары.ПодчиненныеЭлементы Цикл
		//    МассивИменКолонокДляПодсветки.Добавить(Стр.Имя);
		//КонецЦикла;
		//
		//ЭлементОформления				= УсловноеОформление.Элементы.Добавить();
		//ЭлементОформления.Использование	= Истина;
		//ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(222, 122, 180));
		//
		//ЭлементУсловияГруппа				= ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
		//ЭлементУсловияГруппа.ТипГруппы		= ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
		//ЭлементУсловияГруппа.Использование	= Истина;		

		//ЭлементУсловия                = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));		
		//ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
		//ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
		//ЭлементУсловия.ПравоеЗначение = "МС7429";
		//ЭлементУсловия.Использование  = Истина;
		//
		//ЭлементУсловия                = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		//ЭлементУсловия.ЛевоеЗначение  = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
		//ЭлементУсловия.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
		//ЭлементУсловия.ПравоеЗначение = "МО564";   
		//ЭлементУсловия.Использование  = Истина;	
		//
		//Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл		
		//	ОформляемоеПоле      = ЭлементОформления.Поля.Элементы.Добавить();
		//    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
		//КонецЦикла;
		
	КонецЦикла;
	 
	// сс+++
							
	//Отчистка примененнных оформлений	
	//УсловноеОформление.Элементы.Очистить();
	
		
	
	// сс---	 
	 
КонецПроцедуры
Показать
Прикрепленные файлы:
8. user1826630 01.06.23 14:02 Сейчас в теме
В чем проблема создать новый реквизит формы для ТЧ, и заполнять его допхарактеристиками при создании на сервере и при изменении номенклатуры?
9. polax 01.06.23 14:04 Сейчас в теме
(6) Никаких запросов и циклов не надо
 Массив = Объект.ИмяТвоейТЧ.ВыгрузитьКолонку("Номенклатура")


(5) Ну примерно так:
Элементы = ЭтаФорма.Элементы;
    УсловноеОформление = ЭтаФорма.УсловноеОформление;
     ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Использование = Истина;
Если Выборка.Значение.Наименование = "Один" Тогда
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный);
ИначеЕсли Выборка.Значение.Наименование = "Два" Тогда
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый);
Иначе
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Синий);
КонецЕсли;
Показать
user1903812; +1 Ответить
10. user1903812 01.06.23 14:38 Сейчас в теме
(9)Ура, по поводу массива номенклатуры всё получилось, благодарю Вас за помощь. Единственный нюанс, что я добавил новый товар в заказ и как я понимаю массив не обновился, а для real-time отслеживания товаров в заказе нужно создавать какое-то подобие постоянного сканирования и проверки?

Я может опять со своими циклами, но)
Прикрепленные файлы:
11. polax 01.06.23 14:47 Сейчас в теме
(10)
а для real-time отслеживания товаров в заказе нужно создавать какое-то подобие постоянного сканирования и проверки?

Нужно событие поля ТЧ НоменклатураПриИзменении, в котором получать сачала текущие данные, потом значение доп реквизита и менять фон
user1903812; +1 Ответить
13. polax 02.06.23 16:10 Сейчас в теме
(12)
Процедура ую_ТоварыПриИзмененииПослеНаСервере()
    Инд = Элементы.Товары.ТекущаяСтрока;
   
          Запрос = Новый Запрос;
        Запрос.Текст = 
        "ВЫБРАТЬ
        |    НоменклатураДополнительныеРеквизиты.Значение КАК Значение
        |ИЗ
        |    Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
        |ГДЕ
        |    НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка
        |    И НоменклатураДополнительныеРеквизиты.Свойство = &Свойство"; 
Запрос.УстановитьПараметр ("Ссылка", Объект.Товары[инд].Номенклатура);
        Запрос.УстановитьПараметр ("Свойство",
                                ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Хар-ка формирования запасов"));
        Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
   Элементы = ЭтаФорма.Элементы;
    УсловноеОформление = ЭтаФорма.УсловноеОформление;     
       Выборка.Следующий()
  
     ЭлементОформления = УсловноеОформление.Элементы.Добавить();
    ЭлементОформления.Использование = Истина;
Если Выборка.Значение.Наименование = "Один" Тогда
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный);
ИначеЕсли Выборка.Значение.Наименование = "Два" Тогда
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый);
Иначе
    ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Синий);
КонецЕсли;
КонецЕсли;
КонецПроцедуры;
Показать
14. user1903812 02.06.23 17:01 Сейчас в теме
(13)Не знаю почему, у меня как-то не хочет срабатывать.
Ругается на «Метод объекта не обнаружен (ВыгрузитьКолонку)» в строке
МассивТЧ = РеквизитОбъект.Товары.ВыгрузитьКолонку("Номенклатура");

Если заменить на:
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
	МассивТЧ = РеквизитОбъект.Товары.ВыгрузитьКолонку("Номенклатура");

то выдает ошибку для «Поле объекта недоступно для записи (Элементы)» в строке:
Элементы = ЭтаФорма.Элементы;

если заменить на строку:
ЭлементыТЧ = ЭтаФорма.Элементы;

то начинает ругаться на «Поле объекта недоступно для записи (УсловноеОформление)» в строке:
УсловноеОформление = ЭтаФорма.УсловноеОформление;

буквально не понимаю в чем прикол, погуглил, пишут, что проблема может быть в попытке изменить реквизиты, которые не поддаются изменению. Как я могу это решить?
19. user1826630 02.06.23 17:35 Сейчас в теме
(14)
Ругается на «Метод объекта не обнаружен (ВыгрузитьКолонку)» в строке
Потому что Клиент
то выдает ошибку для «Поле объекта недоступно для записи (Элементы)» в строке:
Давно ли служебное свойство (коллекция) Элементы стало доступно для прямой записи?
то начинает ругаться на «Поле объекта недоступно для записи (УсловноеОформление)» в строке:
Давно ли служебное свойство (коллекция) УсловноеОформление стало доступно для прямой записи?
20. user1903812 02.06.23 17:50 Сейчас в теме
(19)Не, я на сервере выполняю, там клиент только на вызов процедуры серверной идет.
21. user1826630 02.06.23 17:56 Сейчас в теме
(20) И что, у коллекции формы есть такой метод - ВыгрузитьКолонку?
15. polax 02.06.23 17:12 Сейчас в теме
Код выше просто скопируй
16. user1903812 02.06.23 17:27 Сейчас в теме
(15)
Скопировал, вставил по сути без изменений. При обновлении конфигурации базы выдает служебное сообщение

Переменная не определена (Выборка)
<<?>>Выборка.Следующий(); (Проверка: Сервер)

Я добавил «;», потому что он иначе ругается на отсутствия символа конца строки.

Возможно там цикл в который входит УсловноеОформление, но тогда тоже ругается.
17. user1826630 02.06.23 17:32 Сейчас в теме
(16)
Переменная не определена (Выборка)
>Выборка.Следующий(); (Проверка: Сервер)
То есть слабо самостоятельно найти ошибку в чужом некрасивом коде?
18. polax 02.06.23 17:33 Сейчас в теме
Точно, пропустил. Перед Выборка.Следующий() Вставь
Выборка = Результат.Выбрать();
22. user1903812 02.06.23 18:22 Сейчас в теме
(18)Добавил, но начал вылезать снова та ошибка с «Поле объекта недоступно для записи (Элементы)» в строке:
Элементы = ЭтаФорма.Элементы;

Однако это стало теперь происходить только с теми товарами, которые имеют какое-то значение в этом дополнительном реквизите. То есть просто товары добавляет без ошибок.
23. user1826630 02.06.23 18:49 Сейчас в теме
(22) То есть, (19) ты не читал, да?
24. user1903812 02.06.23 22:17 Сейчас в теме
(23)Как я могу правильно реализовать в коде запись этих данных?
25. user1826630 02.06.23 22:28 Сейчас в теме
(24) Элементарно. Когда научишься различать служебные имена свойств и свои собственные - тогда и сможешь.
Дам наводку: чем отличаются Элементы от ЭтаФорма.Элементы в модуле формы?
26. user1903812 07.06.23 11:52 Сейчас в теме
(25)
Без понятия. Я прогуглил, по всей видимости разница в ссылке на конкретную форму, которая используется? Просто как я могу получить характеристику на текущий товар, который выделен в товарах на форме ЗаказКлиента?
27. user1826630 07.06.23 11:57 Сейчас в теме
(26)
Без понятия. Я прогуглил
А в СП заглянуть слабо?
ссылке на конкретную форму
У формы есть ссылка?
28. user1903812 07.06.23 12:27 Сейчас в теме
(27)
Совет про Справку хороший, но понятия ЭтаФорма.Элементы нет, есть только ЭтаФорма. Служит для получения текущей (данной) формы и передачи дальше в формы, процедуры, ну и функции.
Элементы — реквизит формы, который на ней расположен.
29. пользователь 07.06.23 12:38
Сообщение было скрыто модератором.
...
30. user1826630 07.06.23 13:42 Сейчас в теме
(28) Ну пожаловался ты модератору. Ну скрыл он моё сообщение.
Тебе полегчало? Твоя проблема решилась?
Лучше бы прислушался к совету, и поискал бы в СП слово Элементы. Есть вероятность, что это тебе помогло бы больше, чем жалоба на меня.

Хотя, мне-то абсолютно пофиг на твои проблемы...
33. user1903812 07.06.23 14:34 Сейчас в теме
(30)
Жалоба была на конкретное недостойное общение, без учета, что человек может иметь мало опыта в 1С и ему требуется помощь. Если Вы заметили, я все Ваши сообщения читаю и стараюсь корректно отвечать прислушиваясь даже к язвительным высказываниям как к советам без перехода на личности и токсичности в ответ, потому что я понимаю, что Вы пытаетесь помочь, за это Вам спасибо.

Я послушал совет, поискал в Справочнике слово Элементы (возможно искал не очень правильно, делал через поиск листая весь список, искал и через «Индекс» и через «Поиск»), удалось найти «Элементы формы» и другие похожие варианты, просто «Элементы» мне найти не удалось.
Есть Форма.ЭлементыФормы, возможно это то что нужно?
34. user1826630 07.06.23 14:41 Сейчас в теме
(33) Слушай, недостойно - это спорить с профессионалами, являясь при этом ламерами (и не отрицая этого). А тем более жаловаться на них.
А еще недостойно - уметь пользоваться поиском по прямым советам профессионалов.
А еще недостойно - перевирать сообщения, ибо
поискал в Справочнике слово Элементы
я разве советовал искать в Справочнике??? Я советовал искать в СП. Или ты реально думаешь ,что управление элементами формы как-то различается в Справочниках, Документах, Регистрах и прочих метаданных???

делал через поиск листая весь список, искал и через «Индекс» и через «Поиск»
На тебе, через обычный Индекс. Есть там просто "Элементы". И не надо тут жалкие оправдания лепетать.
Прикрепленные файлы:
36. user1903812 07.06.23 14:56 Сейчас в теме
(34)
Я советовал искать в СП

Правильно ли я понимаю, что СП — это Справочник? Или это не Справочник, а Синтакс-Помощник?


(34)
На тебе, через обычный Индекс.

Таким образом я тоже находил множество элементов в разных разделах Справочника, однако не понимал в какой именно переходить.
35. spacecraft 07.06.23 14:49 Сейчас в теме
(33) в СП Форма это форма обычного приложения. Форма.ЭлементыФормы это так же для обычного приложения.
Управляемая форма в СП (Синтакс-помощник) называется ФормаКлиентскогоПриложения.
Чтобы легко отличать, к какой форме что относится, достаточно посмотреть Доступность. Если там только Толстый клиент, то это для обычной формы. Если там есть и Тонкий клиент, то это управляемая форма.
31. spacecraft 07.06.23 13:59 Сейчас в теме
(28)
Совет про Справку хороший, но понятия ЭтаФорма.Элементы нет, есть только ЭтаФорма. Служит для получения текущей (данной) формы и передачи дальше в формы, процедуры, ну и функции.
Элементы — реквизит формы, который на ней расположен.

В модуле управляемой форме ЭтаФорма и ЭтотОбъект синонимы.
Теперь СП:
ФормаКлиентскогоПриложения (ClientApplicationForm)
ЭтотОбъект (ThisObject)
Использование:
Только чтение.
Описание:
Тип: ФормаКлиентскогоПриложения.
Содержит данную форму. Может быть использовано в модуле формы для получения данной формы и передачи ее в качестве параметра в другие формы, глобальные процедуры и функции и т.д.

ФормаКлиентскогоПриложения (ClientApplicationForm)
Свойства:
<Имя реквизита> (<Attribute name>)
...
Элементы (Items)
ЭтотОбъект (ThisObject)

ФормаКлиентскогоПриложения (ClientApplicationForm)
Элементы (Items)
Использование:
Только чтение.
Описание:
Тип: ВсеЭлементыФормы.
Содержит коллекцию всех элементов формы клиентского приложения для прямого доступа вне зависимости от иерархии
.

В модуле управляемой формы Элементы и ЭтотОбъект.Элементы и ЭтаФорма.Элементы по сути одно и то же. И это не реквизит формы от слова совсем.
32. user1826630 07.06.23 14:29 Сейчас в теме
(31) Думаешь, до него дойдет?
Потом еще и с понятием УсловноеОформление разбираться придется.
Оно тебе надо? Ну не хочет человек изучать азы, ну и фиг с ним.
37. user1903812 07.06.23 15:11 Сейчас в теме
(34)
То есть строку которую писали в коде ранее:
Элементы = ЭтаФорма.Элементы;

требуется убрать, так как она ошибочна? Тут же получается тогда масло масленое. Если и «Элемент» и «ЭтаФорма» — это по сути одно и то же.
38. user1826630 07.06.23 15:17 Сейчас в теме
(37) ДА ЛАДНО??? А ведь я тебя спрашивал - ты точно читал (19)???
Иногда лучше жевать, чем говорить.

И еще:
Если и «Элемент» и «ЭтаФорма» — это по сути одно и то же.
Нет, это не одно и то же.
Оставьте свое сообщение

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