База DBF. Необходимо не залазея в 1с создать новый документ. Не подчинен и подчиненных не имеет. При создании документа 1с'кой filemon показал, что изменяются файлы: 1SJOURN.DBF, DH776.DBF (документ), DT776.DBF (его табличная часть), 1SUIDCTL.DBF (толком не понял, что это), 1SDNLOCK.DBF (толком не понял, что это). Ну и сооветственно их индексные файлы.
Тестирую работу запросов внутри 1с. Делаю так:
1) Получаю ID последнего документа и его номер
стрЗапрос="
|SELECT
| journal.iddoc as MAXID,
| journal.docno as MAXDOCNO
|FROM
| 1sjourn as journal
|WHERE
| journal.iddoc = (SELECT max(temp_journal.iddoc) FROM 1sjourn as temp_journal)
|";
Далее ID из 36 в 10, инкремент, обратно в 36. А Номер документа просто инкрементирую. Добавлюя запись в журнал:
стрЗапрос = "
|INSERT INTO
| 1sjourn SED,ISMARK,ACTCNT,VERSTAMP,DS1019)
|VALUES O,0,:ISMARK,:ACTCNT,:VERSTAMP,0)
|";
Добавляю запись в таблицу документов:
стрЗапрос = "
|INSERT INTO
| DH776 (IDDOC,SP770,SP826)
|VALUES (:IDDOC,:SP770,'')
|";
Добавляю записи в таблицу табличной части документа циклом:
стрЗапрос = "
|INSERT INTO
| DT776 (IDDOC,LINENO,SP771,SP958)
|VALUES (:IDDOC,:LINENO,:SP771,0)
|";
Если выполнить пару раз, вроде все нормально. Если раз 100, то в полном журнале документов пустота, в журнале именно этого документа записи есть, но в этих документах табличная часть пуста.
Удаляю индексные файлы 1SJOURN.CDX, DH776.CDX, DT776.CDX. Захожу монопольно - восстанавливаю их. Записи везде появляются.
И так, вопрос: что я забыл сделать или делаю не так?
Читал про "не забудьте про блокировки и транзакции". Но не нашел каким образом про них не забыть.