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

Тема в разделе "1C и всё что с ней связано", создана пользователем lira89, 27 апр 2010.

  1. lira89

    lira89 Well-Known Member

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

    Tulipe Гость

    Выкладываю пример, как прописано в моей базе
    Код ( (Unknown Language)):
    Функция ФормированиеНаименования(СпрФЛ)
    Стр = "";  
    Стр =СокрЛП(СпрФЛ.Фамилия)+" "+СокрЛП(СпрФЛ.Имя)+" "+СокрЛП(СпрФЛ.Отчество);
    Возврат Стр;
    КонецФункции    

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

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Это что за чудо ? И с какой целью ?
     
  4. Tulipe

    Tulipe Гость

    Просто lira89 выложил создание и запись одного элемента. Как правило, нужно обрабатывать весь справочник целиком.
     
  5. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Оно-то конечно.

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

    Tulipe Гость

    Виноват, строка с созданием нового элемента - лишняя. И не факт, что в справочнике lira89 уже имеются заполненные реквизиты с именем, фамилией...
     
  7. vbs

    vbs Well-Known Member

    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Схоластика все это. Проблема выеденного яйца не стоит, и обсуждать тут особо нечего
     
  8. evgenyatam

    evgenyatam Well-Known Member

    Регистрация:
    7 сен 2007
    Сообщения:
    175
    Симпатии:
    0
    После создания нового элемента наименование старого теряется вместе со ссылкой на него. Кроме того разрушается выборка.
     
Загрузка...
Похожие Темы - Вопрос немного по
  1. Генералл
    Ответов:
    2
    Просмотров:
    56
  2. ApplePen
    Ответов:
    0
    Просмотров:
    58
  3. gURaBA_N
    Ответов:
    3
    Просмотров:
    92
  4. ghost
    Ответов:
    1
    Просмотров:
    86
  5. kartaman
    Ответов:
    0
    Просмотров:
    127

Поделиться этой страницей