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

Запрет на проведения документа при условии, если номер уже занят

Автор filomonko, 25 апр 2022, 10:30

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

filomonko

Здравствуйте!))
Помогите!!!  :mellow:
Кто может сделать реально рабочий запрос?? Могу заплатить!1!!! ))  :trhregerhg:  :)
Нужна помощь в запрете проведения документа "БронированиеНомеров" в том случаем, если определенный номер на определенную дату уже забронирован)))
При проведении документа данные записываются в регистр сведений.
Помогите реализовать проверку на занятый номер и запретить проведения при его занятости))
1.png
2.png
3.png

alexandr_ll

filomonko, Какие данные записываются в регистр сведений? Как определить занятость номера - попаданием в интервал дат заезда и выезда?

filomonko

alexandr_ll, в измерениях "Номер", "Клиент". В ресурсах "Занят", "ДатаЗаезда", "ДатаВыезда".

LexaK

filomonko, попробуйте такую процедуру, добавьте в модуль, вызовите в процедуре ОбработкаПроведения
(это пример, необходимо подставить свои имена реквизитов)
Процедура ПроверкаРезервирования(Отказ)

//Запрос - шаблон
лкЗапрос = Новый Запрос;
лкЗапрос.Текст = "
    |Выбрать
| Рег.ДатаЗаезда,
| Рег.Клиент
|из
РегистрСведений.РезервированиеНомеров рег
|Где
| Рег.Номер = &Номер
| и (&ДатаЗаезда между рег.ДатаЗаезда и рег.ДатаВыезда
| или рег.ДатаЗаезда между &ДатаЗаезда и &ДатаВыезда)
|
|";
лкЗапрос.УстановитьПараметр("Номер",Номер);
лкЗапрос.УстановитьПараметр("ДатаЗаезда",ДатаЗаезда);
лкЗапрос.УстановитьПараметр("ДатаВыезда",ДатаВыезда);


лкВыборка = лкЗапрос.Выполнить().Выбрать();
Пока лкВыборка.Следующий() Цикл
Сообщить("Номер: " + Номер + " уже зарезервирован на дату: " + лкВыборка.ДатаЗаезда);
//еще можно добавить информацию о клиенте и/или документе резервирования
Отказ = Истина;
КонецЦикла;
КонецПроцедуры
ответ Понравился? (в смысле пригодился?)

Теги:

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

Рейтинг@Mail.ru Rambler's Top100

Поиск