![]() |
|
Как предварительно заполнить список выбора, зависящий от документа? | ☑ | ||
---|---|---|---|---|
0
FrostBite101
02.05.20
✎
08:13
|
Нужно давать выбор пользователю только тех студентов, которые существуют в таб части документа.
Сделал отбор,а вот как это все организовать... не знаю &НаСервере Функция ПоискСтудена(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПосещениеСтуденты.Студент КАК Студент |ИЗ | Документ.Посещение.Студенты КАК ПосещениеСтуденты |ГДЕ | ПосещениеСтуденты.Ссылка = &Ссылка | И ПосещениеСтуденты.Студент = &Студент | И ПосещениеСтуденты.Студент ЕСТЬ НЕ NULL | |СГРУППИРОВАТЬ ПО | ПосещениеСтуденты.Студент"; Запрос.УстановитьПараметр("Ссылка", Объект.Документ); Запрос.УстановитьПараметр("Студент", Объект.Студент); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); МассивСтудентов = Новый Массив(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл МассивСтудентов.Добавить(ВыборкаДетальныеЗаписи.Студент); КонецЦикла; Возврат МассивСтудентов; КонецФункции &НаСервере Процедура СтудентСоздание(Элемент, СтандартнаяОбработка) // при создании или при редактировании реквизита студент ? СтандартнаяОбработка = Ложь; НовыеСвязи = Новый ФиксированныйМассив(ПоискСтудена()); Элементы.Студент.ПараметрыВыбора = НовыеСвязи; КонецПроцедуры |
|||
1
FrostBite101
02.05.20
✎
09:08
|
Поправил, но ничего не работает(
&НаСервере Функция ПоискСтудена(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПосещениеСтуденты.Студент КАК Студент |ИЗ | Документ.Посещение.Студенты КАК ПосещениеСтуденты |ГДЕ | ПосещениеСтуденты.Ссылка = &Ссылка | И ПосещениеСтуденты.Студент = &Студент | И ПосещениеСтуденты.Студент ЕСТЬ НЕ NULL | |СГРУППИРОВАТЬ ПО | ПосещениеСтуденты.Студент"; Запрос.УстановитьПараметр("Ссылка", Объект.Документ); Запрос.УстановитьПараметр("Студент", Объект.Студент); РезультатЗапроса = Запрос.Выполнить(); СписокСтудентов = Новый СписокЗначений; СписокСтудентов.ЗагрузитьЗначения(РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Студент")); Возврат СписокСтудентов; КонецФункции &НаКлиенте Процедура СтудентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; СписокСтудентов = ПоискСтудена(); ДанныеВыбора.ЗагрузитьЗначения(СписокСтудентов); КонецПроцедуры |
|||
2
Волшебник
модератор
02.05.20
✎
09:27
|
Запросов к документам быть не должно
|
|||
3
FrostBite101
02.05.20
✎
09:30
|
Исправил
&НаСервере Функция ПоискСтудена(); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПосещениеСтуденты.Студент КАК Студент |ИЗ | Документ.Посещение.Студенты КАК ПосещениеСтуденты |ГДЕ | ПосещениеСтуденты.Ссылка = &Ссылка | И ПосещениеСтуденты.Студент ЕСТЬ НЕ NULL | |СГРУППИРОВАТЬ ПО | ПосещениеСтуденты.Студент"; Запрос.УстановитьПараметр("Ссылка", Объект.Документ); РезультатЗапроса = Запрос.Выполнить(); Тз = РезультатЗапроса.Выгрузить(); СписокСтудентов = Новый СписокЗначений; СписокСтудентов.ЗагрузитьЗначения(РезультатЗапроса.Выгрузить().ВыгрузитьКолонку("Студент")); Возврат СписокСтудентов; КонецФункции &НаКлиенте Процедура СтудентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; СписокСтудентов = ПоискСтудена(); ДанныеВыбора=СписокСтудентов; КонецПроцедуры |
|||
4
FrostBite101
02.05.20
✎
09:31
|
(2) Это правило среди разработчиков? Как же брать данные из документа?
|
|||
5
Волшебник
модератор
02.05.20
✎
09:32
|
Условие некорректное:
ПосещениеСтуденты.Студент ЕСТЬ НЕ NULL Должно быть сравнение с пустой ссылкой |
|||
6
Волшебник
модератор
02.05.20
✎
09:32
|
(4) Из документа не надо брать данные. Документ должен класть данные в регистр при проведении.
|
|||
7
FrostBite101
02.05.20
✎
09:39
|
(6) Хорошо, спасибо. Хотелось бы спросить, как избавиться от старых выбранных значений. У меня все работает, но изначально выводятся все значения в поле студент, а когда я нажимаю "показать все" появляются нужные, а старые удаляются из выбора.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |