Имя: Пароль:
1C
 
Выгрузка XML
0 Интересный вопрос
 
07.11.08
12:23
При выгрузке данных из 1С 7.7 "Бухгалтерия" в файл xml с помощью обработки для перехода на "Бухгалтерию Предприятия" 8.1, обработка после двух часов работы завершается ошибкой "недостаточно памяти". Можно как то решить данную проблему, а то справочник "Материалы" очень большой и перенести его целиком не получается. И соответственно остатки по счету 10 не переносятся.
1 ТелепатБот
 
гуру
07.11.08
12:23
2 lea_220400
 
07.11.08
12:24
скока элементов примерно
3 Интересный вопрос
 
07.11.08
12:26
(2) Десятки тысяч
4 Вугслукр
 
07.11.08
12:27
Я бы сам написал обработку по выгрузке/загрузке этого справочника в xml.
Сразу сохранять данные файл, а не собирать их в памяти.. тогда думаю можно выгрузить/загрузить справочник любого размера.
5 Интересный вопрос
 
07.11.08
12:32
(4) Можно ли стандартную обработку поравить? И если да то каким образом (примерно хотя бы)
6 lea_220400
 
07.11.08
12:40
попробуй транзакции поставить и количество выгруженных элементов около 10000, как дошелдо этого количества, так и фиксируй, наверняка в этом бага
7 Вугслукр
 
07.11.08
12:40
(5), я не знаю как сделано в этой обработке, я просто предположил, что справочник сначала закачивается в память , а потом в файл, поэтому огребаем ошибку о нехватки памяти, я думаю это наиболее вероятно.
Исправить можно все. Но проще самому написать несколько строк кода по выгрузке/загрузке этого справочника в/из xml или dbf.  Это просто.
8 lea_220400
 
07.11.08
12:40
(6) + вернее транзакции там есть, но вот если не фиксировать после определенного числа элементов, то память на 1С просто взлетает
9 Интересный вопрос
 
07.11.08
12:43
(6) Я хотел бы ошибаться, но мне кажется что ЗафиксироватьТранзакцию() не очищает оперативную память.
10 Вугслукр
 
07.11.08
12:53
(9), а ты проверь
11 Интересный вопрос
 
07.11.08
12:56
(10) Проверил, в Диспетчере задач память, выделяемая для процесса 1cv8.exe не уменьшилась после ЗафиксироватьТранзакцию(). Как проверить по другому не знаю.
12 YHVVH
 
07.11.08
13:00
ну купи памяти а?
13 GenV
 
07.11.08
13:03
(0) Разбивай выгрузку остатков на несколько частей. Сначала посмотри на чем вылетает - на формировании таблицы/запроса по остаткам или на выгрузки этих остатков через ТЗ.
14 Интересный вопрос
 
07.11.08
13:13
(12) Памяти на сервере больше 30 Гб. Не в памяти дело.

Цитата

"Физический объем оперативной памяти, установленной на компьютере, не имеет отношения к данной проблеме. Ошибка «Недостаточно памяти» означает, что закончилось адресное пространство (около 2 Гб), которое операционная система способна выделить приложению."
15 Интересный вопрос
 
07.11.08
14:57
(13) Вылетает скорее всего после запроса на выгрузке остатков.
16 GenV
 
07.11.08
15:03
(15) Ну, вот нужно определить когда вылетает и разбивать на части или самому отдельно от обработки выгружать по частям.
17 Интересный вопрос
 
07.11.08
15:29
(16) Пока остановился на решении таком: немного поправить правила выгрузки касаемые справочника Материалы, и остатков по 10 счету. Буду запускать выгрузку - загрузку несколько раз, органичивая объем данных в выгрузке скажем принадлежностью к определенной группе справочника.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший