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

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

      этот код падает в ошибку:
      [ОшибкаВоВремяВыполненияВстроенногоЯзыка]
      по причине:
      Недопустимое значение параметра (параметр номер ‘2’)

      работает нижеприведённый вариант — как сделать код более читаемым?

      Область = Новый Массив;
      Для каждого Документ Из Метаданные.Документы Цикл
      Область.Добавить(Документ);
      КонецЦикла;
      Для каждого Справочник Из Метаданные.Справочники Цикл
      Область.Добавить(Справочник);
      КонецЦикла;

      МассивСсылок = НайтиПоСсылкам(МассивОбъектовПроверки,, Область);

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

      Для повышения читаемости и корректности передачи параметра «ОбластьПоиска» в функцию НайтиПоСсылкам рекомендую:

      1. Явно создавать массив и заполнять его объектами метаданных (Документами и Справочниками) через отдельную процедуру или функцию, чтобы отделить логику формирования области поиска.

      2. Использовать понятные имена переменных.

      3. Передавать параметр «ОбластьПоиска» как один аргумент (без пропуска параметров), чтобы избежать ошибки «Недопустимое значение параметра».

      Пример улучшенного и читаемого кода:

      Объяснение:

      — Функция ПолучитьОбластьПоиска возвращает массив объектов метаданных, объединяющий документы и справочники.

      — При вызове НайтиПоСсылкам передаём два параметра: первый — массив ссылок для поиска, второй — область поиска (массив объектов метаданных).

      — Не пропускаем второй параметр, чтобы не получить ошибку.

      — Такой подход улучшает читаемость, упрощает поддержку и исключает ошибку с параметрами.

      Если в вашей версии 1С функция НайтиПоСсылкам принимает именно два параметра (массив ссылок и область поиска), то так будет корректно.

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

      Рекомендую посмотреть здесь:
      https://helpf.pro/faq/view/590.html

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