Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
valexab
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 45
1

Заполнение документа данными из двух справочников

16.05.2016, 20:36. Просмотров 1016. Ответов 4
Метки нет (Все метки)

Поскажите, пожалуйста, с заполнением данными документа. Данные берутся из справочника Данные о дисциплинах, где для каждой дисциплины в табличной части нескольно строк в зависимости от семестров. И РУП, где также для каждой дисциплины несколько строк. Объединяя данные, сравниваю по названию дисциплины и номеру семестра. Но выводит только по одной строчке. Что изменить, чтобы выводил все данные?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
&НаСервере
Процедура ЗаполнитьДанныеНаСервере()
    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   РУП.Наименование,
        |   РУП.Часть.(
        |       Ном,
        |       Пр,
        |       Лек,
        |       СРС,
        |       ЗЕТ,
        |       Экз,
        |       Зач,
        |       КП,
        |       КР,
        |       Лаб
        |   ),
        |   ДанныеОДисциплинах.Наименование КАК Наименование1,
        |   ДанныеОДисциплинах.Параметры.(
        |       Группы,
        |       Курс,
        |       Семестр,
        |       КоличествоСтудентов,
        |       КоличествоПотоков,
        |       КоличествоГрупп,
        |       КоличествоПодгрупп
        |   )
        |ИЗ
        |   Справочник.РУП КАК РУП
        |       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ДанныеОДисциплинах КАК ДанныеОДисциплинах
        |       ПО РУП.Наименование = ДанныеОДисциплинах.Наименование
        |           И РУП.Часть.Ном = ДанныеОДисциплинах.Параметры.Семестр";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        // Вставить обработку выборки ВыборкаДетальныеЗаписи
НоваяСтрока = Объект.ТабличнаяЧасть.Добавить(); 
ВыборкаТЧ = ВыборкаДетальныеЗаписи.Часть.Выбрать(); 
ВыборкаТЧ1 = ВыборкаДетальныеЗаписи.Параметры.Выбрать();
Пока ВыборкаТЧ.Следующий() Цикл 
НоваяСтрока.Дисциплина = ВыборкаДетальныеЗаписи.Наименование; 
НоваяСтрока.ПрактическиеЗанятияСеминарыПоПлану = ВыборкаТЧ.Пр; 
КонецЦикла;
Пока ВыборкаТЧ1.Следующий() Цикл 
НоваяСтрока.ИндексГруппы = ВыборкаТЧ1.Группы; 
НоваяСтрока.Семестр = ВыборкаТЧ1.Семестр;
КонецЦикла; 
КонецЦикла;
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
 
    КонецПроцедуры
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2016, 20:36
Ответы с готовыми решениями:

Заполнение документа из двух справочников
&НаСервере Процедура ЗаполнитьНаСервере(МоеБлюдо) Запрос = Новый Запрос; Запрос.Текст = ...

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

Заполнение справочников данными из документов
Здравствуйте! Есть справочник Кружки и документ ЗачислениеВКружки. Необходимо чтобы после...

Заполнение документа данными из справочника
Здравствуйте! Столкнулась с проблемой. Есть Справочник "ПроизводственныйДефект" который имеет...

Заполнение на форме данными из другого документа
Здравствуйте! Перейду собственно к проблеме - имеется два документа (Допустим Док1 и Док2), в одном...

4
GreenkA
Форумчанин
Эксперт 1С
3003 / 1923 / 520
Регистрация: 25.06.2009
Сообщений: 6,817
16.05.2016, 20:41 2
Лучший ответ Сообщение было отмечено valexab как решение

Решение

valexab, строки в табличную часть добавляйте в цикле обхода выборки запроса, а не перед.
1C
1
2
3
4
5
Пока ВыборкаТЧ.Следующий() Цикл 
НоваяСтрока = Объект.ТабличнаяЧасть.Добавить(); 
НоваяСтрока.Дисциплина = ВыборкаДетальныеЗаписи.Наименование; 
НоваяСтрока.ПрактическиеЗанятияСеминарыПоПлану = ВыборкаТЧ.Пр; 
КонецЦикла;
1
valexab
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 45
16.05.2016, 21:05  [ТС] 3
Спасибо!

Добавлено через 9 минут
Но он данные все равно по последней строчке пишет во все остальные.
0
GreenkA
Форумчанин
Эксперт 1С
3003 / 1923 / 520
Регистрация: 25.06.2009
Сообщений: 6,817
16.05.2016, 21:24 4
valexab, что-то вы намудрили с выборками... Выбирайте поля напрямую из табличных частей в запросе, не придется создавать и обходить еще две выборки
0
valexab
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 45
16.05.2016, 21:26  [ТС] 5
Хорошо, спасибо!
0
16.05.2016, 21:26
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.05.2016, 21:26

Заполнение табличной части документа данными из справочника
Добрый день! Очень нужна ваша помощь ! Есть справочник Должности (на каждую должность список спец...

Заполнение таблицы документа данными справочника автоматически
Здравствуйте. Делаю простую программу на 1С и столкнулся с проблемой. У меня есть...

Заполнение документа данными из шаблона в регистре сведений
Доброго времени суток. Не могу справиться с задачей, поэтому прошу специалистов о помощи! Имеется...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.