Как мы тащили выгрузки в SQL из болота

01.12.22

Интеграция - Внешние источники данных

Ускорение, оптимизация и автоматизация выгрузок в SQL.

Попал на проект DWH. 

Входные данные: 

  • Разработчик SQL DWH ETL (Мастер на все руки)
  • Разработчик 1С (Я)
  • Аналитик (Смысловой нагрузки не несёт)
  • Много баз
  • Объемы в несколько тысяч строк в день

Цель: Обеспечить стабильную выгрузку данных из 1С в SQL. Желательно максимально быстро и часто.

Как работало:

  • Так как баз много, происходило подключение ко всем базам по очереди через WebСервис для подключения SQL к 1с который передает строковый параметр. Так как это DWH и идея была в том, что расписание было настроено на стороне Менеджмент студио через ssis пакеты (Это делал аналитик).
  • WebСервис вызывал внешнюю обработку, из которой в зависимости от параметра вызывал процедуры выгрузки. (Внешняя обработка нужна для оперативного изменения выгрузок)
  • Внешняя обработка собирала данные и делала стандартные "Инсерты" и "Апдейты", которые давал разработчик SQL.

Проблемы:

  • Блокировки в SQL. 
  • Время обновления (от 0.5 до 2.5 часов)
  • Постоянные подключения к базе SQL 

Решение:

Если вкратце, то 1с очень не очень работает с SQl напрямую.

Что сделали, чтобы взлетело:

  • SISS пакеты стали подключаться параллельно ко всем базам.
  • 1с больше не стучится в SQL. Теперь 1с собирает CSV файл с результатом запроса и складывает файл в конкретную папку. (Пример кода будет в конце).
  • Ожидаемый вопрос. Как же SQL забирает данные, если ей никто об этом не говорит? На самом деле говорит. Web сервис в конце возвращает параметр обратно Менеджемент студии.
  • Она в свою очередь понимает, что выгрузка окончена, и начинает вызывать хранимые процедуры SQL, которые в свою очередь из конкретной папки забирается конкретные файлы для конкретной таблицы. 

Важный момент. Можно задуматься о том, а как же потери данных? А всё просто. 1с при выгрузке не создает новый файл с данными, а дописывает в старый, если он есть. Удалением занимается SQL, если у него успешно удалось загрузить данные.

