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

Что такое пометка?

Автор Дмитрий Корнилов, 25 окт 2025, 19:22

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

Дмитрий Корнилов

Здравствуйте, ребята позвольте узнать что такое пометка? И где она находиться, заранее буду благодарен
� Создайте на форме список значений (тип значения Дата) и поместите его на форму, также
поместите на форме поле Пометка.
� При выполнении команды заполняйте этот список датами текущего месяца.
� Создайте реквизит с типом Дата и поместите его на форму.
� После ввода даты ищите такую дату в списке значений, и отмечайте её пометкой. Пометки не
должны накапливаться, очищайте все пометки перед установкой новой.

&НаСервере
Процедура ЗаполнитьМесяцНаСервере()
   
    // Очищаем список перед заполнением
    СписокДат.Очистить();
   
    // Получаем первый и последний день текущего месяца
    ТекущаяДата = ТекущаяДатаСеанса();
    НачалоМесяца = НачалоМесяца(ТекущаяДата);
    КонецМесяца  = КонецМесяца(ТекущаяДата);
   
    ДатаЦикла = НачалоМесяца;
   
    // Заполняем список значениями (дата) и представлением (дата в коротком формате)
    Пока ДатаЦикла <= КонецМесяца Цикл
       
        // Значение - Дата, Представление - Строковое представление даты
        СписокДат.Добавить(ДатаЦикла, Формат(ДатаЦикла, "ДФ=dd.MM.yyyy"));
       
        ДатаЦикла = ДатаЦикла + 86400; // Добавляем одни сутки (86400 секунд)
    КонецЦикла;
   
КонецПроцедуры
 
&НаКлиенте
Процедура ЗаполнитьМесяц(Команда)
    ЗаполнитьМесяцНаСервере();
КонецПроцедуры       
 
 
&НаСервере
Процедура НайтиИПометитьДатуНаСервере()
   
// 1. Очистка предыдущих пометок
    Для Каждого ЭлементСписка Из СписокДат Цикл
        ЭлементСписка.Пометка = Ложь;
    КонецЦикла;
   
    // Проверка на корректность даты
    Если ДатаДляПоиска = Неопределено Или Год(ДатаДляПоиска) = 1 Тогда
        Возврат;
    КонецЕсли;
   
    // 2. Поиск и установка новой пометки
   
    //  ИСПРАВЛЕНИЕ: Используем метод НайтиПоЗначению()
    НайденныйЭлемент = СписокДат.НайтиПоЗначению(ДатаДляПоиска);
   
    Если НайденныйЭлемент <> Неопределено Тогда
        // Устанавливаем пометку для найденного элемента
        НайденныйЭлемент.Пометка = Истина;
    КонецЕсли;
   
КонецПроцедуры
 
&НаКлиенте
Процедура ДатаДляПоискаПриИзменении(Элемент)
    // Вызов серверной процедуры для поиска и пометки
    НайтиИПометитьДатуНаСервере();
КонецПроцедуры

antoneus

Пометка - это свойство элемента списка значений. Она есть у всякого элемента всякого списка.

На форму её можно вытащить мышой.

sali

пометка на удаление, либо с другими картинками ее использовать

LexaK

Дмитрий Корнилов, по идее эту процедуру можно написать короче
попробуйте так

&НаСервере
Процедура НайтиИПометитьДатуНаСервере()

    // странная проверка, проверьте ее
    // Проверка на корректность даты
    Если ДатаДляПоиска = Неопределено Или Год(ДатаДляПоиска) = 1 Тогда
        Возврат;
    КонецЕсли;
   
// 1. Очистка предыдущих пометок
    Для Каждого ЭлементСписка Из СписокДат Цикл
        ЭлементСписка.Пометка = ЭлементСписка.Значение = ДатаДляПоиска; //Ложь;
    КонецЦикла;
   
КонецПроцедуры
если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск