Уважаемые коллеги!
Приложению Delphi требуется экспортировать данные контрагентов и их договоров в 1С.
Экспорт и импорт контрагентов происходит без ошибок, а при экспорте договоров возникает ошибка - Не удалось записать: "Договоры контрагентов"!
Фрагмент кода примерно следующий:
Код:
procedure TForm1.BtnExportDocClick(Sender: TObject);
var
ole_Persons, ole_1C, ole_TekDoc, ole_Doc, ole_Creditor,
ole_Temp, ole_CurrentPerson: OleVariant;
I, R: Integer;
S: String;
begin
if VarIsEmpty(ole_1C) then
begin
ole_1C := CreateOleObject('V82.COMConnector');
ole_1C := ole_1C.Connect('File = d:ХХХ');
end;
if not VarIsEmpty(ole_1C) then
begin
ole_Doc := ole_1C.Справочники.ДоговорыКонтрагентов;
if not VarIsEmpty(ole_Doc) then
begin
ole_Temp := UnAssigned;
for I := 0 to Form1.SG.RowCount - 1 do // SG - некий StringGrid с данными...
begin
S := SG.Cells[0,I];
ole_Temp := ole_Doc.НайтиПоКоду(S);
if ole_1C.XMLString(ole_Temp) = ole_1C.XMLString(ole_Doc.ПустаяСсылка()) then
begin
ole_TekDoc := ole_Doc.СоздатьЭлемент();
ole_TekDoc.Код := SG.Cells[0,I];
ole_TekDoc.Наименование := SG.Cells[1,I]; // наименование Договора
ole_TekDoc.НаименованиеДляПечати := SG.Cells[1,I];
ole_Persons := ole_1C.Справочники.Контрагенты;
ole_Temp := ole_Persons.НайтиПоРеквизиту('КодПоЕДРПОУ', '12345678');
ole_TekDoc.Владелец := ole_Temp // контрагент
ole_Persons := ole_1C.Справочники.Организации;
ole_Temp := ole_Persons.НайтиПоКоду('000000001');
ole_TekDoc.Организация := ole_Temp;
ole_TekDoc.Дата := SG.Cells[6,I];
ole_TekDoc.Номер := SG.Cells[7,I];
ole_TekDoc.УстановленСрокОплаты := True;
ole_TekDoc.СрокОплаты := SG.Cells[8,I];
ole_Temp := ole_1C.Справочники.Валюты.НайтиПоКоду('980');
ole_TekDoc.ВалютаВзаиморасчетов := ole_Temp; // валюта
ole_Temp := ole_1C.Перечисления.ВедениеВзаиморасчетовПоДоговорам.ПоДоговоруВЦелом;
ole_TekDoc.ВедениеВзаиморасчетов := ole_Temp;
ole_Temp := ole_1C.Перечисления.ВидыДоговоровКонтрагентов.Прочее;
ole_TekDoc.ВидДоговора := ole_Temp;
ole_TekDoc.Записать(); // Здесь возникает ошибка - Не удалось записать: "Договоры контрагентов"!
end;
end;
end; end;
MAD: Учимся правильно оформлять код!
Ввод договора и его реквизитов в самой среде 1С происходит при заполнении минимально необходимых параметров. При заполнении этих параметров во внешнем соединении через COM при попытке сохранения происходит вышеупомянутая ошибка.
Если кто-либо сталкивался с подобными вопросами прошу подсказать все ли параметры указаны для сохранения или где может быть ошибка.
Платформа 1С 8.2.15.318
Заранее благодарен.