Выгрузка и загрузка данных 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;
		
		ПоказатьПользователюИнформациюОСостоянииВыгрузки(ТолькоПроверкаНедопустимыхСимволов, ВсегоОбработаноОбъектов, ОбъектыВыгруженныеСОшибками);
        			
	КонецЦикла;
	
КонецПроцедуры

См. также

Перенос данных 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    71299    178    148    

120

SALE! 10%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 руб.

12.06.2017    139776    774    295    

407

Перенос данных 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    22839    152    46    

111

Перенос данных 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    193901    147    242    

278

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

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

60000 руб.

05.10.2022    10304    11    8    

13

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

Перенос данных из УНФ в УТ 11 | из УНФ в КА 2 | из УНФ в ERP | В продаже с 2019г. | Воспользовались более 39 предприятий! | Предлагаем готовые правила конвертации данных (формат КД 2) для переноса начальных остатков на выбранную дату, а также документов за период и справочной информации | Есть фильтр выгрузки по организациям | Подойдут как для первичного переноса данных из УНФ, так и для регулярного обмена данными | Оперативно обновляем на новые релизы 1С | Постоянно развиваем продукт |

37950 руб.

05.12.2019    43285    43    49    

41

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

Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 2, УНФ 1.6 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.

15300 руб.

18.02.2016    185823    580    509    

519

Перенос данных 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    35888    89    62    

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