Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 769
от 28.03.2008, 16:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 409, Экспертов: 48
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 128573: Уважаемые эксперты, помогите разобраться в вопросе. я подобный вопрос уже задавал но тогда мне никто не ответил, попробуем еще раз, но с другой формулировкой. было дело писал на Delphi программу которая для 1cv7 по заданному справоч...

Вопрос № 128.573
Уважаемые эксперты, помогите разобраться в вопросе.

я подобный вопрос уже задавал но тогда мне никто не ответил, попробуем еще раз, но с другой формулировкой.

было дело писал на Delphi программу которая для 1cv7 по заданному справочнику выбирала из него с помощью OLE все его атрибуты, разбивала по типам атрибутов, и выбирала потом по всем атрибутам данные этого справочника.

выглядело это так.

ware := conn.Server1c.createobject('Справочник.test');

так я делал ссылку на справочник

conn.Server1c.Metadata.Reference('test').Attribute(i)

так добирался до каждого атрибута справочника.

ware.GetAttrib('Код');
так добирался до значения конкретного атрибута в выборке, которую делал вот таким запросом
ware.SelectItems(0);

где ware ссылка на справочник...

все вроди бы просто, однако дошло дело до 1cv8

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

и в итоге у меня не получается вообще долезть до данных по именам.

привожу пример

если в 1cv7 я ссылку на справочник делал так
ware := conn.Server1c.createobject('Справочник.test');

то в 1cv8 нужно делать так

v8.ole1Cv8.Catalogs.test

т.е. имя справочника задается как свойство, и нет возможности добратся по имени.

думал можно просто перебором всех справочников найти ссылку на нужный мне справочник, написал функцию



function TForm1.GetRefCatalog(Meta: variant;CatalogName:string): variant;
var i:integer;
begin
for I := 0 to Meta.Count- 1 do
begin
result:=Meta.Get(i);
if UpperCase(Result.Name)=uppercase(CatalogName) then
exit;
end;
end;



однако не тут то было ссылку то я получаю но это не ссылка на объект с данными а ссылка на объект Метаданные справочники, в итоге я не могу обращаться к методам выборки, такие как Select , Next и т.д.

то же самое с атрибутами...

вопрос вот в чем, т.к. саму 1с я знаю достаточно плохо то может все таки есть в 1cv8 методы для обращения
1) к справочникам, по имени, или индексу
2) к атрибутам по имени или индексу...
3) нужен аналог метода GetAttrib('поле') в 1cv8

ну или если кто то делал что то подобное, прошу натолкнуть на хоть какие мысли..
Отправлен: 22.03.2008, 16:49
Вопрос задал: Кэр Лаэда (статус: Практикант)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Полозов Олег aka Asher
Здравствуйте, Кэр Лаэда!

Да конструкции языка действительно изменены, сейчас не надооткрывать новые объекты, а надо идти до справочника через менеджеры:
conn.Server1c.Справочники - менеджер справочников
conn.Server1c.Справочники.Тест - менеджер справочника тест. от сюда можно выбирать элементы, пользоваться методвми поиска по коду наименованию и т.п.
после позиционирования на какой то определенный элемент, либо по циклу либо через поиск можно добраться до объекта элемента методом ПолучитьОбъект(). Например:
elem_object = conn.Server1c.Справочники.Тест.НайтиПоПоКоду("000001");
и теперь можно изменять данные в объекте:
elem_object.Код = "000002";
Ответ отправил: Полозов Олег aka Asher (статус: Студент)
Ответ отправлен: 24.03.2008, 10:13
Оценка за ответ: 4
Комментарий оценки:
спасибо конечно на ответ но вы не ответили ни на один вопрос который я задал

вопрос вот в чем, т.к. саму 1с я знаю достаточно плохо то может все таки есть в 1cv8 методы для обращения
1) к справочникам, по имени, или индексу
2) к атрибутам по имени или индексу...
3) нужен аналог метода GetAttrib(поле) в 1cv8


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Росси, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 4.72.6 beta от 22.03.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное