Програмное создание договора контрагента в 1С из Delphi
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 2 из 2
  1. #1
    Гость форума

    Регистрация
    31.01.2013
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Програмное создание договора контрагента в 1С из Delphi

    Уважаемые коллеги!

    Приложению 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;

    Ввод договора и его реквизитов в самой среде 1С происходит при заполнении минимально необходимых параметров. При заполнении этих же параметров во внешнем соединении через COM при попытке сохранения происходит вышеупомянутая ошибка.

    Если кто-либо сталкивался с подобными вопросами прошу подсказать все ли параметры указаны для сохранения или где может быть ошибка.

    Платформа 1С 8.2.15.318

    Заранее благодарен.

  2. #2
    Гость форума

    Регистрация
    11.04.2012
    Адрес
    Одесса
    Сообщений
    8
    Сказал(а) спасибо
    2
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию

    Ну в принципе все правильно! 1с (в зависимости от конфигурации, кстати прошу указать) может не нравиться попытка принудительного задания кода документа
    Цитата Сообщение от magistrate Посмотреть сообщение
    ole_TekDoc.Код := SG.Cells[0,I];
    по стандарту она выставляет следующий по порядку и для неё это важно, и опять таки в зависимости от настроек может не нравиться дата которую ей дают либо её формат
    Цитата Сообщение от magistrate Посмотреть сообщение
    ole_TekDoc.Дата := SG.Cells[6,I];

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 14.09.2012, 13:30
  2. Программирование PIC контроллеров
    от dim89 в разделе Прикладное программирование
    Ответов: 3
    Последнее сообщение: 16.05.2012, 13:27
  3. Ответов: 0
    Последнее сообщение: 19.05.2011, 21:40
  4. не могу создать приложение Delphi сравнение 3.
    от Игорешка в разделе Прикладное программирование
    Ответов: 3
    Последнее сообщение: 19.08.2010, 13:16

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •