ОБСУЖДЕНИЕ

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

7 ответов 5,6 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

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

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

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