Итог:

  • Время уменьшилось до максимального 0.5 часа при экстраординарных объёмах данных.
  • Блокировки пропали.
  • Частота обновлений увеличилась в 3 раза.
    Запрос = Новый Запрос;
	Запрос.Текст = "";
	//Запрос
	
	РезультатЗапроса = Запрос.Выполнить();
	
    //Ими базы или любой другой идентификатор для разделение баз.
	ИмяБазы = XMLСтрока(Константы.Станция.Получить());
	
	Выборка= РезультатЗапроса.Выбрать();
	
	ФайлВыгрузки = ""; // Путь к конкертной папке + Имя базы чтобы создавался новый файл для каждой базы			
	ЗаписьТекста = Новый ЗаписьТекста(ФайлВыгрузки, КодировкаТекста.UTF16,, Истина); //Последняя истина обеспечивает дописывание
	Пока Выборка.Следующий() Цикл
		
		ЗаписьТекста.Записать(XMLСтрока(Выборка.Ссылка); // 
		ЗаписьТекста.Записать(";");
		ЗаписьТекста.Записать(XMLСтрока(СтрЗаменить(СокрЛП(Выборка.Артикул),";",""))); 
		ЗаписьТекста.Записать(";");
		ЗаписьТекста.Записать(XMLСтрока(СтрЗаменить(СокрЛП(Выборка.КоличествоПовторений),";",""))); 
		ЗаписьТекста.Записать(";");
		ЗаписьТекста.Записать(Строка(Выборка.СкладКомпании)); 
		ЗаписьТекста.Записать(";");
		ЗаписьТекста.Записать(XMLСтрока(Выборка.КоличествоОстаток)); 
		ЗаписьТекста.Записать(";");
		ЗаписьТекста.Записать(XMLСтрока(Выборка.Себестоимость)); 
		ЗаписьТекста.Записать(";");
		ЗаписьТекста.Записать(Строка(Выборка.ВерхнийСклад)); 
		ЗаписьТекста.Записать(";");
		ЗаписьТекста.Записать(XMLСтрока(СТО)); 
		
		ЗаписьТекста.Записать(Символы.ПС);
		
	КонецЦикла;
	ЗаписьТекста.Закрыть();  


Первая статья. Закидывайте помидорами. Задавайте вопросы в комментариях и расскажите, что где-то работает лучше.

SQL Обмен

См. также

Перенос данных из Парус 8 в ЗГУ 3

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

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

84000 руб.

19.08.2020    22783    19    1    

22

Экстрактор данных 1С в BI - выгрузка данных из 1С в BI-аналитику

Внешние источники данных Платформа 1С v8.3 Управляемые формы Анализ и прогнозирование Конфигурации 1cv8 Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

15.11.2022    14431    12    SQV0    47    

30

Перенос данных из Парус 10 в ЗГУ ред.3

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

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

60000 руб.

05.10.2022    9394    9    8    

11

Перенос начальных остатков из Парус 7.71 в БГУ

Внешние источники данных Взаиморасчеты Учет ОС и НМА Логистика, склад и ТМЦ Бюджетный учет Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 2.0 1С:Бухгалтерия государственного учреждения Государственные, бюджетные структуры Россия Бюджетный учет Абонемент ($m)

Перенос словарей и начальных остатков из ПП Парус-Бухгалтерия Бюджет 7.71 в 1Сv8 БГУ2. Заполнение словарей и документов по вводу начальных остатков. Не требуется установка ПП Парус7. Возможна дозагрузка. Позволит автоматически ввести основные данные в программу для начала работы. 

10 стартмани

08.12.2011    81738    5    Skaredov    123    

147

Загрузка в БГУ из УРМ "Криста"

Внешние источники данных Банковские операции Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия государственного учреждения Россия Бухгалтерский учет Платные (руб)

Обработки для загрузки данных из УРМ "Криста" в бухгалтерию государственного учреждения редакция 2.0. Есть Демо доступ на вкладке Бесплатные файлы на 1 месяц со дня получения демонстрационного ключа регистрации. Поддерживает ПО "Web-исполнение" от НПО "Криста".

4800 руб.

19.06.2013    38809    136    102    

30

Загрузка спецификаций в УНФ из системы Базис-мебельщик

Производство готовой продукции (работ, услуг) Внешние источники данных Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Лесное и деревообрабатывающее хозяйство Россия Управленческий учет Платные (руб)

Обработка предназначена для загрузки файлов, выгруженных из системы Базис-мебельщик, в справочник "Спецификации" для последующих процессов учета и диспетчирования полуфабрикатов и изделий.

7200 руб.

24.06.2021    19357    51    52    

29

Импорт документов из розничной программы учета (ТрейдФарм, Манускрипт Солюшн, Е-Фарма и др.) в Бухгалтерию 3.0 с формированием книги учета доходов и расходов при УСН и бухгалтерского и налогового учета при ОСНО

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

Представлена обработка для импорта документов из розничной программы учета товара в торговых точках и аптеках, необходимых для ведения бухгалтерского и налогового учёта, в Бухгалтерию 3.0. При загрузке данных в бухгалтерию переносятся документы поступлений, реализации, возвратов и перемещений в торговых точках и формируются все бухгалтерские и налоговые отчеты с учетом этих документов для любой системы налогообложения. Обработка позволяет загрузить данные из ПО ТрейдФарм. Имеются варианты для других розничных программ (ПО Manuscript Solution, Е-Фарма и S-Market).

18000 руб.

09.04.2020    18093    11    8    

8
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. TMV 14 01.12.22 08:11 Сейчас в теме
Статья
Смысловой нагрузки не несёт
2. triviumfan 94 05.12.22 14:38 Сейчас в теме
Раз он
Разработчик SQL DWH ETL Мастер на все руки
, то дай ему описание структуры хранения БД - нехай сам получает, что ему нужно! :)
Оставьте свое сообщение