Выгрузка БОЛЬШИХ объемов из 7.7 конвертацией данных

Публикация № 144703

Разработка - Обмен данными 1С - Перенос данных из 1С7.7 в 1C7.7

Стандартная выгрузка из 7.7 V77Exp не умеет выгружать файлы более 2 Гб. У меня со скрипом 1.5 еле получалось. Данная доработка без проблем формирует файлы по 3Гб и более. Теперь и для ЗиК!

При внедрении систем на 8 довольно часто ставится задача по переносу данных из 7.7. Иногда этих данных бывает сильно много.

Стандартная систуация - написали правила, выгрузить не можем - падает. Нехватка памяти.

Для универсальной выгрузке у меня практический предел файла был 1.5 - 1.8Гб. Причем к концу перед вылетом тормозило неимоверно. Причины: Ограничения объема памяти для приложения в 2 Гб. В имеющейся модели файл со всеми узлами формируется в памяти, поэтому при большом объеме еще и тормозит.

Стандартные варианты решения:

1. Разбивать выгрузку на части

2. Использовать прямое подключение к БД

Разбитие на части подходит не всегда. Если есть несколько НЕпересекающихся или слабо пересекающихся областей данных оно оптимально - можно разбить по метаданным сначало то, потом это. Если же разделить по метаданным не выходит - имеем непропорциональное увеличение времени выгрузки и загрузки. Например большой справочник номенклатуры. При выгрузке отдельно приходных и расходных документов он выгрузится по ссылкам дважды. При делении на периоды аналогично. А при выгрузке он может занимть приличный объем.

Способ 2 является частным случаем 1 сведенным до уровня одного объекта. Выгрузил документ - сразу загрузил, следующий. Способ того требует доработки универсальных обработок обмена. Сам не пробовал, но у кого-то получалось. Еще минус - одновременно заняты база источника и приемника.

Перепробовав несколько вариантов удалось решить проблему формирования больших выгрузок. Доработка встроена в КД (обработку выгрузки правил), поэтому совершенно прозрачна для пользователя. Формировались файлы свыше 3 Гб, причем память процесса не превышала 500М. Файлы получаются стандартные и грузятся обычной универсальной загрузкой.

Ограничение: размер непрерывного блока текста - 32К. (см обновление)

При использовании надо внести изменения в обработку выгрузки V77Exp, чтобы заменить ее код, на код формируемый КД. А именно стереть все и вставить 1 строку:

#ЗагрузитьИзфайла МодульВыгрузки.txt

Где МодульВыгрузки.txt - то, как вы назвали файл с формируемым кодом.

Обновление 31.10.2012:

1. При выгрузке правил в файл обмена не выгружаются тексты алгоритмов, не используемых при загрузке. Например в правилах з ЗиК-ЗУП есть довольно длинные алгоритмы более 32К, которые не могут быть записаны. Анализируем признак и не пишем в файл. На загрузку это влияния не оказывает.

2. Переход на версию 2.1.6.4

В файле архив:

1. Измененая полная CF Конвертация данных, редакция 2.1 (2.1.6.4)

2. Измененная обработка ВыгрузкаКонвертации.epf

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом в течение 14-ти дней со дня поступления денег на наш счет.

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

Для возврата оплаты просто свяжитесь с нами.

Скачать файлы

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. milanse 36 13.08.12 14:58 Сейчас в теме
А в чем суть изменения ? используется другой парсер или что-то еще ?
2. Техподдержка 13.08.12 17:32
(1) Суть: используя типовые правила формирования узлов объектов заставить записывать их в файл последовательно и сразу же.
Использую другой объект, не Msxml2.DOMDocument
3. milanse 36 13.08.12 17:43 Сейчас в теме
(2) мы используем разработку Ромикса для формирования xml, тоже неплохо получается, но у нас своя подсистема обмена (77 в 77, не на конвертации).
4. Техподдержка 13.08.12 18:34
(3) каждому свое. У меня универсальный вариант. У вас эксклюзив. может исторически так сложилось или КД не подошла.
Ссылку на ромикса дадите? Нашел только быстрый эксель с ёкселем.
5. milanse 36 13.08.12 18:46 Сейчас в теме
если не забанят
http://kb.mista.ru/article.php?id=73

она по образу и подобию ЗаписьХМЛ вроде сделана.
6. iov 409 01.11.12 02:53 Сейчас в теме
(5) Это у мисты пунктик, ссыли на инфостарт банить...
7. Franchiser 47 06.12.12 12:09 Сейчас в теме
Хотелось бы описание что именно доработано. Сколько строк кода изменено. Что-то дорого 10 000 за то что используется не Msxml2.DOMDocument
8. Техподдержка 06.12.12 15:54
(7) Описание в самой статье - последовательная запись сразу в файл.
Сумма именно за то, что:
1. Разгадал что именно надо использовать вместо Msxml2.DOMDocument. Пробовал варианта 4 разных объектов.
2. Исправил так, что:
2.1 Изменения совместимы с типовой выгрузкой
2.2 Минимальны сами по себе (их не много. Сравнение выдает 215 строк различий)

Как в анекдоте: важно не сильно ударить, а знать куда ударить :-)
9. Ёпрст 1044 06.12.12 15:59 Сейчас в теме
Объектов для создания xml не так и много.."что именно" - скорее всего просто текст через fso лепит и теги ручонками создает.
10. Franchiser 47 06.12.12 16:57 Сейчас в теме
А как же то что в правилах КД можно обращаться к узлу в обработчиках. Получаются типовые правила не будут работать, если теперь такого понятия "Узел" не будет?
11. Ёпрст 1044 06.12.12 17:09 Сейчас в теме
(10) дык можно же всё съэмулировать
12. Техподдержка 06.12.12 19:09
(10), (11) - по идее типовые работать должны, т.к. изменения идут после формирования узла.
На примере в сформированный узел номенклатуры добавляем атрибут типовым способом из справки и он пишется в файл сам. Без эмуляции
Прикрепленные файлы:
13. Franchiser 47 06.12.12 20:34 Сейчас в теме
А что будет с таким кодом:
Прикрепленные файлы:
16. Техподдержка 07.12.12 12:14
(13) - Почему то не завелось.
У меня УзелСсылки и Приемник на входе в процедуру ПКО_ПриВыгрузке_Номенклатура типа OLE.IXMLDOMElement и ТипЗначения = 100

Оба инициализированы и доступны.
В можно создавать узлы и добавлять их в приемник типовыми способами.

Причем и в типовой конвертации аналогично. Возможно у вас ПередВыгрузкой что-то происходит? Я пробую на справочнике номенклатура, вы на субконто - имеет значение? Если это типовые правила, то какие - могу протестировать.
20. Техподдержка 07.12.12 19:58
(13) - такая конструкция работать будет - проверил. Выгрузил операции из бух 77 - в БП3 приехали с субконто.

(17) - Типовые правила для БП требуется немного допилить: не работают операции с корневым узлом rootNode. Ну низя так. А типовые правила после выгрузки добавляют туда атрибуты о самой выгрузке и ее параметрах. Установка параметров в конце выгрузки никак не совместима с идеей последовательной записи - заремарил.

(19) - Да IXMLDOMElement объектная модель. Она используется в типовой конвертации. И у меня. Именно по этому доработка получилась совместимой. Но для записи в файл она не используется и пишется последовательно по другому :-). Поэтому rootNode и недоступен.
21. Franchiser 47 07.12.12 20:01 Сейчас в теме
(20) если объект оле, возможно запись через провайдера msdaosp
14. andrewks 1296 06.12.12 20:42 Сейчас в теме
цена зело высокая, учитывая, что такого объёма выгрузки делаются весьма редко.
кстати, после небольшой правки 1cv7.exe можно спокойно выгрузить xml 3 гига и стандартной обработкой
15. Franchiser 47 06.12.12 20:54 Сейчас в теме
(14) да у меня есть патч 4гб только в терминале он бывает приводит к тому что 1с - ка закрывается вообще без ошибок даже о нехватки памяти
17. Franchiser 47 07.12.12 13:14 Сейчас в теме
Это типовые правила переноса Бухгалтерия 7.7 в Бухгалтерия 8.2 Корп для ПКО "ВидСубконто".
18. Franchiser 47 07.12.12 13:30 Сейчас в теме
Тип как таковой значения не имеет главное чтобы работала процедура подобной записи в обработчике Видсубконто.

Это правило используется как правило для вида субконто (ИмяПКОВидСубконто).

Информация из справки:
ИмяПКОВидСубконто - имя правила конвертации, по которому производится преобразование вида субконто (только для свойств СубконтоДт и СубконтоКт записей регистра бухгалтерии). Может быть выбрано в зависимости от каких-либо условий.
19. Franchiser 47 07.12.12 15:06 Сейчас в теме
Как я понял используется объект "Microsoft.XMLDOM", что также является объектной моделью, в чем тогда заключается последовательная запись?
22. Franchiser 47 07.12.12 20:21 Сейчас в теме
Кстати 32000 приблизительное ограничение на запись поля по оле
23. prodines 108 07.11.13 10:46 Сейчас в теме
Бесплатный вариант - с разбивкой по частям: http://infostart.ru/public/195278/
24. anton9843 11.08.15 17:02 Сейчас в теме
Есть проблема одна
Например пишем код обработчика загрузки и в коде чтото типа: Объект.Реквизит <> "чтото важное"
При выгрузке это правило попадает в итоговый XML как есть
и файл получается невалидный из за скобочек

