1С 8.2 УТ 10.3
Создал в форме Справочника Контрагента табличное поле, по абсолютной аналогии с ВидыДеятельности, с соответствующем набором реквизитов, Табличной частью и реквизитами.
Поэтому, чтобы не городить огород, на примере ВидыДеятельности и задам вопрос:
На форме создал поле ввода: ПолеОсновнойВидДеятельности, подключил реквизит ОсновнойВидДеятельности, и включил кнопку выбора.
Теперь в ПолеОсновнойВидДеятельности можно выбирать элементы из СправочникСсылка.ВидыДеятельностиКонтрагентов.
При этом в Табличном поле ВидыДеятельности в имеющихся строках выбирается основной вид деятельности (подсвечивая шрифт жирным) в уже добавленных.
Возникла необходимость добавлять элементы (подобно действию кнопки добавить), путем выбора значения в ПолеОсновнойВидДеятельности.
Т.е. при отсутствии элемента, он автоматически добавляется в табличное поле ВидыДеятельности.
Понимаю, что в процедуре Процедура ПолеОсновнойВидДеятельности ПриИзменении(Элемент) необходимо задать запрос, который сравнит содержимое и если в списке строк не найдет элемент, то его добавит.
И тут у меня полный тупняк.
Вот какая…. Получается:
Процедура ПолеОсновнойВидДеятельностиПриИзменении(Элемент)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КонтрагентыВидыДеятельности.ВидДеятельности
|ИЗ
| Справочник.Контрагенты.ВидыДеятельности КАК КонтрагентыВидыДеятельности
|ГДЕ
| КонтрагентыВидыДеятельности.ВидДеятельности = &ВидДеятельности";
Запрос.УстановитьПараметр("ВидДеятельности", ОсновнойВидДеятельности);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Предупреждение(" не найден!!!!");
Иначе Предупреждение("ОК!");
ЭлементыФормы.ВидыДеятельности.ДобавитьСтроку(); // Сломал голову, как добавить в строчку элемент
КонецЕсли;
КонецПроцедуры
Vzonder @ Сегодня, 4:39
,
Если я вас правильно понял, то нужно при изменении реквизита менять ТЧ справочника, то примерно так.
НоваяСтрока = ВидыДеятельности.Добавить();
НоваяСтрока.ОсновнойВидДеятельности = ОсновнойВидДеятельности;
Процедура ОсновнойВидДеятельностиПриИзменении(Элемент)
Стру = Новый Структура("ВидДеятельности",ОсновнойВидДеятельности);
Если ВидыДеятельности.НайтиСтроки(Стру).Количество() > 0 Тогда
Возврат;
КонецЕсли;
НоваяСтрока = ВидыДеятельности.Добавить();
НоваяСтрока.ВидДеятельности = ОсновнойВидДеятельности;
КонецПроцедуры
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua