Здравствуйте друзья.. У меня такая маленькая проблема. Создал справочник, данные для банковской карты.. Каждый новый банковский карт будет хранится в этом справочники со всеми данными.. Но как вы знаете у каждой карты есть свое дата окончание... Теперь нужно что, я открываю справочник как на фотке указонно заполняю его и в том числе пишу дата окончание карты.. Например 10,12,2020 - нужно записать когд что бы именно в этот же день у меня всплывал окно. о предупридение что конкретного этого то справочника и указывая этот архив что время истекло.. можно ли как то сделать ? и если можно то какой код записать ? заранее спасибо..
---
Ну тогда вариант посложнее :)

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

    Запрос.УстановитьПараметр("Дата", ТекущаяДата);

    ТЗРезультат = Запрос.Выполнить().Выгрузить();

    Если ТЗРезультат.Количество() > 0 Тогда
    Для каждого Стр Из ТЗРезультат Цикл
    сообщить(Стр.Ссылка);
    КонецЦикла;
    КонецЕсли;
    КонецПроцедуры

    //Это в ПриНачалеРаботыСистемы()
    Если ИмяПользователя()="Пользователь" Тогда
    ПодключитьОбработчикОжидания("ПроверкаСрокаДействияКарт",3600);
    КонецЕсли;
```
---
Сделай регламентированное задание проверки окончания карты раз в день
---
Это длинная тема как я понимаю. Нужно создать регистр свединий. нет ?
---
Не обязательно регистр, сделай обработку, которая по запросу к справочнику сделает ТЗ с истекшими картами. Вон ниже тебе код привели
---
Самый простой способ, это при запуске сеанса запускать код проверки. Нужно только указать для каких пользователей будет показывать.
Это либо у пользователя сделать настройку. Либо (что не совсем корректно), прописать конкретных пользователей/роли в коде.
---
код для самого простого варианта какой? Мне самое главное он работал а не совсем корректно не важно. самое главное что бы работала
---
закинуть в ПриНачалеРаботыСистемы()

```1c
    Если ИмяПользователя()="Пользователь" Тогда
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | Справочник1.Ссылка
    |ИЗ
    | Справочник.Справочник1 КАК Справочник1
    |ГДЕ
    | Справочник1.ДатаОкончания = &Дата";

    Запрос.УстановитьПараметр("Дата", ТекущаяДата);

    ТЗРезультат = Запрос.Выполнить().Выгрузить();

    Если ТЗРезультат.Количество() > 0 Тогда
    Для каждого Стр Из ТЗРезультат Цикл
    сообщить(Стр.Ссылка);
    КонецЦикла;
    КонецЕсли;
    КонецЕсли;
```
---
Тут вариант, что 1С-ку не закроют на ночь и приначалеработы не сработает
---
Ну тогда вариант посложнее :)

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

    Запрос.УстановитьПараметр("Дата", ТекущаяДата);

    ТЗРезультат = Запрос.Выполнить().Выгрузить();

    Если ТЗРезультат.Количество() > 0 Тогда
    Для каждого Стр Из ТЗРезультат Цикл
    сообщить(Стр.Ссылка);
    КонецЦикла;
    КонецЕсли;
    КонецПроцедуры

    //Это в ПриНачалеРаботыСистемы()
    Если ИмяПользователя()="Пользователь" Тогда
    ПодключитьОбработчикОжидания("ПроверкаСрокаДействияКарт",3600);
    КонецЕсли;
```
---
Ну тогда пойдет :)
---
Это для обычного режима сойдет или для управляемого ?)
---
Для режима обычного приложения
---
окей спасибо большое) если что я спрашу у вас. надеюсь вы не будете против)
---
Короче поставил код.. Но реакции ноль, хочу при входе в программу проверить но ничего не выходит... Никакой ошибки в коде нету но провенрять то нимогу работает ли или нет ...
---
Можно выдавать не только карты которые просрочились, но и допустим выдавать список карт, у которых срок действия скоро закончится (допустим через 3 дня). Тогда проблем, что базу не закрыли будет меньше.
---
Плохая задача. Проверять надо при открытии формы элемента, можно подсвечивать при открытии списка, можно выдавать предупреждение при попытке выбрать карту в документ и т.д...
Но зачем предупреждение при начале работы??? А если я несколько раз буду запускать систему в день? Я каждый раз буду это читать? Обо всех просроченных картах при начале работы??? Да вы издеваетесь...

И вообще - это обычный отчет.
---
А потом, мы забыли, мы не знали и прочее. А так открылся, выдало предупреждение, дальше твои проблемы. Не нравится, нажми на крестик, не умрешь.
---
А если создать подписку:

И там ограничить данные выбора?