надо по хорошему заменять символы недопустимые
< = & lt ;
> = & gt ;
& = & amp ;
' = & apos ;
" = & quot ;

Раньше объект xml сам преобразовывал а теперь он не используется

Вообщем дописывайте функцию ЗаписатьЭлементВТекст
В макете ПроцедурыИФункцииМодуляВыгрузки
у процедуры ВыгрузкаКонвертации
Оставьте свое сообщение

См. также

Загрузка справочников в 1С (7.7) из Excel, OpenOffice, 1C (обработка) Промо

Файловые протоколы обмена, FTP Загрузка и выгрузка в Excel 1С7.7<->1C7.7 v7.7 1cv7.md Платные (руб)

Универсальная обработка, предназначенная для загрузки справочной информации в программу 1С:Предприятие 7.7 из файлов различных типов: Excel, OpenOffice, 1C. Позволяет загрузить объемную информацию о товарах, материалах, контрагентах, а также заполнить прочие справочники системы. Не ограничена какой-то конкретной конфигурацией и может быть использована на любой платформе 1С (7.7) c использованием имеющихся приложений: 1С, Excel, OpenOffice.

1500 руб.

09.09.2010    60888    17    27    

Конфигурация "Информационный киоск". Обработки выгрузки товаров для ТиС 9.2, УТ 10.3, УТ 11 (обмен данными с любой конфигурацией 1С 7.7, 8.х)

Управление услугами и сервисом Управление торговлей Оптовая торговля Розничная торговля Перенос данных из 1С7.7 в 1C8.X 1С7.7<->1C7.7 Оптовая торговля Розничная торговля v7.7 v8 1cv8.cf 1cv7.md Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд УУ Платные (руб)

Конфигурация предназначена для организации offline доступа клиента (покупателя) к информации о товарах, услугах или дисконтных картах посредством сканирования штрих-кода. Основная цель – мгновенно предоставить наиболее актуальную информацию о цене, остатках, наименовании товара (услуги) или накоплениях, держателе, состоянии дисконтной карты.

1500 руб.

21.12.2014    43193    3    16    

Решение: Обмен документами в 1С (7.7) в текстовом формате*

1С7.7<->1C7.7 v7.7 1cv7.md Платные (руб)

Универсальная обработка "Выгрузка документов из 1С (7.7) в текстовый файл" позволяет легко и просто выгрузить информацию о документах за определенный период, с отбором по заполнению этих документов. Можно определить перечень документов, которые были зарегистрированы в системе в указанном периоде времени и выгрузить их в текстовый файл переноса. Можно указать для выбранных документов условие отбора по общим для них реквизитам и их заполнению. Формат файла переноса является оригинальной авторской разработкой и построен на принципе отображения объектов в 1С в текстовом представлении: то, что видит пользователь в документе - то и будет выгружено.

1500 руб.

11.06.2012    39096    2    29    

Выгрузка и загрузка документов, справочников, констант

1С7.7<->1C7.7 v77::БУ 1cv7.md Россия Платные (руб)

Выгрузка Загрузка Документов Справочников Констант Для 1С:Предприятия 7.7

1000 руб.

08.12.2011    26537    10    18    

Загрузка документов в 1С (7.7) из табличных файлов Excel,OpenOffice,1C,DBF,TXT (обработка) Промо

Файловые протоколы обмена, FTP Загрузка и выгрузка в Excel 1С7.7<->1C7.7 v7.7 1cv7.md Платные (руб)

Обработка решает поставленную задачу по вводу документов, а кроме того обладает важной функцией: настраивается на ассортимент конкретного поставщика, запоминая соответствие между его номенклатурой и «нашей». Т.е. фактически – является самообучающейся системой ввода накладных. У разных поставщиков могут быть накладные различного типа, с разным количеством полей, поэтому для каждого из них может быть сохранена своя собственная настройка диалоговой формы так, что любая поступающая накладная может быть обработана. По отношению к программе "1С:Предприятие 7.7" данное решение является внешними файлами. Для использования данного продукта не требуется вносить изменения в алгоритм существующих программ или используемых конфигураций.

1500 руб.

10.12.2009    64984    52    93    

Выгрузка и Загрузка Документов

1С7.7<->1C7.7 v77::БУ 1С7:Бух Россия Платные (руб)

Выгрузка и Загрузка Документов Для 1С Бухгалтерия 7.7

1000 руб.

12.10.2011    18685    2    14