Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 17:20

Ошибка "Член группы не найден" при редактировании контрагента (Delphi, OLE)

Автор Doomych, 19 дек 2014, 17:09

0 Пользователей и 1 гость просматривают эту тему.

Doomych

1С:Предприятие 8.3 (типовая конфигурация; Бухгалтерия предприятия, редакция 3.0)

Подключаюсь к 1С из Delphi через OLE Automation. Нормально создаю контрагента, создаю договор, делаю его основным (см. строки, помеченные [1] и все не помеченные строки). Все OK. Потом создаю еще один договор (строка, помеченная [2] и все не помеченные строки). Договор создается, в 1С виден. А вот при попытке сделать новый договор основным падаю с ошибкой "Член группы не найден". Если точнее, эта ошибка возникает при попытке редактирования любого реквизита контрагента.
В чем причина?
Нижеследующий код упрощен.

var
  contractor, contract: OleVariant;
begin
  contractor := FOleContragents.СоздатьЭлемент(); [1]
  ... другие действия [1]
  contractor.Записать();[1]
или
  contractor := FOleContragents.НайтиПоРеквизиту('ИНН', '7733333333'); [2]

  contract := FOleContracts.СоздатьЭлемент();
  contract.Номер := 'ДГ-0001';
  contract.Наименование := 'ДГ-0001 от 01.01.2014';
  contract.ВидДоговора := Ole1C.Перечисления.ВидыДоговоровКонтрагентов.СПокупателем;
  contract.ВалютаВзаиморасчетов := Ole1C.Справочники.Валюты.НайтиПоНаименованию('руб.');
  contract.Дата := '20140101';
  contract.Владелец := contractor.Ссылка;

  contract.Записать(); // все в порядке

  // Делаем договор основным договором контрагента
  contractor.ОсновнойДоговорКонтрагента := contract.Ссылка; // Ошибка "Член группы не найден"
  contractor.Записать();
end;

sertak

Попробуйте так:
contractorObject = contractor.ПолучитьОбъект();
contractorObject.ОсновнойДоговорКонтрагента := contract.Ссылка;
contractorObject.Записать();

Doomych


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск