Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 18:10

Как в табличное поле добавить строку из справочника?

Автор Vzonder, 17 янв 2017, 05:37

0 Пользователей и 1 гость просматривают эту тему.

Vzonder

1С 8.2  УТ 10.3

Создал в форме Справочника Контрагента табличное поле, по абсолютной аналогии с ВидыДеятельности, с соответствующем набором реквизитов, Табличной частью и реквизитами.

Поэтому, чтобы не городить огород, на примере ВидыДеятельности и задам вопрос:

На форме создал поле ввода: ПолеОсновнойВидДеятельности, подключил реквизит ОсновнойВидДеятельности, и включил кнопку выбора.

Теперь в  ПолеОсновнойВидДеятельности можно выбирать элементы из СправочникСсылка.ВидыДеятельностиКонтрагентов.

При этом в Табличном поле ВидыДеятельности в имеющихся строках выбирается основной вид деятельности (подсвечивая шрифт жирным) в уже добавленных.

Возникла необходимость добавлять элементы (подобно действию кнопки добавить), путем выбора значения в ПолеОсновнойВидДеятельности.
Т.е. при отсутствии элемента, он автоматически добавляется в табличное поле ВидыДеятельности.

Понимаю, что в процедуре Процедура ПолеОсновнойВидДеятельности ПриИзменении(Элемент) необходимо задать запрос, который сравнит содержимое и если в списке строк не найдет элемент, то его добавит.

И тут у меня полный тупняк.
Вот какая.... Получается:


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

Запрос.УстановитьПараметр("ВидДеятельности",  ОсновнойВидДеятельности);

РезультатЗапроса = Запрос.Выполнить();

Если РезультатЗапроса.Пустой() Тогда
Предупреждение(" не найден!!!!");
   
Иначе  Предупреждение("ОК!");

ЭлементыФормы.ВидыДеятельности.ДобавитьСтроку(); // Сломал голову, как добавить в строчку элемент
 
КонецЕсли;
              КонецПроцедуры


Пожалуйста, подскажите как правильно написать запрос, чтобы при отсутствии указанного в ПолеОсновнойВидДеятельности  автоматическое добавление элемента.

И объясните, пожалуйста, как правильно написать, чтобы добавлялась не только новая строка, но и автоматически вставлялся элемент из справочника ВидыДеятельностиКонтрагентов



depb

Слишком тяжеловесно для понимания написано. Насколько понял, у тебя есть табличная часть, в которую ты хочешь добавить строку с опрделенными реквизитами?

1. получаешь нужные данные запросом
2. делаешь выборку запроса
3. вставляешь строку

Должно получиться что-то типа


Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл
  строка = ТвояТабЧасть.Добавить();
  Строка.Реквизит1 = Выборка.Реквизит1;
  Строка.Реквизит2 = Выборка.Реквизит2;
КонецЦикла;

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск