Выгрузка и загрузка данных XML. Ускоряем выгрузку регистров бухгалтерии

04.07.16

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

Ускоренная выгрузка проводок БУ, НУ

Введение

Обращалили вы внимание на то, что записи регистов бухгалтерии выгружаются нереально долго с помощью обработки Выгрузка-загрузка данных XML?

Все дело в том, что при получении структуры регистра (перечня колонок) используется виртуальная таблица ДвиженияССубконто без параметров.

 

Решение

В модуля обработки в процедуре ЗаписьЧерезНаборЗаписей() необходимо установить параметры периода при генерации текста запроса и отключить проверку на пустой результат запроса.

В итоге текст процедуры будет выглядеть следующим образом:

// Процедура записывает данные, доступ к которым осуществляется через набор записей
//
// Параметры
//   ЗаписьXML - объект, через которых происходит запись объектов ИБ
//   СтрокаДереваМетаданных - строка дерева метаданных, соответствующая регистру
//
Процедура ЗаписьЧерезНаборЗаписей(ЗаписьXML, МенеджерНабораЗаписей, ДляЗапроса, ИмяОбъекта, 
	СтрокаДереваМетаданных = Неопределено, ОбъектыВыгруженныеСОшибками, ТолькоПроверкаНедопустимыхСимволов, РегистрБухгалтерии = Ложь)
	
	// получить состав колонок записи регистра и проверить наличие хотя бы одной записи
	Если ДляЗапроса = "РегистрБухгалтерии." Тогда
		ИмяТаблицыДляЗапроса = ДляЗапроса + ИмяОбъекта + ".ДвиженияССубконто(ДАТАВРЕМЯ(2012, 12, 21), ДАТАВРЕМЯ(2012, 12, 21), , , )";	// Моя вставка, Крынецкий. Установим параметры ВТ - так быстрее
	Иначе
		ИмяТаблицыДляЗапроса = ДляЗапроса + ИмяОбъекта;	
	КонецЕсли;
	
	Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1 * ИЗ " + ИмяТаблицыДляЗапроса + " КАК ТаблицаОбъекта_" + ИмяОбъекта);
	РезультатЗапросаПоСоставу = Запрос.Выполнить();
	// Моя вставка, Крынецкий. Это отключим - результат теперь всегда для РБ будет пустой
	//Если РезультатЗапросаПоСоставу.Пустой() Тогда
	//	Возврат;
	//КонецЕсли;
	// Конец моей вставки
	
	ТаблицаДвижений = РезультатЗапросаПоСоставу.Выгрузить();
	МассивКолонок = ПолучитьМассивКолонокДвижения(ТаблицаДвижений, РегистрБухгалтерии);
	
	// выгрузка регистров осуществляется через его набор записей
	НаборЗаписей = МенеджерНабораЗаписей.СоздатьНаборЗаписей();
	
	Отбор = НаборЗаписей.Отбор;
	СтрокаПолейОтбора = "";
	Для Каждого ЭлементОтбора Из Отбор Цикл 
		Если Не ПустаяСтрока(СтрокаПолейОтбора) Тогда 
			СтрокаПолейОтбора = СтрокаПолейОтбора + ",";
		КонецЕсли;
		СтрокаПолейОтбора = СтрокаПолейОтбора + ЭлементОтбора.Имя;
	КонецЦикла;
	
	ПостроительОтчета = ПодготовитьПостроительДляВыгрузки(СтрокаДереваМетаданных, СтрокаПолейОтбора); 
	ПостроительОтчета.Выполнить();
	РезультатЗапросаПоЗначениямОтбора = ПостроительОтчета.Результат;	
	ВыборкаИзРезультата = РезультатЗапросаПоЗначениямОтбора.Выбрать();
	
	ОкноИсполненияОбщееКоличество = ВыборкаИзРезультата.Количество();
	ОкноИсполненияОбработано = 0;
	ОкноИсполнения.ОбновитьВерхнююГраницу();

	КоличествоПолейОтбора = НаборЗаписей.Отбор.Количество();
	
	// читаем наборы записей с различным составом отбора и записываем их
	Пока ВыборкаИзРезультата.Следующий() Цикл
		
		// Отбор устанавливаем для регистров, у которых есть хотя бы один отбор (измерение)
		Если КоличествоПолейОтбора <> 0 Тогда
			
			Для Каждого Колонка Из РезультатЗапросаПоЗначениямОтбора.Колонки Цикл 
				Отбор[Колонка.Имя].Значение = ВыборкаИзРезультата[Колонка.Имя];
				Отбор[Колонка.Имя].ВидСравнения = ВидСравнения.Равно;
				Отбор[Колонка.Имя].Использование = Истина;
			КонецЦикла;
			
		КонецЕсли;
		
		НаборЗаписей.Прочитать();
		
		Если мНаличиеВыгрузкиПодчиненныхОбъектов Тогда
		
			// проверяем все записанные в наборе значения на необходимость записи "по ссылке"
			ВыгрузитьПодчиненныеЗначенияНабора(ЗаписьXML, НаборЗаписей, МассивКолонок, ОбъектыВыгруженныеСОшибками, ТолькоПроверкаНедопустимыхСимволов);
									
		КонецЕсли;
		
		ВсегоОбработаноОбъектов = ВсегоОбработанныхЗаписей();
		Попытка
					
			ВыполнитьВспомогательныеДействияДляЗаписиXML(ВсегоОбработаноОбъектов, ЗаписьXML, ТолькоПроверкаНедопустимыхСимволов);
			
			ЗаписатьXML(ЗаписьXML, НаборЗаписей);			
			
		Исключение
			
			СтрокаОписанияОшибки = ОписаниеОшибки();
			//не смогли записать в XML
			// возможно проблема с недопустимыми символами в XML
			Если ТолькоПроверкаНедопустимыхСимволов Тогда
				
				НовыйНабор = МенеджерНабораЗаписей.СоздатьНаборЗаписей();
				
				Для Каждого СтрокаОтбора Из НаборЗаписей.Отбор Цикл
					
					СтрокаОтбораФормы = НовыйНабор.Отбор.Найти(СтрокаОтбора.Имя);
					
					Если СтрокаОтбораФормы = Неопределено Тогда
						Продолжить;
					КонецЕсли;
					
					СтрокаОтбораФормы.Использование = СтрокаОтбора.Использование;
					СтрокаОтбораФормы.ВидСравнения = СтрокаОтбора.ВидСравнения;
					СтрокаОтбораФормы.Значение = СтрокаОтбора.Значение;
					
				КонецЦикла;
				
				ОбъектыВыгруженныеСОшибками.Вставить(НовыйНабор, СтрокаОписанияОшибки);
												
			Иначе
				
				ИтоговаяСтрокаСообщения = "Ошибка при выгрузке набора записей регистра: " + ДляЗапроса + ИмяОбъекта + "
				|" + СтрокаОписанияОшибки;
				
				Сообщить(ИтоговаяСтрокаСообщения);
				
				ВызватьИсключение ИтоговаяСтрокаСообщения;
				
			КонецЕсли;
			
		КонецПопытки;	
		
		ОбработанныхНаборовЗаписей = ОбработанныхНаборовЗаписей + 1;
		ОкноИсполненияОбработано = ОкноИсполненияОбработано + 1;
		
		ПоказатьПользователюИнформациюОСостоянииВыгрузки(ТолькоПроверкаНедопустимыхСимволов, ВсегоОбработаноОбъектов, ОбъектыВыгруженныеСОшибками);
        			
	КонецЦикла;
	
КонецПроцедуры

См. также

SALE! 15%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    139405    770    295    

407

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

45650 руб.

15.04.2019    71094    177    148    

119

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.230.x) и БП 3.0 (3.0.156.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    22648    150    46    

109

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

45650 руб.

24.04.2015    193642    147    242    

278

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

43450 руб.

03.12.2020    35762    90    62    

85

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Программист Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    10213    11    8    

13

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:ERP Управление предприятием 2.5 и 1С:Комплексную автоматизацию 2.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.231.x), ERP 2.5 (2.5.18.x), КА 2.5 (2.5.18.x) .

28000 руб.

24.06.2020    62934    53    27    

83

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

39500 руб.

25.02.2015    170248    294    255    

375
Оставьте свое сообщение