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

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)???
Иногда лучше жевать, чем говорить.

И еще:
Если и «Элемент» и «ЭтаФорма» — это по сути одно и то же.
Нет, это не одно и то же.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

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

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

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

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)