Имя: Пароль:
1C
1С v8
Цикл с условием
0 oqjawa
 
15.05.17
01:58
// Необходимо чтобы данные области:
ТабДок.Вывести(ОбластьШапка1, Выборка1.Уровень());
    ТабДок.Вывести(ОбластьСтудентыШапка1);

//выводились в том случае если цикл на заполнения заполняет
Выборка1.Следующий();
  ВыборкаСтуденты2 = Выборка1.Студенты.Выбрать();
        Пока ВыборкаСтуденты2.Следующий() Цикл
            ОбластьСтуденты.Параметры.Заполнить(ВыборкаСтуденты2);
            ТабДок.Вывести(ОбластьСтуденты, ВыборкаСтуденты2.Уровень());
        КонецЦикла;

// как правильно сделать? через если у меня не получается.. наверное не правильно делаю, подскажите пожалуйста

    
    Запрос2 = Новый Запрос;
    Запрос2.Текст =
    "ВЫБРАТЬ
    |    Выхода_на_практику.Вид_практики,
    |    Выхода_на_практику.Группа,
    |    Выхода_на_практику.Дата,
    |    Выхода_на_практику.Дата_конца_практики,
    |    Выхода_на_практику.Дата_начала_практики,
    |    Выхода_на_практику.ДатаИзданияПриказа,
    |    Выхода_на_практику.Курс,
    |    Выхода_на_практику.Номер,
    |    Выхода_на_практику.НомерПриказа,
    |    Выхода_на_практику.Специальность,
    |    Выхода_на_практику.Студенты.(
    |        НомерСтроки,
    |        ФИО_студента,
    |        Место_прохождения_практики,
    |        Договор,
    |        База,
    |        Основа_обучения
    |    )
    |ИЗ
    |    Документ.Выхода_на_практику КАК Выхода_на_практику
    |ГДЕ
    |    Выхода_на_практику.Ссылка В(&Ссылка)
    |    И Выхода_на_практику.Студенты.Основа_обучения = Значение(Перечисление.Основа_обучения.платник)
    |   И Выхода_на_практику.Студенты.База = Значение(Перечисление.База_классов.классов_9)";
    
        Запрос2.Параметры.Вставить("Ссылка", Ссылка);
    Выборка1 = Запрос2.Выполнить().Выбрать();
         ОбластьШапка1.Параметры.Заполнить(Выборка1);
   ОбластьШапка1.Параметры.Дата_Начала_Практики = Формат(Выборка.Дата_начала_практики, "ДЛФ=D");
    ОбластьШапка1.Параметры.Дата_Конца_Практики = Формат(Выборка.Дата_конца_практики, "ДЛФ=D");
    ТабДок.Вывести(ОбластьШапка1, Выборка1.Уровень());
    ТабДок.Вывести(ОбластьСтудентыШапка1);
Выборка1.Следующий();
  ВыборкаСтуденты2 = Выборка1.Студенты.Выбрать();
        Пока ВыборкаСтуденты2.Следующий() Цикл
            ОбластьСтуденты.Параметры.Заполнить(ВыборкаСтуденты2);
            ТабДок.Вывести(ОбластьСтуденты, ВыборкаСтуденты2.Уровень());
        КонецЦикла;
1 igorPetrov
 
15.05.17
05:15
(0) "в том случае если цикл на заполнения заполняет
" Это что?!
2 bse
 
15.05.17
05:25
Выводи область если выборкастуденты2 заполнена
3 bse
 
15.05.17
05:27
Еще лучше чтобы незаполненные значения в выборку не попадали
4 oqjawa
 
15.05.17
06:02
ТабДок.Вывести(ОбластьШапка1, Выборка1.Уровень());
    ТабДок.Вывести(ОбластьСтудентыШапка1);  

Это шапка которая не должна выводится если выборкастуденты 2 не заполнена... зачем она мне пустая нужна... как так сделать?
5 Мимохожий Однако
 
15.05.17
06:10
Найди обработку Консоль запросов и  в ней потренируйся получение правильной выборки. Начни запрос к табличной части Выхода_на_практику.Студенты. Из этого же запроса вытащи отдельный массив по ссылкам на документ Выхода_на_практику.
Т.е. в одном ПАКЕТНОМ запросе получаешь и табличную часть и шапки.Метод Запрос.ВыполнитьПакет()
6 oqjawa
 
15.05.17
06:42
нету обработки консоль запросов это разработка собственной конфигурации
7 oqjawa
 
15.05.17
06:47
есть документ "Выхода_на_практику" в нём есть табличная часть "Студенты"
я создал печатную форму документа, в ней четыре табличные части..
каждая табличная часть заполняется благодаря на писаным четырём запросам...
мне необходимо чтобы в случае не заполнения выборки области ШАПКИ не выводились
8 Мимохожий Однако
 
15.05.17
06:47
(6) На диске ИТС или на просторах инета куча
9 Мимохожий Однако
 
15.05.17
06:47
(7) Откажись от 4 запросов и сделай всё в одном.
10 h-sp
 
15.05.17
06:52
(7) а зачем вам нужно, чтобы шапка не выводилась? Все выводят, и не парятся. Это бзик какой-то у вас.
11 Redkiy
 
15.05.17
06:53
1. Разберись какой тип значения возвращает запрос в Выборка1.Студенты
2. Проверь Выборка1.Студенты на "пусто" методом из соответсвующего раздела СП.
3. За дублирование тем можно в баню сходить. Хозяин пока спит...
12 oqjawa
 
15.05.17
07:00
Извините за дублирование темы, я зарегистрировался часов 15 назад, до этого никогда сам на форумах не сидел, поскольку не было в этом необходимости, надеюсь хоязин поймёт мою неопытность в этом вопросе и удалит мой "Дубль"

P.S.
Как кунить ссылку на скриншот?? как его добавить сюда
13 Мимохожий Однако
 
15.05.17
07:04
(12) Тебе скриншот не поможет. Хотя, я уверен, ты найдешь сайт через который можно сюда ссылки на картинки вставить. Тебе предлагают удочки- консоль запросов, отладчик, а ты упёрся в неправильный вариант и лепишь к нему костыли. Подумай и начни заново. ИМХО, это будет полезнее и в конечном счёте быстрее.
14 oqjawa
 
15.05.17
07:05
h-sp

это не бзик, а реально необходимость. На основе документа "Выхода на практику" формируется печатная форма "Приказ"
в нём указаны реквизиты учебного заведения и стандартные реквизиты документа, но самое важно то что приказ Максимум имеет 4 табличные части:
в первой ТЧ указываются студенты после 9 класса которые Бюджетники
во второй ТЧ указываются студенты после 9 класса которые Платники
в третий ТЧ указываются студенты после 11 класса которые бюджетники
в четвёртой ТЧ указываются студенты после 11 класса которые Платники


Если какаято из этих табличных частей не заполнилась выборкой поскольку студентов с такими характеристиками нет в приказе, то область пустую выводить не нужно..
15 h-sp
 
15.05.17
07:11
(14) ну тогда пробуй великое шаманство

Если Выборка1.Количество() > 0 Тогда
    ТабДок.Вывести(ОбластьСтудентыШапка1);
КонецЕсли;
16 Мимохожий Однако
 
15.05.17
07:19
(14) запрос переделал?
17 Redkiy
 
15.05.17
07:24
(13) + к вышесказаному
Рекомендую посмотреть серию видео про запросы с ресурса http://1c.chistov.pro/
Поможет направить мозги в нужное направление. Не реклама.
18 KishMish
 
15.05.17
07:33
// Необходимо чтобы данные области:
Выводить=Истина;

//выводились в том случае если цикл на заполнения заполняет

Выборка1.Следующий();
  ВыборкаСтуденты2 = Выборка1.Студенты.Выбрать();
        Пока ВыборкаСтуденты2.Следующий() Цикл
//////////////////////////
Если Выводить=Истина Тогда ТабДок.Вывести(ОбластьШапка1, Выборка1.Уровень());
ТабДок.Вывести(ОбластьСтудентыШапка1);
Выводить=Ложь;
КонецЕсли;
//////////////////////////            ОбластьСтуденты.Параметры.Заполнить(ВыборкаСтуденты2);
            ТабДок.Вывести(ОбластьСтуденты, ВыборкаСтуденты2.Уровень());
        КонецЦикла;
19 oqjawa
 
15.05.17
08:07
Спасибо каждому человеку кто отвечал мне, вы все так или иначе очень помогли мне)

МимохожийОднако был со мной с самого начала, благодаря вам я не опускал руки знал что можно сделать правильно но к сожаления я пошёл лёгким путём..

Спасибо h-sp, воспользовался твоим методом) всё работает, а до консоли запросов я ещё доберусь! возможно уже скоро, главное порыться в интернете и узнать с какой стороны к ней подойти.. пока только скачал..

Redkiy видео про запросы я бы посмотрел, если вам не трудно скинуть нормальную прямую ссылку.. навигация для нового пользователя просто никакая.. я заблудился)))

всем спасибо)
Ошибка? Это не ошибка, это системная функция.