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

В справочнике имеется иерархия вида (пример): Навчаються - Курс1 - Группа1
Записи студенов имеются в родителе, к примеру Группа1.
При выборе группы нужно выводить в табличное поле студентов.

Для этого создал процедуру:

Родитель=Група.Ссылка;

    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Студенты.Ссылка,
        |    Студенты.Наименование,
        |    Студенты.МобТелефон1,
        |    Студенты.МобТелефон2,
        |    Студенты.Группа
        |ИЗ
        |    Справочник.Студенты КАК Студенты
        |ГДЕ
        |    Студенты.Родитель = &Родитель";

    Запрос.УстановитьПараметр("Родитель", Родитель);

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

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

    Если ЗначениеЗаполнено(Група)=Истина Тогда

        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл    
        
            НоваяСтрока = СписокСтудентов.Добавить();
            НоваяСтрока.Студент = ВыборкаДетальныеЗаписи.Ссылка;
            НоваяСтрока.Группа = ВыборкаДетальныеЗаписи.Группа;
            НоваяСтрока.Мобильный1 = ВыборкаДетальныеЗаписи.МобТелефон1;
            НоваяСтрока.Мобильный2 = ВыборкаДетальныеЗаписи.МобТелефон2;
            
        КонецЦикла;
    КонецЕсли;


Но выводятся студенты, только если выбрать его точный родитель, к примеру Группа1.
Требуется же осуществить вывод в таблицу, допустим всех студентов 1-го курса, т.е. при выборе верхнего родителя Курс1
сейчас выводится в таблицу только список груп, а не студенты.

Подскажите пожалуйста как можно осуществить вывод только студентов, вне зависимости от уровня иерархии? Заранее спасибо.
MATEVI
попробуйте

|Студенты.Родитель В ИЕРАРХИИ (&Родитель);
sava1
Это все рисуется без строчки кода - читайте Радченко (связь по родителю)
Fabri
Цитата(MATEVI @ 23.07.12, 11:45) необходимо зарегистрироваться для просмотра ссылки
попробуйте

|Студенты.Родитель В ИЕРАРХИИ (&Родитель);


Спасибо большое, помогло, ну ещё дописал
И Студенты.ЭтоГруппа = Ложь";

чтобы выводились только студенты.

Ещё хотел спросить, можно ли в таблице значений установить группировку по полю?

Т.е. чтобы записи группировались по полю Группа, в динамическом списке, в настройках можно это осуществить
а можно ли в таблице значений?
MATEVI
Ну так сделайте это сразу в запросе.

Можно
ТаблицаЗначений (ValueTable)
Свернуть (GroupBy)
Синтаксис:

Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)
Fabri
Подскажите пожалуйста, есть Таблица значений - СписокСтудентов, с реквизитами:

Студент - Справочник.Студенты
Группа - Справочник.УчебныеГруппы
Мобильный1 - Строка
Мобильный2 - Строка

Нужно чтоб при добавлении и выборе студента в таблице - остальные поля заполнялись, т.е. группа, мобтелефоны.

&НаКлиенте
Процедура СписокСтудентовСтудентПриИзменении(Элемент)

КонецПроцедуры


уже как не пробовал, никак не получается. Гуглил - немогу найти именно как происходит изменение колонок текущей строки.

Пробовал так:

ТекСтрока = СписокСтудентов.Вставить(Этаформа.ЭлементыФормы.СписокСтудентов.ТекущаяСтрока)
ТекСтрока.Группа = //тут должна быть ссылка на обьект Студента, типа СписокСтудентов.Студент.Группа - но выдается ошибка
logist
Цитата(Fabri @ 25.07.12, 16:55) необходимо зарегистрироваться для просмотра ссылки
ТекСтрока = СписокСтудентов.Вставить(Этаформа.ЭлементыФормы.СписокСтудентов.ТекущаяСтрока)

Не пишите больше такого, никогда smile.gif)

&НаКлиенте
Процедура СписокСтудентовСтудентПриИзменении(Элемент)
ТекСтрока = Элементы.СписокСтудентов.ТекущиеДанные;
ТекСтрока.Группа = ПолучитьГруппуСтудента(ТекСтрока.Студент);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПолучитьГРуппуСтудента(Студент)
// Находим группу студента
Возврат ГруппаСтудента;
КонецФункции
Fabri
Спасибо большое.

Подскажите пожалуйста, как с общей формы сделать запись в регистр сведений?

Пишу прямо в модуле формы процедуру, появляется ошибка, как
&НаКлиенте
так и
&НаСервере


Переменная не определена (Движения)
<<?>>Движения.Регистр.Записывать = Истина;(Проверка: Тонкий клиент)


Создал процедуру в общем модуле, аналогичная ошибка.
Vofka

 ! 

Правила, пункт 6! Закрыто.
 
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.