Вопрос немного по теории

  • Автор темы Автор темы lira89
  • Дата начала Дата начала
L

lira89

В приведенном ниже коде обработки осуществляется передача переменной в функцию. Здесь идет запись отдельных реквизитов справочника (Имя, Фамилия, отчество) и все работает корректно:
Код:
Функция ФормированиеНаименования(СпрФЛ) 
Стр = "";  
Стр =СокрЛП(СпрФЛ.Фамилия)+" "+СокрЛП(СпрФЛ.Имя)+" "+СокрЛП(СпрФЛ.Отчество);
Возврат Стр;
КонецФункции 
.........
Процедура Выполнить()
СпрФЛ = СоздатьОбъект("Справочник.ФизическиеЛица");
СпрФЛ.Новый();
СпрФЛ.КодСтудента = Табл2.КодСтудента;
СпрФЛ.Фамилия = Табл2.Фам;
СпрФЛ.Имя = Табл2.Имя;
СпрФЛ.Отчество = Табл2.Отч;
СпрФЛ.Записать();
СпрФЛ.Наименование = ФормированиеНаименования(СпрФЛ); 
СпрФЛ.Записать(); 
......
Вопрос: а можно ли в самой функции ФормированиеНаименования написать метод СоздатьОбъект и через объявленную таким способом переменную сформировать наименование, состоящее из записанных данных СпрФЛ.Фамилия, СпрФЛ.Имя, СпрФЛ.Отчество и как корректнее всего это сделать, возможно надо что-то изменить в процедуре Выполнить?
 
Выкладываю пример, как прописано в моей базе
Код:
Функция ФормированиеНаименования(СпрФЛ)
Стр = "";  
Стр =СокрЛП(СпрФЛ.Фамилия)+" "+СокрЛП(СпрФЛ.Имя)+" "+СокрЛП(СпрФЛ.Отчество);
Возврат Стр;
КонецФункции 	

Процедура Выполнить() 
СпрФЛ = СоздатьОбъект("Справочник.ФизическиеЛица");
СпрФЛ.ВыбратьЭлементы();
Пока СпрФЛ.ПолучитьЭлемент()=1 Цикл 
СпрФЛ.Новый();
СпрФЛ.Наименование = ФормированиеНаименования(СпрФЛ.ТекущийЭлемент());
СпрФЛ.Записать(); 
КонецЦикла;	
КонецПроцедуры;
Зачем создавать объект во вспомогательной функции?
 
Пока СпрФЛ.ПолучитьЭлемент()=1 Цикл
СпрФЛ.Новый();
СпрФЛ.Наименование = ФормированиеНаименования(СпрФЛ.ТекущийЭлемент());
СпрФЛ.Записать();
КонецЦикла;
Это что за чудо ? И с какой целью ?
 
Просто lira89 выложил создание и запись одного элемента. Как правило, нужно обрабатывать весь справочник целиком.
 
Оно-то конечно.

Но при надобности цикл любой мало-мальски грамотный программист организует.
А вот в твоем примере я так ничего и не понял - перебирается справочник, при получении каждого элемента создается новый и формирует наименование из текущего.
Вот я и спрашиваю : зачем ?
Да и уверенности, что правильно написано, у меня нет
 
Виноват, строка с созданием нового элемента - лишняя. И не факт, что в справочнике lira89 уже имеются заполненные реквизиты с именем, фамилией...
 
Схоластика все это. Проблема выеденного яйца не стоит, и обсуждать тут особо нечего
 
После создания нового элемента наименование старого теряется вместе со ссылкой на него. Кроме того разрушается выборка.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab