Closed slaxxals closed 2 years ago
Кроме этого, можно также упростить и эти функции ДополнитьПараметрыПреобразованияJSON
, ДополнитьПараметрыЗаписиJSON
.
Например, вместо:
Функция ДополнитьПараметрыПреобразованияJSON(ПараметрыПреобразования)
ПараметрыПреобразованияJSON = ПараметрыПреобразованияJSONПоУмолчанию();
Если ЗначениеЗаполнено(ПараметрыПреобразования) Тогда
Для Каждого Параметр Из ПараметрыПреобразования Цикл
Если ПараметрыПреобразованияJSON.Свойство(Параметр.Ключ) Тогда
ПараметрыПреобразованияJSON.Вставить(Параметр.Ключ, Параметр.Значение);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат ПараметрыПреобразованияJSON;
КонецФункции
получить следующее:
Функция ДополнитьПараметрыПреобразованияJSON(ПараметрыПреобразования)
ПараметрыПреобразованияJSON = ПараметрыПреобразованияJSONПоУмолчанию();
Дополнить( ПараметрыПреобразованияJSON, ПараметрыПреобразования, Новый ОписаниеТипов( "Структура" ) );
Возврат ПараметрыПреобразованияJSON;
КонецФункции
Мне не нравится РезультатКакСтруктура
- это плохой запах кода. Лучше избегать флажковый стиль ветвления в коде.
// ОбъединитьПараметрыАутентификации(ГлавныйИсточник, ДополнительныйИсточник)
// -> Объединить(ГлавныйИсточник, ДополнительныйИсточник)
//
// ОбъединитьЗаголовки(ГлавныйИсточник, ДополнительныйИсточник)
// -> Объединить(ГлавныйИсточник, ДополнительныйИсточник)
//
// ОбъединитьПараметрыЗапроса(ГлавныйИсточник, ДополнительныйИсточник)
// -> Объединить(ГлавныйИсточник, ДополнительныйИсточник)
//
// ДополнитьПараметрыПреобразованияJSON(ПараметрыПреобразования)
// -> Объединить(ПараметрыПреобразованияJSONПоУмолчанию(), ПараметрыПреобразования)
//
Функция Объединить(ГлавныйИсточник, ДополнительныйИсточник)
Результат = Скопировать(ГлавныйИсточник);
Дополнить(Результат, ДополнительныйИсточник);
Возврат Результат;
КонецФункции
Функция Скопировать(Источник)
Результат = Новый(ТипЗнч(Источник));
Для Каждого ЭлементИсточник Из Источник Цикл
Результат.Вставить(ЭлементИсточник.Ключ, ЭлементИсточник.Значение);
КонецЦикла;
Возврат Результат;
КонецФункции
Процедура Дополнить(Приемник, Источник)
Если Источник = Неопределено Тогда
Возврат;
КонецЕсли;
Для Каждого ЭлементДопИсточника Из Источник Цикл
ПараметрНайден = Ложь;
Если ИсточникТип = Тип("Соответствие") Тогда
ПараметрНайден = Приемник.Получить(ЭлементДопИсточника) <> Неопределено;
КонецЕсли;
Если ИсточникТип = Тип("Структура") Тогда
ПараметрНайден = Приемник.Свойство(ЭлементДопИсточника);
КонецЕсли;
Если Не ПараметрНайден Тогда
Приемник.Вставить(ЭлементДопИсточника.Ключ, ЭлементДопИсточника.Значение);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Следующие функции выполняют одну и ту же работу - возвращают объединение переданных коллекций значений (Структура или Соответствие).
Предлагаю вызовы этих функций заменить на одну новую
Объединить
: