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

Как автоматически з...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

как работать с датами.
Например в таблице, в одном столбце указывается фио, во втором столбце указываешь дату самостоятельно, в третьем столбце дата устанавливается автоматически.
Например.
Иванову автоматически дата ставиться какая будет через три месяца, а Петрову какая дата ставиться через шесть месяцев.



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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

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

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

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

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

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

---

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

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



   
ОтветитьЦитата