Условное оформление по дополнительному реквизиту
Здравствуйте.
Конфигурация ERP
Необходимо реализовать, чтобы в Документе.ЗаказКлиента при заполнении таблицы Товары в зависимости от значения дополнительного реквизита «Хар-ка формирования запасов» фон строки разных товаров красились в разные цвета. Пробую делать через Условноное оформление программно, смог добиться только, чтобы по какому-то реквизиту строки красились в один цвет (взял розовый). Также есть проблема с получением значения дополнительного реквизита, так как я делаю это через запрос, но не очень понимаю каким образом могу получить для каждого товара в заказе свое значение, видимо я не очень правильно задаю значение &Cсылки в параметре запроса.
Вопроса 2:
1. Как я могу сделать разбивку по цветам в зависимости от значения реквизита? То есть не чтобы был розовый, а допустим как в моем примере все позиции с артикулом МС7429 были бы красные, а все МО564 зеленые.
2. Что не так в запросе на получение Характеристики формирования запасов и как его можно исправить, чтобы я вместо артикула мог подставлять значения доп.реквизита Хар-ка формирования запасов и в зависимости от значений у каждого товара менять цвета?
Первая половина это запрос, вторая УсловноеОформление программно.
Конфигурация ERP
Необходимо реализовать, чтобы в Документе.ЗаказКлиента при заполнении таблицы Товары в зависимости от значения дополнительного реквизита «Хар-ка формирования запасов» фон строки разных товаров красились в разные цвета. Пробую делать через Условноное оформление программно, смог добиться только, чтобы по какому-то реквизиту строки красились в один цвет (взял розовый). Также есть проблема с получением значения дополнительного реквизита, так как я делаю это через запрос, но не очень понимаю каким образом могу получить для каждого товара в заказе свое значение, видимо я не очень правильно задаю значение &Cсылки в параметре запроса.
Вопроса 2:
1. Как я могу сделать разбивку по цветам в зависимости от значения реквизита? То есть не чтобы был розовый, а допустим как в моем примере все позиции с артикулом МС7429 были бы красные, а все МО564 зеленые.
2. Что не так в запросе на получение Характеристики формирования запасов и как его можно исправить, чтобы я вместо артикула мог подставлять значения доп.реквизита Хар-ка формирования запасов и в зависимости от значений у каждого товара менять цвета?
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НоменклатураДополнительныеРеквизиты.Значение КАК Значение
|ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
|ГДЕ
| НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка
| И НоменклатураДополнительныеРеквизиты.Свойство = &Свойство";
Запрос.УстановитьПараметр ("Ссылка", );
Запрос.УстановитьПараметр ("Свойство",
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Хар-ка формирования запасов"));
ХаркаФормЗапасов = Запрос.Выполнить().Выбрать();
// Отчистка примененнных оформлений
УсловноеОформление.Элементы.Очистить();
// Заполнение массива столбцами, для которых будет изменяться цвет фона
МассивИменКолонокДляПодсветки = Новый Массив;
Для каждого Стр из Элементы.Товары.ПодчиненныеЭлементы Цикл
МассивИменКолонокДляПодсветки.Добавить(Стр.Имя);
КонецЦикла;
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(222, 122, 180));
ЭлементУсловияГруппа = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ЭлементУсловияГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
ЭлементУсловияГруппа.Использование = Истина;
ЭлементУсловия = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементУсловия.ПравоеЗначение = "МС7429";
ЭлементУсловия.Использование = Истина;
ЭлементУсловия = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементУсловия.ПравоеЗначение = "МО564";
ЭлементУсловия.Использование = Истина;
Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл
ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
КонецЦикла;
ПоказатьПервая половина это запрос, вторая УсловноеОформление программно.
Прикрепленные файлы:
По теме из базы знаний
- Справочники, документы, регистры сведений: свойства, реквизиты, списки элементов
- Как вывести дополнительные реквизиты на форму списка справочника Графики работы сотрудников. Управляемые формы. Без снятия конфигурации с поддержки
- Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)
- Дополнительные параметризуемые поля в динамических списках. Остатки и цены в списке номенклатуры
- Базовый курс для начинающих 1С-программистов. Онлайн-курс с 6 сентября по 22 ноября 2023 г.
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Параметр Ссылка вообще не задан. Покажи код процедуры сначала и до условного оформления. Скорей всего этот запрос в цикле. Тогда получай текущие данные и в качестве ссылки передавай значение номенклатуры из строки тек данных
видимо я не очень правильно задаю значение &Cсылки в параметре запроса.
Параметр Ссылка вообще не задан. Покажи код процедуры сначала и до условного оформления. Скорей всего этот запрос в цикле. Тогда получай текущие данные и в качестве ссылки передавай значение номенклатуры из строки тек данных
(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)Еще вопрос, я правильно понимаю, что для более лучшего решения нужно добавить Цикл в котором будет происходить заполнение Массива через еще один запрос и потом данные из этого Массива (В котором содержатся данные номенклатуры) передать в следующий запрос, который у меня уже прописан?
(4)polax, уже второй день бьюсь, не могу понять, если будет возможность, можешь сказать в чем проблема может быть?
Дошел до того, что код пока имеет такую структуру, но при попытки получить 1 значение из трех (там просто 3 варианта "Выпуск под заказ", "Ограниченный объем", "Складская продукция") он выдает что-то вроде того, что на картинке. То есть наименования получаю, но сам дополнительный реквизит для сравнения какой-то кривой.
Если просто оставить при выводе
то выводит пустые значения
Дошел до того, что код пока имеет такую структуру, но при попытки получить 1 значение из трех (там просто 3 варианта "Выпуск под заказ", "Ограниченный объем", "Складская продукция") он выдает что-то вроде того, что на картинке. То есть наименования получаю, но сам дополнительный реквизит для сравнения какой-то кривой.
Если просто оставить при выводе
Сообщить(ХаркаФормЗапасов);
то выводит пустые значения
&НаСервере
Процедура ую_ТоварыПриИзмененииПослеНаСервере()
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
МассивТЧ = РеквизитОбъект.Товары.ВыгрузитьКолонку("Номенклатура");
Для Инд = 0 По МассивТЧ.ВГраница() Цикл
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НоменклатураДополнительныеРеквизиты.Значение КАК Значение
|ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
|ГДЕ
| НоменклатураДополнительныеРеквизиты.Ссылка В (&Массив)
| И НоменклатураДополнительныеРеквизиты.Свойство = &Свойство";
Запрос.УстановитьПараметр ("Массив", МассивТЧ[Инд]);
Запрос.УстановитьПараметр ("Свойство",
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Хар-ка формирования запасов"));
ХаркаФормЗапасов = Запрос.Выполнить().Выгрузить();
Сообщить(ЗначениеВСтрокуВнутр(ХаркаФормЗапасов));
//ЭлементыТЧ = ЭтаФорма.Элементы;
//УсловноеОформление = Этаформа.УсловноеОформление;
//ЭлементОформления = УсловноеОформление.Элементы.Добавить();
//ЭлементОформления.Использование = Истина;
//
//Если Строка(ХаркаФормЗапасов) = "Выпуск под заказ" Тогда
// ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый);
//ИначеЕсли Строка(ХаркаФормЗапасов) = "Ограниченный объем" Тогда
// ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный);
//Иначе
// ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Синий);
//КонецЕсли;
// Заполнение массива столбцами, для которых будет изменяться цвет фона
//МассивИменКолонокДляПодсветки = Новый Массив;
//Для каждого Стр из Элементы.Товары.ПодчиненныеЭлементы Цикл
// МассивИменКолонокДляПодсветки.Добавить(Стр.Имя);
//КонецЦикла;
//
//ЭлементОформления = УсловноеОформление.Элементы.Добавить();
//ЭлементОформления.Использование = Истина;
//ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(222, 122, 180));
//
//ЭлементУсловияГруппа = ЭлементОформления.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
//ЭлементУсловияГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
//ЭлементУсловияГруппа.Использование = Истина;
//ЭлементУсловия = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
//ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//ЭлементУсловия.ПравоеЗначение = "МС7429";
//ЭлементУсловия.Использование = Истина;
//
//ЭлементУсловия = ЭлементУсловияГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//ЭлементУсловия.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.Артикул");
//ЭлементУсловия.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//ЭлементУсловия.ПравоеЗначение = "МО564";
//ЭлементУсловия.Использование = Истина;
//
//Для каждого ТекЭлемент из МассивИменКолонокДляПодсветки Цикл
// ОформляемоеПоле = ЭлементОформления.Поля.Элементы.Добавить();
// ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ТекЭлемент);
//КонецЦикла;
КонецЦикла;
// сс+++
//Отчистка примененнных оформлений
//УсловноеОформление.Элементы.Очистить();
// сс---
КонецПроцедуры
ПоказатьПрикрепленные файлы:
(6) Никаких запросов и циклов не надо
(5) Ну примерно так:
Массив = Объект.ИмяТвоейТЧ.ВыгрузитьКолонку("Номенклатура")
(5) Ну примерно так:
Элементы = ЭтаФорма.Элементы;
УсловноеОформление = ЭтаФорма.УсловноеОформление;
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
Если Выборка.Значение.Наименование = "Один" Тогда
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный);
ИначеЕсли Выборка.Значение.Наименование = "Два" Тогда
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый);
Иначе
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Синий);
КонецЕсли;
Показать
(9)Ура, по поводу массива номенклатуры всё получилось, благодарю Вас за помощь. Единственный нюанс, что я добавил новый товар в заказ и как я понимаю массив не обновился, а для real-time отслеживания товаров в заказе нужно создавать какое-то подобие постоянного сканирования и проверки?
Я может опять со своими циклами, но)
Я может опять со своими циклами, но)
Прикрепленные файлы:
(10)
Нужно событие поля ТЧ НоменклатураПриИзменении, в котором получать сачала текущие данные, потом значение доп реквизита и менять фон
а для real-time отслеживания товаров в заказе нужно создавать какое-то подобие постоянного сканирования и проверки?
Нужно событие поля ТЧ НоменклатураПриИзменении, в котором получать сачала текущие данные, потом значение доп реквизита и менять фон
(12)
Процедура ую_ТоварыПриИзмененииПослеНаСервере()
Инд = Элементы.Товары.ТекущаяСтрока;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НоменклатураДополнительныеРеквизиты.Значение КАК Значение
|ИЗ
| Справочник.Номенклатура.ДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизиты
|ГДЕ
| НоменклатураДополнительныеРеквизиты.Ссылка = &Ссылка
| И НоменклатураДополнительныеРеквизиты.Свойство = &Свойство";
Запрос.УстановитьПараметр ("Ссылка", Объект.Товары[инд].Номенклатура);
Запрос.УстановитьПараметр ("Свойство",
ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Хар-ка формирования запасов"));
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
Элементы = ЭтаФорма.Элементы;
УсловноеОформление = ЭтаФорма.УсловноеОформление;
Выборка.Следующий()
ЭлементОформления = УсловноеОформление.Элементы.Добавить();
ЭлементОформления.Использование = Истина;
Если Выборка.Значение.Наименование = "Один" Тогда
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Красный);
ИначеЕсли Выборка.Значение.Наименование = "Два" Тогда
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Зеленый);
Иначе
ЭлементОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", WebЦвета.Синий);
КонецЕсли;
КонецЕсли;
КонецПроцедуры;
Показать
(13)Не знаю почему, у меня как-то не хочет срабатывать.
Ругается на «Метод объекта не обнаружен (ВыгрузитьКолонку)» в строке
Если заменить на:
то выдает ошибку для «Поле объекта недоступно для записи (Элементы)» в строке:
если заменить на строку:
то начинает ругаться на «Поле объекта недоступно для записи (УсловноеОформление)» в строке:
буквально не понимаю в чем прикол, погуглил, пишут, что проблема может быть в попытке изменить реквизиты, которые не поддаются изменению. Как я могу это решить?
Ругается на «Метод объекта не обнаружен (ВыгрузитьКолонку)» в строке
МассивТЧ = РеквизитОбъект.Товары.ВыгрузитьКолонку("Номенклатура");
Если заменить на:
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
МассивТЧ = РеквизитОбъект.Товары.ВыгрузитьКолонку("Номенклатура");
то выдает ошибку для «Поле объекта недоступно для записи (Элементы)» в строке:
Элементы = ЭтаФорма.Элементы;
если заменить на строку:
ЭлементыТЧ = ЭтаФорма.Элементы;
то начинает ругаться на «Поле объекта недоступно для записи (УсловноеОформление)» в строке:
УсловноеОформление = ЭтаФорма.УсловноеОформление;
буквально не понимаю в чем прикол, погуглил, пишут, что проблема может быть в попытке изменить реквизиты, которые не поддаются изменению. Как я могу это решить?
(14)
Ругается на «Метод объекта не обнаружен (ВыгрузитьКолонку)» в строке
Потому что Клиент
то выдает ошибку для «Поле объекта недоступно для записи (Элементы)» в строке:
Давно ли служебное свойство (коллекция) Элементы стало доступно для прямой записи?
то начинает ругаться на «Поле объекта недоступно для записи (УсловноеОформление)» в строке:
Давно ли служебное свойство (коллекция) УсловноеОформление стало доступно для прямой записи?
(15)
Скопировал, вставил по сути без изменений. При обновлении конфигурации базы выдает служебное сообщение
Переменная не определена (Выборка)
<<?>>Выборка.Следующий(); (Проверка: Сервер)
Я добавил «;», потому что он иначе ругается на отсутствия символа конца строки.
Возможно там цикл в который входит УсловноеОформление, но тогда тоже ругается.
Скопировал, вставил по сути без изменений. При обновлении конфигурации базы выдает служебное сообщение
Переменная не определена (Выборка)
<<?>>Выборка.Следующий(); (Проверка: Сервер)
Я добавил «;», потому что он иначе ругается на отсутствия символа конца строки.
Возможно там цикл в который входит УсловноеОформление, но тогда тоже ругается.
(18)Добавил, но начал вылезать снова та ошибка с «Поле объекта недоступно для записи (Элементы)» в строке:
Элементы = ЭтаФорма.Элементы;
Однако это стало теперь происходить только с теми товарами, которые имеют какое-то значение в этом дополнительном реквизите. То есть просто товары добавляет без ошибок.
Элементы = ЭтаФорма.Элементы;
Однако это стало теперь происходить только с теми товарами, которые имеют какое-то значение в этом дополнительном реквизите. То есть просто товары добавляет без ошибок.
(28) Ну пожаловался ты модератору. Ну скрыл он моё сообщение.
Тебе полегчало? Твоя проблема решилась?
Лучше бы прислушался к совету, и поискал бы в СП слово Элементы. Есть вероятность, что это тебе помогло бы больше, чем жалоба на меня.
Хотя, мне-то абсолютно пофиг на твои проблемы...
Тебе полегчало? Твоя проблема решилась?
Лучше бы прислушался к совету, и поискал бы в СП слово Элементы. Есть вероятность, что это тебе помогло бы больше, чем жалоба на меня.
Хотя, мне-то абсолютно пофиг на твои проблемы...
(30)
Жалоба была на конкретное недостойное общение, без учета, что человек может иметь мало опыта в 1С и ему требуется помощь. Если Вы заметили, я все Ваши сообщения читаю и стараюсь корректно отвечать прислушиваясь даже к язвительным высказываниям как к советам без перехода на личности и токсичности в ответ, потому что я понимаю, что Вы пытаетесь помочь, за это Вам спасибо.
Я послушал совет, поискал в Справочнике слово Элементы (возможно искал не очень правильно, делал через поиск листая весь список, искал и через «Индекс» и через «Поиск»), удалось найти «Элементы формы» и другие похожие варианты, просто «Элементы» мне найти не удалось.
Есть Форма.ЭлементыФормы, возможно это то что нужно?
Жалоба была на конкретное недостойное общение, без учета, что человек может иметь мало опыта в 1С и ему требуется помощь. Если Вы заметили, я все Ваши сообщения читаю и стараюсь корректно отвечать прислушиваясь даже к язвительным высказываниям как к советам без перехода на личности и токсичности в ответ, потому что я понимаю, что Вы пытаетесь помочь, за это Вам спасибо.
Я послушал совет, поискал в Справочнике слово Элементы (возможно искал не очень правильно, делал через поиск листая весь список, искал и через «Индекс» и через «Поиск»), удалось найти «Элементы формы» и другие похожие варианты, просто «Элементы» мне найти не удалось.
Есть Форма.ЭлементыФормы, возможно это то что нужно?
(33) Слушай, недостойно - это спорить с профессионалами, являясь при этом ламерами (и не отрицая этого). А тем более жаловаться на них.
А еще недостойно - уметь пользоваться поиском по прямым советам профессионалов.
А еще недостойно - перевирать сообщения, ибо
А еще недостойно - уметь пользоваться поиском по прямым советам профессионалов.
А еще недостойно - перевирать сообщения, ибо
поискал в Справочнике слово Элементы
я разве советовал искать в Справочнике??? Я советовал искать в СП. Или ты реально думаешь ,что управление элементами формы как-то различается в Справочниках, Документах, Регистрах и прочих метаданных???
делал через поиск листая весь список, искал и через «Индекс» и через «Поиск»
На тебе, через обычный Индекс. Есть там просто "Элементы". И не надо тут жалкие оправдания лепетать.
Прикрепленные файлы:
(33) в СП Форма это форма обычного приложения. Форма.ЭлементыФормы это так же для обычного приложения.
Управляемая форма в СП (Синтакс-помощник) называется ФормаКлиентскогоПриложения.
Чтобы легко отличать, к какой форме что относится, достаточно посмотреть Доступность. Если там только Толстый клиент, то это для обычной формы. Если там есть и Тонкий клиент, то это управляемая форма.
Управляемая форма в СП (Синтакс-помощник) называется ФормаКлиентскогоПриложения.
Чтобы легко отличать, к какой форме что относится, достаточно посмотреть Доступность. Если там только Толстый клиент, то это для обычной формы. Если там есть и Тонкий клиент, то это управляемая форма.
(28)
В модуле управляемой форме ЭтаФорма и ЭтотОбъект синонимы.
Теперь СП:
В модуле управляемой формы Элементы и ЭтотОбъект.Элементы и ЭтаФорма.Элементы по сути одно и то же. И это не реквизит формы от слова совсем.
Совет про Справку хороший, но понятия ЭтаФорма.Элементы нет, есть только ЭтаФорма. Служит для получения текущей (данной) формы и передачи дальше в формы, процедуры, ну и функции.
Элементы — реквизит формы, который на ней расположен.
Элементы — реквизит формы, который на ней расположен.
В модуле управляемой форме ЭтаФорма и ЭтотОбъект синонимы.
Теперь СП:
ФормаКлиентскогоПриложения (ClientApplicationForm)
ЭтотОбъект (ThisObject)
Использование:
Только чтение.
Описание:
Тип: ФормаКлиентскогоПриложения.
Содержит данную форму. Может быть использовано в модуле формы для получения данной формы и передачи ее в качестве параметра в другие формы, глобальные процедуры и функции и т.д.
ЭтотОбъект (ThisObject)
Использование:
Только чтение.
Описание:
Тип: ФормаКлиентскогоПриложения.
Содержит данную форму. Может быть использовано в модуле формы для получения данной формы и передачи ее в качестве параметра в другие формы, глобальные процедуры и функции и т.д.
ФормаКлиентскогоПриложения (ClientApplicationForm)
Свойства:
<Имя реквизита> (<Attribute name>)
...
Элементы (Items)
ЭтотОбъект (ThisObject)
Свойства:
<Имя реквизита> (<Attribute name>)
...
Элементы (Items)
ЭтотОбъект (ThisObject)
ФормаКлиентскогоПриложения (ClientApplicationForm)
Элементы (Items)
Использование:
Только чтение.
Описание:
Тип: ВсеЭлементыФормы.
Содержит коллекцию всех элементов формы клиентского приложения для прямого доступа вне зависимости от иерархии.
Элементы (Items)
Использование:
Только чтение.
Описание:
Тип: ВсеЭлементыФормы.
Содержит коллекцию всех элементов формы клиентского приложения для прямого доступа вне зависимости от иерархии.
В модуле управляемой формы Элементы и ЭтотОбъект.Элементы и ЭтаФорма.Элементы по сути одно и то же. И это не реквизит формы от слова совсем.
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день