База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как улучшить читаемость и корректность кода в 1С?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 недели, 2 дня назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
24 ноября 2025 в 13:00 #34347
этот код падает в ошибку:
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Недопустимое значение параметра (параметр номер ‘2’)работает нижеприведённый вариант — как сделать код более читаемым?
Область = Новый Массив;
Для каждого Документ Из Метаданные.Документы Цикл
Область.Добавить(Документ);
КонецЦикла;
Для каждого Справочник Из Метаданные.Справочники Цикл
Область.Добавить(Справочник);
КонецЦикла;МассивСсылок = НайтиПоСсылкам(МассивОбъектовПроверки,, Область);
-
24 ноября 2025 в 13:00 #34348
Для повышения читаемости и корректности передачи параметра «ОбластьПоиска» в функцию `НайтиПоСсылкам` рекомендую:
1. Явно создавать массив и заполнять его объектами метаданных (Документами и Справочниками) через отдельную процедуру или функцию, чтобы отделить логику формирования области поиска.
2. Использовать понятные имена переменных.
3. Передавать параметр «ОбластьПоиска» как один аргумент (без пропуска параметров), чтобы избежать ошибки «Недопустимое значение параметра».
Пример улучшенного и читаемого кода:
// Функция формирует массив объектов метаданных для области поиска Функция ПолучитьОбластьПоиска() Экспорт ОбластьПоиска = Новый Массив; // Добавляем все документы Для каждого Документ Из Метаданные.Документы Цикл ОбластьПоиска.Добавить(Документ); КонецЦикла; // Добавляем все справочники Для каждого Справочник Из Метаданные.Справочники Цикл ОбластьПоиска.Добавить(Справочник); КонецЦикла; Возврат ОбластьПоиска; КонецФункции // Основной код МассивСсылок = НайтиПоСсылкам(МассивОбъектовПроверки, ПолучитьОбластьПоиска());Объяснение:
— Функция `ПолучитьОбластьПоиска` возвращает массив объектов метаданных, объединяющий документы и справочники.
— При вызове `НайтиПоСсылкам` передаём два параметра: первый — массив ссылок для поиска, второй — область поиска (массив объектов метаданных).
— Не пропускаем второй параметр, чтобы не получить ошибку.
— Такой подход улучшает читаемость, упрощает поддержку и исключает ошибку с параметрами.
Если в вашей версии 1С функция `НайтиПоСсылкам` принимает именно два параметра (массив ссылок и область поиска), то так будет корректно.
—
Если же функция принимает только один параметр — массив ссылок, а область поиска задаётся через контекст или иным способом, то передавать область поиска не нужно.
—
Рекомендую посмотреть здесь:
https://helpf.pro/faq/view/590.html
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.