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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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


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

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

вместо УчебнаяГруппа укажите "Группа" просто
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Pavel Rodinchenko 27.05.22 13:12 Сейчас в теме
(1)
&НаСервере
Процедура СервернаяЧасть()

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

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

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

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

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


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

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

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

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

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

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

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


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

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

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

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

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

Приведите к одному наименованию (выделенные слова).
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот