Создаю новый документ с реквизитами новый1 - строка, новый2 - число, в табличной части: новый3 - строка, новый4 - число. Все остальное по-умолчанию.
Далее тест:
Процедура Тест()
Перем LASTID, LASTDN, DOCN, ЧЧ,ММ,СС;
Перем vIDJOURNAL,vIDDOC,vIDDOCDEF,vTIME,vDNPREFIX,vDOCNO;
глОлеДБ = СоздатьОбъект("OLEDBData");
Рез=глОлеДБ.Соединение("
|Provider=VFPOLEDB.1;
// |Deleted=Yes;
|Null = Yes;
|Exclusive = No;
|SourceType = DBF;
|Data Source=" + КаталогИБ() + ";
|Mode=ReadWrite;
|Extended Properties="""";
|User ID="""";
|Password="""";
|Mask Password=False;
|Collating Sequence=MACHINE;
|DSN=""""");
DOCN=Строка(1553); //смотрю в DD для нового документа DH1553
vDNPREFIX = Прав(" " + DOCN + " ",18);
vIDDOCDEF = Прав(_IdToStr(DOCN),4);
Для ДокНомер=1 по 200 Цикл
стрЗапрос="
|SELECT
| jouruid.MaxID as LASTID
|FROM
| 1SUIDCTL as jouruid
|WHERE
| jouruid.TypeID = ' 0'
|";
Запрос = глОлеДБ.СоздатьКоманду();
таблID = Запрос.ВыполнитьИнструкцию(стрЗапрос);
LASTID = таблID.ПолучитьЗначение(1,"LASTID");
Запрос.Закрыть();
стрЗапрос="
|SELECT
| max(mdocno) as LASTDOCNO
|FROM
|(
| SELECT max(docno) as mdocno FROM 1sjourn as journal WHERE journal.dnprefix = :DNPREF
| UNION
| SELECT max(docno) as mdocno FROM 1sdnlock as curdoc WHERE curdoc.dnprefix = :DNPREF
|) as uniontables
|";
Запрос = глОлеДБ.СоздатьКоманду();
Запрос.УстановитьТекстовыйПараметр("DNPREF",vDNPREFIX);
таблID = Запрос.ВыполнитьИнструкцию(стрЗапрос);
LASTDN = таблID.ПолучитьЗначение(1,"LASTDOCNO");
Запрос.Закрыть();
ТекущееВремя(ЧЧ,ММ,СС);
vIDJOURNAL = " 0";
vIDDOC = _IdToStr(_StrToId(Лев(LASTID,6))+1) + " ";
vTIME = _IdToStr((ЧЧ*3600+ММ*60+СС)*10000);
vDOCNO = Прав(" " + Строка(Число(LASTDN)+1) + " ",10);
стрЗапрос="
|UPDATE
| 1SUIDCTL
|SET
| MaxID = :IDDOC
|WHERE
| TypeID = ' 0'
|";
Запрос = глОлеДБ.СоздатьКоманду();
Запрос.УстановитьТекстовыйПараметр("IDDOC",vIDDOC);
Запрос.Выполнить(стрЗапрос);
Запрос.Закрыть();
стрЗапрос = "
|INSERT INTO
| 1sjourn ( IDJOURNAL, IDDOC, IDDOCDEF,APPCODE, DATE, TIME, DNPREFIX, DOCNO,CLOSED,ISMARK, ACTCNT, VERSTAMP,DS1019)
|VALUES (:IDJOURNAL,:IDDOC,:IDDOCDEF, 0,DATE(), :TIME,:DNPREFIX,:DOCNO, 0, ' ',' 0', ' 0', 0)
|";
Запрос = глОлеДБ.СоздатьКоманду();
Запрос.УстановитьТекстовыйПараметр("IDJOURNAL",vIDJOURNAL);
Запрос.УстановитьТекстовыйПараметр("IDDOC",vIDDOC);
Запрос.УстановитьТекстовыйПараметр("IDDOCDEF",vIDDOCDEF);
Запрос.УстановитьТекстовыйПараметр("TIME",vTIME);
Запрос.УстановитьТекстовыйПараметр("DNPREFIX",vDNPREFIX);
Запрос.УстановитьТекстовыйПараметр("DOCNO",vDOCNO);
Запрос.Выполнить(стрЗапрос);
Запрос.Закрыть();
стрЗапрос = "
|INSERT INTO
| DH1553 (IDDOC,SP1554,SP1555)
|VALUES (:IDDOC,'Строка'," + Строка(ДокНомер) + ")
|";
Запрос = глОлеДБ.СоздатьКоманду();
Запрос.УстановитьТекстовыйПараметр("IDDOC",vIDDOC);
Запрос.Выполнить(стрЗапрос);
Запрос.Закрыть();
Для н=1 По 5 Цикл
стрЗапрос = "
|INSERT INTO
| DT1553 (IDDOC,LINENO,SP1556,SP1557)
|VALUES (:IDDOC," + Строка(н) + ",'" + ("Строка" + Строка(н)) + "'," + Строка(ДокНомер+н) + ")
|";
Запрос = глОлеДБ.СоздатьКоманду();
Запрос.УстановитьТекстовыйПараметр("IDDOC",vIDDOC);
Запрос.Выполнить(стрЗапрос);
Запрос.Закрыть();
КонецЦикла;
КонецЦикла;
Сообщить("Проверить...");
КонецПроцедуры