Продолжение:
Функция ЗаписатьТаблица_ИзТЗ (пКолвоСтрок)
лВремяНачалоДействия = _GetPerformanceCounter();
Мета = СоздатьОбъект("MetaDataWork");
рс = СоздатьОбъект("ODBCRecordset");
лТекущийДокумент = мКонтекст.ТекущийДокумент();
лТЗ = СоздатьОбъект("ТаблицаЗначений");
лТЗ.НоваяКолонка("iddoc");
лТЗ.НоваяКолонка("lineno_");
лТЗ.НоваяКолонка("ТЧ_ГУИД");
лТЗ.НоваяКолонка("id");
лТЗ.НоваяКолонка("address");
лТЗ.НоваяКолонка("Адрес");
лТЗ.НоваяКолонка("Область");
лТЗ.НоваяКолонка("Город");
лТЗ.НоваяКолонка("Улица");
лТЗ.НоваяКолонка("ЕстьУлица");
лТЗ.НоваяКолонка("Дом");
лТЗ.НоваяКолонка("ЕстьДом");
лТЗ.НоваяКолонка("МногоквартирныйДом");
лТЗ.НоваяКолонка("ДомНулеваяСтрока");
лТЗ.НоваяКолонка("Квартира");
лТЗ.НоваяКолонка("КвартираНулеваяСтрока");
лТЗ.НоваяКолонка("НеУказанаКвартираВМногоквартирномДоме");
лТЗ.НоваяКолонка("ЕстьКвартира");
лТЗ.НоваяКолонка("Физлицо");
лТЗ.НоваяКолонка("ПризнакФизлица");
мТабТаблица.Выбратьстроки();
Пока мТабТаблица.ПолучитьСтроку() = 1 Цикл
лТЗ.НоваяСтрока();
лТЗ.iddoc = лТекущийДокумент;
лТЗ.lineno_ = лТЗ.НомерСтроки;
лТЗ.ТЧ_ГУИД = лТекущийДокумент.ГУИД;
лТЗ.id = мТабТаблица.id;
лТЗ.address = мТабТаблица.address;
лТЗ.Адрес = мТабТаблица.Адрес;
лТЗ.Область = мТабТаблица.Область;
лТЗ.Город = мТабТаблица.Город;
лТЗ.Улица = мТабТаблица.Улица;
лТЗ.ЕстьУлица = мТабТаблица.ЕстьУлица;
лТЗ.Дом = мТабТаблица.Дом;
лТЗ.ЕстьДом = мТабТаблица.ЕстьДом;
лТЗ.МногоквартирныйДом = мТабТаблица.МногоквартирныйДом;
лТЗ.ДомНулеваяСтрока = мТабТаблица.ДомНулеваяСтрока;
лТЗ.Квартира = мТабТаблица.Квартира;
лТЗ.КвартираНулеваяСтрока = мТабТаблица.КвартираНулеваяСтрока;
лТЗ.НеУказанаКвартираВМногоквартирномДоме = мТабТаблица.НеУказанаКвартираВМногоквартирномДоме;
лТЗ.ЕстьКвартира = мТабТаблица.ЕстьКвартира;
лТЗ.Физлицо = мТабТаблица.Физлицо;
лТЗ.ПризнакФизлица = мТабТаблица.ПризнакФизлица;
КонецЦикла;
лВремяКонецДействия =_GetPerformanceCounter();
лВремяДействия = лВремяКонецДействия - лВремяНачалоДействия;
лВремяДействияВСек = лВремяДействия / 1000;
//Сообщить("Время подготовки таблицы: " + лВремяДействияВСек + "с");
//Сообщить("Удаляем строки");
ЗаписатьТаблица_УдалитьСтроки(рс, лТекущийДокумент);
//-------------------------------------------
// записываем
//
лВремяНачалоДействия = _GetPerformanceCounter();
лТекстЗапроса = "insert into $ДокументСтроки.Таблица.Таблица (
|
|iddoc,
|LINENO_,
|
|$ДокументСтроки.Таблица.Реквизит.ТЧ_ГУИД,
|$ДокументСтроки.Таблица.Реквизит.id,
|$ДокументСтроки.Таблица.Реквизит.address,
|$ДокументСтроки.Таблица.Реквизит.Адрес,
|$ДокументСтроки.Таблица.Реквизит.Область,
|$ДокументСтроки.Таблица.Реквизит.Город,
|$ДокументСтроки.Таблица.Реквизит.Улица,
|$ДокументСтроки.Таблица.Реквизит.ЕстьУлица,
|$ДокументСтроки.Таблица.Реквизит.Дом,
|$ДокументСтроки.Таблица.Реквизит.ЕстьДом,
|$ДокументСтроки.Таблица.Реквизит.МногоквартирныйДом,
|$ДокументСтроки.Таблица.Реквизит.ДомНулеваяСтрока,
|$ДокументСтроки.Таблица.Реквизит.Квартира,
|$ДокументСтроки.Таблица.Реквизит.КвартираНулеваяСтрока,
|$ДокументСтроки.Таблица.Реквизит.НеУказанаКвартираВМногоквартирномДоме,
|$ДокументСтроки.Таблица.Реквизит.ЕстьКвартира,
|$ДокументСтроки.Таблица.Реквизит.Физлицо,
|$ДокументСтроки.Таблица.Реквизит.ПризнакФизлица)
|
|values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
лТекстЗапроса = ПодготовитьТекстЗапроса(лТекстЗапроса);
рс.ДобПараметр(1,14,9,0);
рс.ДобПараметр(1,3,0,0);
рс.ДобПараметр(1,14,50,0);
рс.ДобПараметр(1,14,10,0);
рс.ДобПараметр(1,14,100,0);
рс.ДобПараметр(1,14,512,0);
рс.ДобПараметр(1,14,99,0);
рс.ДобПараметр(1,14,99,0);
рс.ДобПараметр(1,14,99,0);
рс.ДобПараметр(1,14,1,0);
рс.ДобПараметр(1,14,10,0);
рс.ДобПараметр(1,4,1,0);
рс.ДобПараметр(1,4,1,0);
рс.ДобПараметр(1,4,1,0);
рс.ДобПараметр(1,14,10,0);
рс.ДобПараметр(1,4,1,0);
рс.ДобПараметр(1,4,1,0);
рс.ДобПараметр(1,4,1,0);
рс.ДобПараметр(1,14,9,0);
рс.ДобПараметр(1,4,1,0);
лРез = 0;
Попытка
рс.Подготовить(лТекстЗапроса);
рс.ExeSQL_FromTV(лТЗ, пКолвоСтрок);
лРез = 1;
Исключение
КонецПопытки;
Если лРез <> 1 Тогда
Предупреждение("Ошибка при записи документа!" + РазделительСтрок + рс.ПолучитьОписаниеОшибки());
Возврат 0;
КонецЕсли;
лВремяКонецДействия =_GetPerformanceCounter();
лВремяДействия = лВремяКонецДействия - лВремяНачалоДействия;
лВремяДействияВСек = лВремяДействия / 1000;
Сообщить(Шаблон("Время записи таблицы соответсвия документа при помощи ExeSQL_FromTV (кол-во строк = [пКолвоСтрок]): ") + лВремяДействияВСек + "с");
Возврат 1;
КонецФункции
Функция ЗаписатьТаблица()
Сообщить("Записываем Таблица...");
лРез = ЗаписатьТаблица_ПоЗаписям();
лРез = ЗаписатьТаблица_ИзТЗ(0);
лРез = ЗаписатьТаблица_ИзТЗ(10);
лРез = ЗаписатьТаблица_ИзТЗ(100);
лРез = ЗаписатьТаблица_ИзТЗ(200);
лРез = ЗаписатьТаблица_ИзТЗ(500);
лРез = ЗаписатьТаблица_ИзТЗ(1000);
лРез = ЗаписатьТаблица_ИзТЗ(2000);
лРез = ЗаписатьТаблица_ИзТЗ(5000);
Возврат лРез;
КонецФункции