Выгрузка и загрузка данных 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С:Управление торговлей 10 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.21.x).

35000 руб.

23.07.2020    56030    257    73    

212

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

27660 руб.

12.06.2017    145630    846    299    

438

SALE! 10%

Перенос данных 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 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

55778 50200 руб.

15.04.2019    74181    198    155    

136

SALE! 10%

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

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

53111 47800 руб.

03.12.2020    38295    108    70    

102

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

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

35000 руб.

15.12.2021    26064    185    56    

142

Перенос данных 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, почту.

16260 руб.

18.02.2016    189081    614    534    

536

Перенос данных 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.244.x), ERP 2.5 (2.5.21.x), КА 2.5 (2.5.21.x).

35000 руб.

24.06.2020    64880    81    28    

93

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

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 10.02.2025, версия 9.9 - 9.15)

16800 руб.

20.11.2015    159557    392    378    

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