Vond,
Фишка в том что есть огромный файл.
Его нужно читать последовательно, а не целиком.
Алгоритм следующий:
1. Читаешь последовательно строки XML с помощью
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяФайла);
ЧтениеXML.Прочитать();
// начинаем читать дальше строки файла
Пока ЧтениеXML.Прочитать() Цикл //Цикл по структуре
// .........
КонецЦикла;
В этом случае оперативная память не загружается и в ней находятся только прочитанные на момент чтения строки.
Минус в том что мы не можем контролировать что загружено из файла что нет и если что-то пойдет не так то нам нужно начинать сначала.
2. Поэтому перед тем как выполнять записи в базу я этот большой XML дробил программно на кучу (по 100000 записей, это на усмотрение)
В результате у меня было N количество небольших файлов ожидающих загрузки данных.
3. После того как новые файлы сформированы запускаем уже разбор этих отдельных файлов.
Читаю каждый файл и гружу по нему данные. Если успешно загрузился, то грохаю его, если прошла какая-то ошибка, то пропускаю (перемещаю в отдельный каталог. что бы потом выяснить на чем прошел затык)
И так выполняется пока все они не будут обработаны.