Имя: Пароль:
1C
 
v8: "Недостаточно памяти" (выгрузка данных на сайт)
0 Бит-1C
 
09.06.10
12:17
Доброго времени суток всем, кто читает это сообщение!
Мне поставлена задача выгрузить номенклатуру на сайт под управлением CMS "1С-Битрикс:Управление сайтом".
Версия 1С 8.1. База файловая. Размер базы 384Мб. Номенклатура насчитывает порядка 12тыс. позиций. ОС WinXP Professional. ОЗУ 3ГБ. Athlon 64 X2 2.9ГГЦ. На HDD свободно порядка 70ГБ.
Используя настройки импорта Битрикс-сайта и настройки экспорта 1С, удается выгружать на сайт номенклатуру по разделам. Экспорт порядка 4тыс. (больше не пробовал) позиций происходит успешно.
При экспорте ВСЕЙ номенклатуры процесс 1cv8.exe занимает до 1,5ГБ оперативной памяти (при этом в системе свободно более 1ГБ ОЗУ) и загружает полностью одно из двух ядер процессора, затем 1С выдает ошибку "V8: Недостаточно памяти" и закрывается.
При выгрузке номенклатуры в каталог на жесткий диск ситуация повторяется.
Поиск, как по Волшебному форуму, так и в Сети пока ничего не дал.
Прошу помощи у обитателей форума! Заранее благодарен за полезные ответы)
1 Дикообразко
 
09.06.10
12:18
самое лучшее это переписать выгрузку
2 3V
 
09.06.10
12:19
если ты и в правду Бит, то спроси у себя на работе на выбор у Бреева, Громова, Семенова :)
они точно знают как
3 Бит-1C
 
09.06.10
12:22
Я не тот Бит)
4 Бит-1C
 
09.06.10
12:25
>>самое лучшее это переписать выгрузку

Но что именно переписать? И как это поможет, если размер номенклатуры возрастет, например, в 2 раза?
5 Дикообразко
 
09.06.10
12:26
(4) скорее всего всю выгрузку пытаются засунуть в ОЗУ а затем скидывают в файл...
нужно переделывать что бы скидывалось в файл порциями по 100-200 элементов
6 Дикообразко
 
09.06.10
12:27
+(5) либо ищи комп с большим размером ОЗУ
7 Бит-1C
 
09.06.10
12:28
Но размер ОЗУ значения не имеет, тк всего ОЗУ 3ГБ, 1С отнимает ДО 1.5ГБ, свободными остаются более 1ГБ
8 Дикообразко
 
09.06.10
12:29
(7) не там смотришь, но не суть

я тебе уже все написал
9 Бит-1C
 
09.06.10
12:31
(8) А где нужно смотреть?
10 ДенисЧ
 
09.06.10
12:32
1с8 32 бит больше 2г скушать не сможет у прынципе.
А выгрузка наверняка в XML идёт... А он, редиска, прожорливый. Поэтому нужно переписывать на линейные структуры данных.
11 Бит-1C
 
09.06.10
12:34
Да, XML, но почему же оперативной памяти 1С забирает не 2ГБ, не 1.99ГБ, а только 1.5ГБ?
12 Бит-1C
 
09.06.10
12:35
XML, потому как Битрикс-сайт использует это формат для получения данных о номенклатуре и заказах.
13 Бит-1C
 
09.06.10
12:36
(12) поэтому врядли удастся уйти от этого формата. И номенклатура со временем не уменьшится...
14 ДенисЧ
 
09.06.10
12:37
(11) Байдизайн. Не пройдёт больше
(12) Я же говорю - xml-обмен - это мёртворожденный уродец. Его надо переписывать полностью. И без этих грубых слов.
(13) Уйти можно всегда. И от формата, и с работы, если квалификация не позволяет сделать первое.
15 Дикообразко
 
09.06.10
12:39
(14) >>xml-обмен - это мёртворожденный уродец

ну если все делать как 1С-ки, то всё будет мертворожденным
16 Бит-1C
 
09.06.10
12:39
(14) С 1С я работаю только для просмотра номенклатуры и экспорта данных на сайт. Моя задача - web-сайт, который должен отображать номенклатуру для покупателей.

(Я не 1С-ник)
17 Бит-1C
 
09.06.10
12:41
(16) В 1С не программирую и пытаюсь обойтись "малой кровью" при обмене данными. Надеюсь использовать штатные средства обмена 1С (если это мне хоть как-то представится возможным)
18 ptiz
 
09.06.10
12:43
читать тут
http://1c.1c-bitrix.ru/ecommerce/v2.php#tab-review-link

...Например, ранее, при выгрузке 10-15 тыс. позиций номенклатуры происходило быстрое нарастание объема потребляемой 1С памяти, вплоть до 2Gb, в результате чего примерно через час выгрузка останавливалась вследствие ее нехватки. Теперь расход памяти строго регулируется (до 256 Мб) и процедура всегда доходит до завершения при любых объемах справочника номенклатуры.
19 Бит-1C
 
14.06.10
16:15
(18) СПАСИБО! Ссылка помогла в решении проблемы :-)