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.Справочники.Организации;
Ввод договора и его реквизитов в самой среде 1С происходит при заполнении минимально необходимых параметров. При заполнении этих параметров во внешнем соединении при попытке сохранения происходит вышеупомянутая ошибка.
Прошу подсказать все ли параметры указаны для сохранения или где может быть ошибка.
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Вставьте в 1С в запись договора вывод описания ошибки в журнал регистрации. Найдете проблему за минуту.
Как вариант лажает тут: ole_Temp := ole_Persons.НайтиПоРеквизиту('КодПоЕДРПОУ', '12345678'); ole_TekDoc.Владелец := ole_Temp // контрагент т.к. ничего не находит (это совсем не значит что такого кода в базе нет, возможно у него там пробел, или еще чего)
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0
А Контрагент к этому моменту уже записан? Или еще висит в незавершенной транзакции?
Цитата(magistrate @ 23.02.13, 16:24)
Ввод договора и его реквизитов в самой среде 1С происходит при заполнении минимально необходимых параметров.
При интерактивном вводе учитываются настройки программы, учетная политика, значения по умолчанию и пр. Уверены, что Договор вида "Прочее" - именно то, что нужно?
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0
Контрагент или уже записан или ранее внесен. Сначала экспорт контрагентов потом договоров.
Договор вида "Прочее" используется для отладки. Какой из имеющихся в 1С видов договоров будет выбран - определит пользователь в соответствующем меню. В конфигурации (Бухгалтерия для Украины, редакция 1.2) их 6 видов. Кстати интересно с точки зрения бухгалтерии к какому виду могут быть отнесены договора займа?
Группа: Пользователи
Сообщений: 3
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(logist @ 23.02.13, 17:32)
Вставьте в 1С в запись договора вывод описания ошибки в журнал регистрации. Найдете проблему за минуту.
После вставки в отладчике под 1С ошибка выявилась. Для заполнения также обязателен реквизит ВедениеВзаиморасчетовНУ. К сожалению признаки not null в конфигураторе у реквизитов не стоят. logist-у спасибо!
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!