Delphi 7 и 1С

1. Allizar 18.01.09 22:42 Сейчас в теме
Штудирую пособие о совместной работе указанных приложений. Создал учебный пример: запускается рабочая база и считывается значения справочника. Код компилируется, но при выполнении следующей процедуры выдается ошибка о несовпадении типов:
procedure TForm1.Button2Click(Sender: TObject);
var
  OleSklad: OleVariant;
begin
  OleSklad:=Unassigned;
  ListBox1.Items.Clear;
  if not VarIsEmpty(Ole1C) then begin
    OleSklad:=Ole1C.CreateObject('Справочник.'+Edit3.Text);
    if not VarIsEmpty(OleSklad) then begin
      if OleSklad.ВыбратьЭлементы()>0 then begin
        while OleSklad.ПолучитьЭлемент()>0 do begin
            ListBox1.Items.Add(Trim(OleSklad.Код)+'  '+Trim(OleSklad.Наименование));
            Application.ProcessMessages;
        end;
      end;
    end;
  end;
  OleSklad:=Unassigned;
end;
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Душелов 4021 19.01.09 01:19 Сейчас в теме
Где ругается?
Trim(OleSklad.Код) ? Тут?
Код тектовый? Или числовой?
3. Abadonna 3971 19.01.09 03:36 Сейчас в теме
4. Allizar 19.01.09 13:32 Сейчас в теме

Где ругается?
Trim(OleSklad.Код) ? Тут?
Код тектовый? Или числовой?


Ругается именно здесь. Код текстовой.

str(Ole...)

Сию минуту попробовать не могу, но пробовал VarToStr - не вышло.
5. Allizar 27.01.09 14:47 Сейчас в теме
Дело в версии Delphi: в более старых версиях код работает, а вот что надо сделать, чтоб заработал в Delphi 7???
6. Allizar 05.02.09 18:13 Сейчас в теме
Работает в таком варианте:

procedure TForm1.Button2Click(Sender: TObject);
var
  OleSklad: OleVariant;
begin
  OleSklad:=Unassigned;
  ListBox1.Items.Clear;
  if not VarIsEmpty(Ole1C) then begin
    OleSklad:=Ole1C.CreateObject(WideString('Справочник.'+Edit3.Text));
    if not VarIsEmpty(OleSklad) then begin
      if OleSklad.ВыбратьЭлементы(0) then begin
        while OleSklad.ПолучитьЭлемент(0) do begin
            ListBox1.Items.Add(Trim(OleSklad.Код)+'  '+Trim(OleSklad.Наименование));
            Application.ProcessMessages;
        end;
      end;
    end;
  end;
  OleSklad:=Unassigned;
end; 
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот