Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как в табличное поле добавить строку из справочника?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Vzonder

1С 8.2 УТ 10.3

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

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

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

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

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

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

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

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


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


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

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

podcast
Vzonder @ Сегодня, 4:39 необходимо зарегистрироваться для просмотра ссылки ,
Если я вас правильно понял, то нужно при изменении реквизита менять ТЧ справочника, то примерно так.
НоваяСтрока = ВидыДеятельности.Добавить();
НоваяСтрока.ОсновнойВидДеятельности = ОсновнойВидДеятельности;
Flexy
Vzonder @ Сегодня, 4:39 необходимо зарегистрироваться для просмотра ссылки ,
Процедура ОсновнойВидДеятельностиПриИзменении(Элемент)
    Стру = Новый Структура("ВидДеятельности",ОсновнойВидДеятельности);
    Если ВидыДеятельности.НайтиСтроки(Стру).Количество() > 0 Тогда
        Возврат;
    КонецЕсли;
    НоваяСтрока = ВидыДеятельности.Добавить();
    НоваяСтрока.ВидДеятельности = ОсновнойВидДеятельности;
КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.