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