1с измерение не найдено

1. user1790238 27.05.22 13:03 Сейчас в теме
Здравствуйте. Я новичок в 1с. Не могу понять в чем ошибка.
Имеется документ "ПроведениеЗанятий" с реквизитом "УчебнаяГруппа" и табличной частью "Студенты" с реквизитом в нем "ФИО", а так же регистр сведений "СоставУчебныхГрупп" с измерениями "Студент" и "УчебнаяГруппа".
Нужно чтобы при выборе из списка учебной группы реквизита "УчебнаяГруппа" документа "ПроведениеЗанятий"
в табличной части "Студенты" заполнялся автоматически реквизит "ФИО".
В форме документа "ПроведениеЗанятий" сделал реквизиту "УчебнаяГруппа" обработку выбора при изменении.

&НаКлиенте
Процедура УчебнаяГруппаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
	 Объект.Студенты.Очистить();
	 СервернаяЧасть();
КонецПроцедуры

&НаСервере
Процедура СервернаяЧасть()  
	
	Запрос = Новый Запрос();
	Запрос.Текст = 
	    "ВЫБРАТЬ
	    |    СоставУчебныхГрупп.Студент КАК Студент,
		|	 СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
	    |ИЗ
	    |    РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
		|
		|СГРУППИРОВАТЬ ПО
		|	 СоставУчебныхГрупп.УчебнаяГруппа,
		|	 СоставУчебныхГрупп.Студент
	    |ИТОГИ ПО
	    |    Студент,
		|	 УчебнаяГруппа";
	
	Выборка = Запрос.Выполнить().Выбрать();
	
	ЗначениеУчебнаяГруппа = Объект.УчебнаяГруппа.Ссылка;
	ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
	Сообщить("ЦиклНеРаботает");
	Пока ЗначениеРесурсаУчебнаяГруппа = ЗначениеУчебнаяГруппа Цикл
		Сообщить("ЦиклРаботает");
		Выборка = Выборка.Выбрать(Объект.Студент);
	КонецЦикла;
	
	Пока Выборка.Следующий() Цикл
	   НоваяСтрока = Объект.Студенты.Добавить();
	    НоваяСтрока = Выборка;
	КонецЦикла;

КонецПроцедуры
Показать


Выдает ошибку при выборе учебной группы:
Измерение не найдено "УчебнаяГруппа"
{Документ.ПроведениеЗанятий.Форма.ФормаЭлемента.Форма(28)}: ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
{Документ.ПроведениеЗанятий.Форма.ФормаЭлемента.Форма(4)}: СервернаяЧасть();
по причине:
Измерение не найдено "УчебнаяГруппа"
Прикрепленные файлы:
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. Pavel Rodinchenko 27.05.22 13:12 Сейчас в теме
(1)
&НаСервере
Процедура СервернаяЧасть()

Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|СГРУППИРОВАТЬ ПО
| СоставУчебныхГрупп.УчебнаяГруппа,
| СоставУчебныхГрупп.Студент
|ИТОГИ ПО
| Студент,
| УчебнаяГруппа";

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

ЗначениеУчебнаяГруппа = Объект.УчебнаяГруппа.Ссылка;
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
Сообщить("ЦиклНеРаботает");
Пока ЗначениеРесурсаУчебнаяГруппа = ЗначениеУчебнаяГруппа Цикл
Сообщить("ЦиклРаботает");
Выборка = Выборка.Выбрать(Объект.Студент);
КонецЦикла;

Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Студенты.Добавить();
НоваяСтрока = Выборка;
КонецЦикла;

КонецПроцедуры
Показать


проще сделать таким образом

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

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

Если Результат.Пустой() Тогда
Сообщить("Нет данных по группе");
Возврат;
КонецЕсли;

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Студенты.Добавить();
        НоваяСтрока = Выборка.Студент;
КонецЦикла;

КонецПроцедуры
Показать


так не будет лишних циклов и сразу получите нужные данные.

а ошибка по идее в этой строке
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");

вместо УчебнаяГруппа укажите "Группа" просто
3. user1790238 27.05.22 13:16 Сейчас в теме
4. spacecraft 27.05.22 13:18 Сейчас в теме
(1)
Запрос.Текст =
"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|СГРУППИРОВАТЬ ПО
| СоставУчебныхГрупп.УчебнаяГруппа,
| СоставУчебныхГрупп.Студент
|ИТОГИ ПО
| Студент,
| УчебнаяГруппа";

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

ЗначениеУчебнаяГруппа = Объект.УчебнаяГруппа.Ссылка;
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
Показать

Приведите к одному наименованию (выделенные слова).
Оставьте свое сообщение
Вакансии
Разработчик 1С:ERP WE
Москва
зарплата от 250 000 руб.
Полный день

Аналитик 1С:ЗУП
Москва
зарплата от 150 000 руб.
Полный день

Ведущий разработчик 1С
Москва
зарплата от 200 000 руб.
Полный день

Программист 1С
Москва
зарплата от 130 000 руб. до 170 000 руб.
Полный день

Аналитик 1С: ERP (оперконтур)
Москва
зарплата от 180 000 руб. до 250 000 руб.
Полный день