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
Москва
зарплата от 200 000 руб. до 250 000 руб.
Полный день

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

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

Аналитик 1C
Москва
зарплата от 200 000 руб. до 240 000 руб.
Полный день

Аналитик группы поддержки 1С
Москва
зарплата от 160 000 руб. до 250 000 руб.
Полный день