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





По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Загрузка документов из Excel в 1С: УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- Интеграция 1С со сканерами отпечатка пальца ZKTime (обычные формы)
- Загрузка в 1С документов поступления из файла XML (ЭДО формат 820) для БП 3.0, УТ10/11, КА2.5, УПП1.3
- Инвентаризация кодов маркировки системы "Честный знак", запрос, сравнение с остатками 1С, списание, ОСУ
Найденные решения
(1)
проще сделать таким образом
так не будет лишних циклов и сразу получите нужные данные.
а ошибка по идее в этой строке
вместо УчебнаяГруппа укажите "Группа" просто
&НаСервере
Процедура СервернаяЧасть()
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|СГРУППИРОВАТЬ ПО
| СоставУчебныхГрупп.УчебнаяГруппа,
| СоставУчебныхГрупп.Студент
|ИТОГИ ПО
| Студент,
| УчебнаяГруппа";
Выборка = Запрос.Выполнить().Выбрать();
ЗначениеУчебнаяГруппа = Объект.УчебнаяГруппа.Ссылка;
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
Сообщить("ЦиклНеРаботает");
Пока ЗначениеРесурсаУчебнаяГруппа = ЗначениеУчебнаяГруппа Цикл
Сообщить("ЦиклРаботает");
Выборка = Выборка.Выбрать(Объект.Студент);
КонецЦикла;
Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Студенты.Добавить();
НоваяСтрока = Выборка;
КонецЦикла;
КонецПроцедуры
ПоказатьПроцедура СервернаяЧасть()
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|СГРУППИРОВАТЬ ПО
| СоставУчебныхГрупп.УчебнаяГруппа,
| СоставУчебныхГрупп.Студент
|ИТОГИ ПО
| Студент,
| УчебнаяГруппа";
Выборка = Запрос.Выполнить().Выбрать();
ЗначениеУчебнаяГруппа = Объект.УчебнаяГруппа.Ссылка;
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
Сообщить("ЦиклНеРаботает");
Пока ЗначениеРесурсаУчебнаяГруппа = ЗначениеУчебнаяГруппа Цикл
Сообщить("ЦиклРаботает");
Выборка = Выборка.Выбрать(Объект.Студент);
КонецЦикла;
Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Студенты.Добавить();
НоваяСтрока = Выборка;
КонецЦикла;
КонецПроцедуры
проще сделать таким образом
&НаСервере
Процедура СервернаяЧасть()
Запрос = Новый Запрос();
Запрос.УстановитьПараметры("УчебнаяГруппа", Объект.УчебнаяГруппа);
Запрос.Текст =
"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|ГДЕ РегистрСведений.СоставУчебныхГрупп.УчебнаяГруппа = &УчебнаяГруппа";
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Сообщить("Нет данных по группе");
Возврат;
КонецЕсли;
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Студенты.Добавить();
НоваяСтрока = Выборка.Студент;
КонецЦикла;
КонецПроцедуры
Показатьтак не будет лишних циклов и сразу получите нужные данные.
а ошибка по идее в этой строке
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
вместо УчебнаяГруппа укажите "Группа" просто
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
проще сделать таким образом
так не будет лишних циклов и сразу получите нужные данные.
а ошибка по идее в этой строке
вместо УчебнаяГруппа укажите "Группа" просто
&НаСервере
Процедура СервернаяЧасть()
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|СГРУППИРОВАТЬ ПО
| СоставУчебныхГрупп.УчебнаяГруппа,
| СоставУчебныхГрупп.Студент
|ИТОГИ ПО
| Студент,
| УчебнаяГруппа";
Выборка = Запрос.Выполнить().Выбрать();
ЗначениеУчебнаяГруппа = Объект.УчебнаяГруппа.Ссылка;
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
Сообщить("ЦиклНеРаботает");
Пока ЗначениеРесурсаУчебнаяГруппа = ЗначениеУчебнаяГруппа Цикл
Сообщить("ЦиклРаботает");
Выборка = Выборка.Выбрать(Объект.Студент);
КонецЦикла;
Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Студенты.Добавить();
НоваяСтрока = Выборка;
КонецЦикла;
КонецПроцедуры
ПоказатьПроцедура СервернаяЧасть()
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|СГРУППИРОВАТЬ ПО
| СоставУчебныхГрупп.УчебнаяГруппа,
| СоставУчебныхГрупп.Студент
|ИТОГИ ПО
| Студент,
| УчебнаяГруппа";
Выборка = Запрос.Выполнить().Выбрать();
ЗначениеУчебнаяГруппа = Объект.УчебнаяГруппа.Ссылка;
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
Сообщить("ЦиклНеРаботает");
Пока ЗначениеРесурсаУчебнаяГруппа = ЗначениеУчебнаяГруппа Цикл
Сообщить("ЦиклРаботает");
Выборка = Выборка.Выбрать(Объект.Студент);
КонецЦикла;
Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Студенты.Добавить();
НоваяСтрока = Выборка;
КонецЦикла;
КонецПроцедуры
проще сделать таким образом
&НаСервере
Процедура СервернаяЧасть()
Запрос = Новый Запрос();
Запрос.УстановитьПараметры("УчебнаяГруппа", Объект.УчебнаяГруппа);
Запрос.Текст =
"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|ГДЕ РегистрСведений.СоставУчебныхГрупп.УчебнаяГруппа = &УчебнаяГруппа";
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Сообщить("Нет данных по группе");
Возврат;
КонецЕсли;
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = Объект.Студенты.Добавить();
НоваяСтрока = Выборка.Студент;
КонецЦикла;
КонецПроцедуры
Показатьтак не будет лишних циклов и сразу получите нужные данные.
а ошибка по идее в этой строке
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
вместо УчебнаяГруппа укажите "Группа" просто
(1)
Приведите к одному наименованию (выделенные слова).
Запрос.Текст =
"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|СГРУППИРОВАТЬ ПО
| СоставУчебныхГрупп.УчебнаяГруппа,
| СоставУчебныхГрупп.Студент
|ИТОГИ ПО
| Студент,
| УчебнаяГруппа";
Выборка = Запрос.Выполнить().Выбрать();
ЗначениеУчебнаяГруппа = Объект.УчебнаяГруппа.Ссылка;
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
Показать"ВЫБРАТЬ
| СоставУчебныхГрупп.Студент КАК Студент,
| СоставУчебныхГрупп.УчебнаяГруппа КАК Группа
|ИЗ
| РегистрСведений.СоставУчебныхГрупп КАК СоставУчебныхГрупп
|
|СГРУППИРОВАТЬ ПО
| СоставУчебныхГрупп.УчебнаяГруппа,
| СоставУчебныхГрупп.Студент
|ИТОГИ ПО
| Студент,
| УчебнаяГруппа";
Выборка = Запрос.Выполнить().Выбрать();
ЗначениеУчебнаяГруппа = Объект.УчебнаяГруппа.Ссылка;
ЗначениеРесурсаУчебнаяГруппа = Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "УчебнаяГруппа");
Приведите к одному наименованию (выделенные слова).
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот