Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 03:51

Запрос в форме документа с выведением таблицы

Автор Maximoshka, 09 фев 2016, 13:50

0 Пользователей и 1 гость просматривают эту тему.

Maximoshka

Здравствуйте,
Есть справочник Номера там хранится Наименование, НомерКомнаты и Цена.
В регистре сведений (независимом) хранится измерения: Номер (ссылка на справочник), а в ресурсах: СостояниНомера ДатаЗаезда и ДатаПриезда.
Как сделать так, чтобы при заполнении заявки, при выборе номера выдавались только свободные номера?
И в каком модуле прописывать код запроса?

Код в ФормеДокуента:
&НаКлиенте
Процедура ВидНомераПриИзменении(Элемент)

Запрос = Новый Запрос("ВЫБРАТЬ
| СостояниеНомеров.Номер
|ИЗ
| РегистрСведений.СостояниеНомеров КАК СостояниеНомеров
|ГДЕ
| СостояниеНомеров.СостояниеНомера = &СостояниеНомера
| И СостояниеНомеров.ДатаЗаезда <= &ДатаЗаезда
| И СостояниеНомеров.ДатаВыезда >= &ДатаВыезда");
ТЗ = Новый ТаблицаЗначений;
ТЗ = Запрос.Выполнить().Выгрузить();

ЭтаФорма.Объект.Цена = ПолучитьЦену(ЭтаФорма.Объект.ВидНомера);
КонецПроцедуры

Выдаёт ошибку. Я понимаю что запрос не на клиенте делать нужно но как это прописать и чтобы при вводе был список нужных номеров?

Rasty

Добавляете реквизит список значений например "Номера", при открытии формы заполняете его Номера.Добавить(), а сравнение в запросе достаточно делать по дате выезда.
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Maximoshka

Цитата: Rasty от 09 фев 2016, 14:00
Добавляете реквизит список значений например "Номера", при открытии формы заполняете его Номера.Добавить(), а сравнение в запросе достаточно делать по дате выезда.
Сделал немного по другому в регистре поменял СостояниеНомера на Занятость номера и дал тип булево
При открытии формы создал процедуру, но выдаёт ошибку "тип не определён Запрос"
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Запрос = Новый Запрос("ВЫБРАТЬ
| СостояниеНомеров.Номер.Наименование,
| СостояниеНомеров.ЗанятостьНомера
|ИЗ
| РегистрСведений.СостояниеНомеров КАК СостояниеНомеров
|ГДЕ
| СостояниеНомеров.ЗанятостьНомера = ЛОЖЬ");
Результат = Запрос.Выполнить();
Номера = Новый ТаблицаЗначений;
Номера = Запрос.Выполнить().Выгрузить();
КонецПроцедуры

Rasty

ну так делайте запрос &НаСервере а не &НаКлиенте
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Maximoshka

Цитата: Rasty от 09 фев 2016, 15:05
ну так делайте запрос &НаСервере а не &НаКлиенте
А как потом результат запроса передать на форму при заполнении?
Прошу прощения за глупый вопрос, не силён в 1С

cska-fanat-kz

Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Maximoshka

Цитата: cska-fanat-kz от 09 фев 2016, 15:35
ПриСозданииНаСервере()
А дальше как код прописать вот здесь? Чтобы при нажатии открывался список результата

&НаКлиенте
Процедура ВидНомераПриИзменении(Элемент)

КонецПроцедуры

cska-fanat-kz

1. у справочника делаем отдельную форму списка, называем ВыборСвободныхНомеров
2. в этой форме в динамическом списке в произвольном запросе получаем свободные номера
3. в итоге имеем список всех свободных номеров
4. далее отправляем в форму параметр - вид номера или еще какой отбор
5. соответственно в запрос к динамическому списку добавляем соответствующие условия
6. в ПриСозданииНаСервере() "ловим" параметры из п.4 и подставляем их в запрос к дин.списку
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Maximoshka

Цитата: cska-fanat-kz от 09 фев 2016, 16:17
1. у справочника делаем отдельную форму списка, называем ВыборСвободныхНомеров
2. в этой форме в динамическом списке в произвольном запросе получаем свободные номера
3. в итоге имеем список всех свободных номеров
4. далее отправляем в форму параметр - вид номера или еще какой отбор
5. соответственно в запрос к динамическому списку добавляем соответствующие условия
6. в ПриСозданииНаСервере() "ловим" параметры из п.4 и подставляем их в запрос к дин.списку
А как программно прописать?

cska-fanat-kz

читаем книжку "Разработка управляемого интерфейса"
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск