Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Групировка в запросе , самописная конфигурация, 1С:Предприятие 8.2 (8.2.11.236)          
Fabri Подменю пользователя
сообщение 17.10.12, 12:54
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

Добрый день. Столкнулся с такой проблемкой. Есть документ - Учебный план. В нем вводятся какие будут екзамены и зачеты по той или иной дисциплине. После заполнения учебного плана, нажатием на кнопочку формируются документы Зачетные ведомости.

Вот код вывода (примерный):

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

    Запрос.УстановитьПараметр("ГодПоступления", Объект.ГодПоступления);
    Запрос.УстановитьПараметр("Направление", Объект.Направление);
    Запрос.УстановитьПараметр("УровеньКвалификации", Объект.УровеньКвал);
    Запрос.УстановитьПараметр("ФормаОбучения", Объект.ФормаОбуч);

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

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

    ДокВедомость = Документы.ЗачетнаяВедомость.СоздатьДокумент();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ДокВедомость.Дата = ТекущаяДата();
        НовСтрока = ДокВедомость.СписокСтудентов.Добавить();
        НовСтрока.ФИОСтудента = ВыборкаДетальныеЗаписи.Ссылка;
        НовСтрока.НомЗачетки = ВыборкаДетальныеЗаписи.НомерЗачетнойКнижки;
    КонецЦикла;
    
    ДокВедомость.Записать(РежимЗаписиДокумента.Проведение);


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

Подкажите как можно это осуществить? Заранее спасибо.

sava1 Подменю пользователя
сообщение 17.10.12, 12:59
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Читаем - ОбходРезультатаЗапроса.ПоГруппировкам а заодно Запрос.Итоги

Спасибо сказали: Fabri,

Fabri Подменю пользователя
сообщение 17.10.12, 12:59
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

Дополню:

Параметра Группа у нас в исходном дкументе нет, выборка осуществляется только 4-мя параметрами в запросе:

    Запрос.УстановитьПараметр("ГодПоступления", Объект.ГодПоступления);
    Запрос.УстановитьПараметр("Направление", Объект.Направление);
    Запрос.УстановитьПараметр("УровеньКвалификации", Объект.УровеньКвал);
    Запрос.УстановитьПараметр("ФормаОбучения", Объект.ФормаОбуч);


За данными критериями могут быть студенты с нескольких групп, а уже в получаемых документах они должны посортированны по групам.

alex040269 Подменю пользователя
сообщение 17.10.12, 13:02
Сообщение #4

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

   ДокВедомость = Документы.ЗачетнаяВедомость.СоздатьДокумент();
   Группа = Неопределено;
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

        Если Группа <> ВыборкаДетальныеЗаписи.Группа Тогда
              Если Гнуппа <> неопределено Тогда
                  ДокВедомость.Записать(РежимЗаписиДокумента.Проведение);
                  ДокВедомость = Документы.ЗачетнаяВедомость.СоздатьДокумент();
              КонецЕсли;
              Группа = ВыборкаДетальныеЗаписи.Группа
         КонецЕсли;

        ДокВедомость.Дата = ТекущаяДата();
        НовСтрока = ДокВедомость.СписокСтудентов.Добавить();
        НовСтрока.ФИОСтудента = ВыборкаДетальныеЗаписи.Ссылка;
        НовСтрока.НомЗачетки = ВыборкаДетальныеЗаписи.НомерЗачетнойКнижки;
    КонецЦикла;
    ДокВедомость.Записать(РежимЗаписиДокумента.Проведение);


ну и запрос упорядочить по группе.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Fabri Подменю пользователя
сообщение 17.10.12, 13:21
Сообщение #5

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

alex040269 - Ваш код ещё больше запупал.

Ответ sava1 - вывел на путь истинный, но почему-то выскакивает ошибка.

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

    Запрос.УстановитьПараметр("ГодПоступления", Объект.ГодПоступления);
    Запрос.УстановитьПараметр("Направление", Объект.Направление);
    Запрос.УстановитьПараметр("УровеньКвалификации", Объект.УровеньКвал);
    Запрос.УстановитьПараметр("ФормаОбучения", Объект.ФормаОбуч);

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

    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    ДокВедомость = Документы.ЗачетнаяВедомость.СоздатьДокумент();
    
    ВыборкаГруппа = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Группа");
//Делаю ещё одну выборку с обходом по полю Группа, а мне ошибку - Измерение не найдено "Група"

    
Пока ВыборкаГруппа.Следующий() Цикл
    
    ДокВедомость.Группа = ВыборкаГруппа.Группа;        
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        ДокВедомость.Дата = ТекущаяДата();
        НовСтрока = ДокВедомость.СписокСтудентов.Добавить();
        НовСтрока.ФИОСтудента = ВыборкаДетальныеЗаписи.Ссылка;
        НовСтрока.НомЗачетки = ВыборкаДетальныеЗаписи.НомерЗачетнойКнижки;
        
    КонецЦикла;
    
    ДокВедомость.Записать(РежимЗаписиДокумента.Проведение);
    
КонецЦикла;


Ошибка - Измерение не найдено "Група".

Сообщение отредактировал Batchir - 19.10.12, 9:39

alex040269 Подменю пользователя
сообщение 17.10.12, 13:34
Сообщение #6

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(sava1 @ 17.10.12, 13:59) *
а заодно Запрос.Итоги



Цитата(Fabri @ 17.10.12, 14:21) *
ДокВедомость = Документы.ЗачетнаяВедомость.СоздатьДокумент();


должен быть после начала внешнего цикла.

Сообщение отредактировал Vofka - 17.10.12, 13:44


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Спасибо сказали: Fabri,

kivals Подменю пользователя
сообщение 19.10.12, 9:19
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 105
Из: Киев
Спасибо сказали: 27 раз
Рейтинг: 0

Fabri, внимательно изучиТЕ закладку Итоги в конструкторе запроса: чтобы использовать обход по группировкам нужно задать поля группировок. Кроме того - детальную выборку нужно инициализировать внутри внешнего цикла, и не от результата запроса, а от предыдущей выборки:
 Пока ВыборкаГруппа.Следующий() Цикл
     ...
     ВыборкаДетальныеЗаписи = ВыборкаГруппа.Выбрать();
     Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
         ...


Сообщение отредактировал Vofka - 19.10.12, 9:21

Vofka Подменю пользователя
сообщение 19.10.12, 9:22
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2


 ! 

kivals, у нас вообще то на Вы принято общаться!
 

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 18.04.24, 5:02
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!