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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как автоматически заполнить дату через 3 или 6 месяцев в 1С в зависимости от ФИО

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #34379
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

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

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

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

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С