Oleg

35
Рейтинг

Just4Fun



  •   Регистрация: 22.01.2009 (15 лет назад)

  •   Был(а) на сайте: 24.04.2024

Друзья
  • Вячеслав Гилёв
Подписчики 2

Рейтинг 35

Рассылка событий журнала регистрации

Инструменты и обработки Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m) Конфигурация (md, cf) Журнал регистрации

Отправка событий журнала регистрации на почту с возможностью группировки и фильтрации.

1 стартмани

07.02.2019    9094    14    Just4Fun    2       

8

Оптимизация выгрузки из 1С 7.7 по правилам обмена большого объема данных

Статья Программист Платформа 1С v7.7 Конфигурации 1cv7 Windows Бесплатно (free) Нет файла Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C

При выгрузке из 1С 7.7. большого справочника программа завершалась примерно с таким сообщением: "msxml6.dll: Недостаточно памяти для завершения операции". Вариант выгрузки порциями меня не устраивал. Поэтому немного оптимизировал обработку выгрузки. Возможно кому-то сэкономит время.

24.09.2014    33713    Just4Fun    33       

27

Комментарии

AdminРассылка событий журнала регистрации#2 12.05.22 12:16
(1) Добрый день.
Используйте на здоровье.
ОбменОптимизация выгрузки из 1С 7.7 по правилам обмена большого объема данных#32 18.12.20 19:03
(30) лет то прошло... сделал и забыл.
По идее все ключевые моменты описаны в статье. Все внесенные изменения в статье показаны. Их не так много. Я бы даже сказал, доработки минимальные. Больше, к сожалению, ничем помочь не могу.
ОбменОптимизация выгрузки из 1С 7.7 по правилам обмена большого объема данных#26 15.05.19 13:42
(25) попробуйте для ПКО объекта, по которому выгружается наибольшее количество данных поставить «не запоминать выгруженные объекты».
Также, возможно, разбить выгрузку на этапы. Например. 1. справочники, 2. Документы. в ПКО документов указать "не выгружать объекты свойств по ссылкам".
Ну и еще простое решение, разбить выгрузку на порции, например, по видам объектов или периодам.
AdminРассылка событий журнала регистрации#0 07.02.19 22:07
Отправка событий журнала регистрации на почту с возможностью группировки и фильтрации.
Dev"Распределение в запросе" или "избавляемся от перебора"#8 16.12.16 13:19
Хорошее решение. Рекомендую.

Была аналогичная задача при закрытии месяца в УПП.
В типовом алгоритме был фрагмент кода, который строил большую таблицу перехода номенклатуры из одного состояния другое. А реализовано это было через "цикл в цикле" по таблице в 20 тыс. строк, что в итоге давало 400 млн итераций, и в свою очередь общее время проведения документа составляло 3-4 часа по каждому из разделов учета (БУ, НУ, УПР).
Здесь даже была статья по этой проблеме и ее решению. http://infostart.ru/public/176644/
Попробовал решение из статьи - эффект был, но не скажу, что проблема ушла. выигрыш был порядка 10%.

Несколько дней ходил и крутил проблему в голове. Идея, как и у автора текущей статьи, осенила неожиданно.
В итоге переложил типовой цикл на запрос и время его выполнения составило что-то около 3-5 секунд, а общее время проведения документа - несколько минут.
ОбменОптимизация выгрузки из 1С 7.7 по правилам обмена большого объема данных#16 28.06.16 1:04
(14) buy_sale, посмотрел внимательно на скрин с ошибкой. Нет ли в обработчике "после загрузки данных" чтения каких-либо дополнительных данных из файла?
ОбменОптимизация выгрузки из 1С 7.7 по правилам обмена большого объема данных#15 28.06.16 0:56
(14) buy_sale,
"даже когда маленький файл гружу все равно конец обрезается"
Нужно проверить, корректно ли "закрывается" файл, т.е. все ли закрывающие теги на месте. На маленьком файле должно быть видно. Если файл действительно небольшой, то можно открыть в IE - должен корректно отобразиться в виде дерева.
В своей практике сталкивался с проблемой - "некорректный" символ в строке (в наименовании элемента справочника) - долго не мог понять, в чем причина.

"Соответственно документы остатков по самому большому справочнику номенклатуры (150 000 элементов) не появляются."
Может конечно у вас и не одним документом все грузится, но на всякий случай посоветовал бы ограничить количество строк на документ, например по 1-2 тыс. строк.. С документами с небольшим количеством строк потом и работать легче (отрывать, проверять, проводить и т.п.).

Еще как вариант оптимизации, выгрузить отдельно ваш большой справочник, только то что возвращает запрос для выгрузки остатков. А потом отдельно выгружать документы остатков с включенным флагом (в ПКО) "не выгружать объекты по ссылкам..."
ОбменОптимизация выгрузки из 1С 7.7 по правилам обмена большого объема данных#13 21.06.16 13:44
(12) buy_sale,
"Уважаемый а вы уверены, что это тождественнно " -
За давностью лет, подтвердить или опровергнуть не смогу. Поскольку вместо типового списка значений задействовал индексированную таблицу из 1СPP, то возможно сделал так по возможному синтаксису метода этого объекта. Уже не помню, скорее всего в методе допускалось указание имени или номера колонки, потому так и написал.

"Аплодирую стоя ! "
Пожалуйста.
ОбменОптимизация выгрузки из 1С 7.7 по правилам обмена большого объема данных#11 16.06.16 12:46
(10) buy_sale, Сталкивался. Мой случай описан во "второй доработке" из этой статьи. Уже не помню свои исходные данные, но прогнозная оценка времени выгрузки составляла больше 10 часов. После доработки выгрузка выполнилась за 2,5 часа
Если применили эту доработку, то понять причину поможет только отладчик.