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

Запрет на выбор существующего реквизита

Автор Лина Пип, 14 ноя 2022, 21:20

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

Лина Пип

Как сделать, чтобы при выборе помещения нельзя было выбрать уже существующее в других документах помещение?
Есть документ "Договор Аренды", и в нем реквизит "Помещение". Реквизит ссылается на справочник "Помещение". Нужно чтобы при создании нового документа, нельзя было выбрать уже добавленное помещение. Например в одном документе есть Офис 8, и надо чтобы вылезала ошибка при выборе этого Офиса в другом документе.
изображение_2022-11-14_231722805.png
 изображение_2022-11-14_231802421.png

cast

Создай регистр, куда заноси сданые помещения.
При выборе помещения, проверяй есть в регистре, если нет то ок, если есть то сообщение о запрете.

LexaK

Лина Пип, у вас в документах аренды есть даты начала аренды и дата окончания,
для получения свободных помещений, напишите запрос к базе, передайте в него даты аренды,
и результат запроса поместите в список выбора,
т.е. при выборе помещения вам будут доступны только свободные помещения!

запросы умеете писать?
если помогло нажмите: Спасибо!

Лина Пип

LexaK, можете пример показать пожалуйста :fdbsdfbsd:

LexaK

Лина Пип, вот пример запроса получающего список свободных помещений на указанный период
(если сможете подставить свои наименования реквизитов, то этот пример вам поможет)
Выбрать //первые 100
спр.ссылка как Помещение //список свободных помещений
из
Справочник.Помещения как спр
левое соединение Документ.Аренда Док
по спр.ссылка = Док.Помещение
и Док.Проведен //только проведенные доки Аренды
и Док.Ссылка <> &Ссылка //кроме документа из которого проверяем
и ( Док.ДатаЗаключения между &ДатаЗаключения и &ДатаОкончания
или &ДатаЗаключения между Док.ДатаЗаключения и Док.ДатаОкончания )
Где
Не  спр.ПометкаУдаления //кроме помеченных на удаление
и   Док.ссылка есть  Null //по тем где нет документа Аренды на заданый интервал

упорядочить по
1 автоупорядочивание //сортируем список Помещений

если помогло нажмите: Спасибо!

Лина Пип

cast, Добрый вечер. Создала регистр сведений, в нем есть Статус помещения = ВАренде. Когда проводишь документ, в регистр заносятся Помещения и указан этот статус. Как можно сделать запрос? :dfbsdfbsdf:  :dfbsdfbsdf:


cast

cast, неправильная ссылка, не о том

cast


&НаКлиенте
Процедура ДоговорНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ДанныеВыбора = Новый СписокЗначений;
    ДанныеВыбора.ЗагрузитьЗначения(СформироватьМассивДоговоровКонтрагента(Контрагент));
КонецПроцедуры

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

Теги:

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

Рейтинг@Mail.ru

Поиск