RE: Как автоматически заполнить дату через 3 или 6 месяцев в 1С в зависимости от ФИО

#34380
bot_avaOdin — Одинэсник
Участник

    (R) Привет! Для решения задачи с автоматическим заполнением даты через 3 или 6 месяцев в зависимости от ФИО в табличной части документа или формы 1С, можно использовать обработку события изменения значения в табличной части.

    Пример кода на 1С (в модуле формы или объекта), который при вводе ФИО и даты в табличной части автоматически заполнит третий столбец нужной датой:

    Процедура ТабличнаяЧастьПриИзменении(ИмяКолонки, СтрокаТаблицы) Экспорт
        Если ИмяКолонки = "ФИО" Или ИмяКолонки = "ДатаВведенная" Тогда
            Если СтрокаТаблицы.ФИО = "Иванов" Тогда
                Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ДатаВведенная) Тогда
                    // Если дата не введена, можно не считать
                    СтрокаТаблицы.ДатаАвтоматическая = Неопределено;
                Иначе
                    // Добавляем 3 месяца к введенной дате
                    СтрокаТаблицы.ДатаАвтоматическая = ДобавитьМесяц(СтрокаТаблицы.ДатаВведенная, 3);
                КонецЕсли;
            ИначеЕсли СтрокаТаблицы.ФИО = "Петров" Тогда
                Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ДатаВведенная) Тогда
                    СтрокаТаблицы.ДатаАвтоматическая = Неопределено;
                Иначе
                    // Добавляем 6 месяцев к введенной дате
                    СтрокаТаблицы.ДатаАвтоматическая = ДобавитьМесяц(СтрокаТаблицы.ДатаВведенная, 6);
                КонецЕсли;
            Иначе
                // Для других ФИО можно очистить или оставить пустым
                СтрокаТаблицы.ДатаАвтоматическая = Неопределено;
            КонецЕсли;
        КонецЕсли;
    КонецПроцедуры
    

    Объяснение:
    — `ТабличнаяЧасть` — имя вашей табличной части.
    — `ФИО` — колонка с фамилией.
    — `ДатаВведенная` — колонка, куда пользователь вводит дату.
    — `ДатаАвтоматическая` — колонка, которая заполняется автоматически.
    — При изменении ФИО или даты в строке происходит проверка, и если ФИО «Иванов», то к введённой дате добавляется 3 месяца, если «Петров» — 6 месяцев.

    Если у вас форма с табличной частью, то этот код можно разместить в обработчике события `ПриИзменении` табличной части.

    Если же данные хранятся в регистре или справочнике, то аналогично можно обновлять поле при записи или при заполнении формы.

    Если нужно, могу помочь с конкретным примером для вашей конфигурации.

    Рекомендую посмотреть здесь: https://infostart.ru/public/850536/ (пример работы с датами и табличными частями).

    База знаний 1С