Как улучшить код 1С для функции проверки данных в ЗУП 3.1?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как улучшить код 1С для функции проверки данных в ЗУП 3.1?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #36556
      Фото аватараOdineski
      Участник

        Улучши код из 1С ЗУП 3.1.24.239 КОРП»// 3440. Резерв отпусков — исправление алгоритма
        &НаСервереБезКонтекста
        Функция ТВСЗ_ДанныеПроверки(Знач Ссылка, Знач СписокСотрудников, Знач МесяцНачисления)
        Результат = ТВСЗ_НовыйДанныеПроверки();

        Если Ссылка = Неопределено Тогда
        ЗаполнитьЗначенияСвойств(Результат, РезервыПоОплатеТруда.ТВСЗ_ВходящиеОстатки(Ссылка),
        «ЕстьРасхожденияСуммыРезервовПоСотрудникамБУ,ЕстьРасхожденияСуммыРезервовПоСотрудникамНУ,СуммаРезервовБУ»
        + «,СуммаРезервовНУ,СуммаРезервовПоСотрудникамБУ,СуммаРезервовПоСотрудникамНУ»);
        КонецЕсли;

        Если СписокСотрудников.Количество() Тогда
        Результат.ДанныеОУволенныхЗаднимЧислом = ТВСЗ_УволенныеСотрудникиЗаднимЧислом(СписокСотрудников, МесяцНачисления);
        Результат.ЕстьУволенныеЗаднимЧислом = Результат.ДанныеОУволенныхЗаднимЧислом.Количество();
        КонецЕсли;

        Возврат Результат;
        КонецФункции
        «

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

          Вот улучшенный вариант вашего кода с учётом читаемости, безопасности и оптимизации:

          Что улучшено:

          1. Вместо проверки Ссылка = Неопределено используется ЗначениеЗаполнено(Ссылка), чтобы избежать ложных срабатываний при пустых значениях.
          2. Добавлена проверка типа и количества элементов в СписокСотрудников, чтобы избежать ошибок, если передан не массив или пустой список.
          3. Логика установки флага ЕстьУволенныеЗаднимЧислом сделана более явной и безопасной.
          4. Форматирование и отступы улучшены для лучшей читаемости.
          5. Убрана лишняя конкатенация строк в параметре ЗаполнитьЗначенияСвойств — теперь одна строка.

          Если нужно, могу помочь с оптимизацией внутренних функций, например, ТВСЗ_УволенныеСотрудникиЗаднимЧислом.

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