| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Зачем нужен методТекущийЭлемент() |
| Автор: Vaddd 16.2.2007, 11:03 |
| Здравствуйте, в процессе изучения языка 1С возник вопрос. СПР=СоздатьОбъект("Справочник.Контрагенты"); СПР.НайтиПоКоду(<какой-нибудь код>); переменная=СПР.наименование; переменная=СПР.ТекущийЭлемент().наименование; Эффект от последних двух строчек одинаковый, так для чего нужен метод ТекущийЭлемент ? В описании языка написано, что "Метод ТекущийЭлемент возвращает значение элемента справочника в целом, как объекта", а ведь в моем примере СПР это и есть ссылка на объект типа Справочник.Контрагенты, который позиционирован на какой то конекретный элемент. Это разве не одно и тоже ? |
| Автор: Naghual 16.2.2007, 11:30 |
| СПР - Справочник, с позиционированным элементом! СПР.ТекущийЭлемент() - Только сам элемент. |
| Автор: Vaddd 16.2.2007, 11:50 | ||
То есть СПР - экземляр класса Справочник.Контрагенты, и еще есть экземляр другого класса-элемента ? Мне интересно как это реализованно в терминах ООП. Или может быть ТекущийЭлемент() выбирает подмножество атрибутов, которые описывают элемент, из множетсва атрибутов объекта справочник.контрагнеты ? |
| Автор: Vaddd 18.2.2007, 13:09 |
| И еще такой вопрос, когда мы пишем спр=создатьОбъект("Справочник.<какой-то справочник>"), то а) В памяти выделяется место под все элементы справочника и из файла базы данных загружаются все элементы справочника б) Выделяется место под 1 элемент справочника и когда мы позиционируем на каком то элементе, из файла базы данных в память выбирается 1 этот позиционируемый элемент ? Какой из двух вариантов правильный ? (Или может никакой ?) |
| Автор: _Valery_ 19.2.2007, 00:47 |
| Функция СоздатьОбъект() создает объект типа "Справочник", однако не указывает на конкретный элемент этого самого справочника (т.е. вариант б) похож на правду). Созданный таким образом объект изначально не спозиционирован. Чтобы начать с ним совершать какие-то действия, необходимо его позиционировать при помощи методов НайтиЭлемент(), НайтиПоКоду(), ПолучитьЭлемент() и т.д., в т.ч. и ТекущийЭлемент(). Если честно, не очень понимаю, зачем после применения метода НайтиПоКоду() использовать еще и ТекущийЭлемент() Однако, встречается такое часто... Надо поэкспериментировать |