ТЗ > 240 000 строк

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. ivanov_alex 67 11.10.12 18:29 Сейчас в теме
Доброго времени суток, увжаемые
случилось готовить алкогольную декларацию конкретно 6-ую форму ОПТ по формату 4.20
слетает 1с после формирования ТЗ(240 000 строк гдето) с сообщением microsoft visual....runtime error
далее закрывается 1с
как-то можно побороть?
помогите делом, не могу сдаться
Конфа=ТиС 9.2 с алкогольной надстройкой(винный дом)
Сервер:
XEON 2 материнки два проца 16 ядер
16 ГБ ОЗУ
MS windows server 2003 x86
готов предоставить доступ к РДП или teamviewer

ЗЫЖ: стоит наверное заметить что по формату 4.01 выгрузка происходила в текстовом формате с последующим конвертом в хмл
там же,специальной обработкой конвертилось в хмл
34 мегабайта на выходе получался xml, обороты примерно те же, только щас при создании хмл напрямую из 1с, падает
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
9. seakuban 11 11.10.12 20:25 Сейчас в теме
На моей памяти были случаи когда процесс 1С 7.7 пожирал чуть более гигабайта памяти, но ничего не падало. У тебя по моим приблизительным расчетам экземпляр 1с должен сожрать около 600-800 мб ОЗУ. Это еще не повод падать на самом деле для семерки
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. evgefremov 44 11.10.12 18:53 Сейчас в теме
(1) ivanov_alex, Вы не написали в каком режиме работаете в базе, файловом или клиентсерверном?
3. ivanov_alex 67 11.10.12 18:55 Сейчас в теме
(2) evgefremov,
1 С вер.7.70.027
ДБФ версия
режим работы терминал база на свободном ЖМД там же на сервере, доступ на запись есть(адм права)
4. evgefremov 44 11.10.12 19:11 Сейчас в теме
(3) ivanov_alex, тогда мощность сервера особого значения не имеет, видимо при формировании ТЗ упирается во внутренние ограничения 7ки. могу предложить попробовать то же самое в клиент-серверном режиме если есть возможность. если нет, переделывать модуль формирования ТЗ
5. ivanov_alex 67 11.10.12 19:21 Сейчас в теме
(4) evgefremov, вот и хотелось бы знать куда смотреть чтоб переделать ТЗ
раньше когда отчеты подавалсиь отдельно по головному и отдельно по обособке проблем не возникало
щас все это(головное и обособку) нужно впихнуть в одно ТЗ
6. hogik 444 11.10.12 19:39 Сейчас в теме
(1)
Возможно проблема из-за нехватки памяти.
Посмотрите эту информацию (если имеется машина с x64 системой):
http://forum.infostart.ru/forum26/topic50264/message550809/#postform
И далее 14 сообщение в теме.
ivanov_alex; +1 Ответить
7. seakuban 11 11.10.12 20:16 Сейчас в теме
Давай доступ к RDP. Попробую помочь
8. ivanov_alex 67 11.10.12 20:24 Сейчас в теме
(7) seakuban, отправил в личку
9. seakuban 11 11.10.12 20:25 Сейчас в теме
На моей памяти были случаи когда процесс 1С 7.7 пожирал чуть более гигабайта памяти, но ничего не падало. У тебя по моим приблизительным расчетам экземпляр 1с должен сожрать около 600-800 мб ОЗУ. Это еще не повод падать на самом деле для семерки
10. ivanov_alex 67 11.10.12 20:33 Сейчас в теме
твои бы слова...
на самом деле жрет побольше чем 600
11. ivanov_alex 67 11.10.12 23:39 Сейчас в теме
благодарю seakuban за потраченное время, вопрос почти закрыт, остались мелочи
12. Ёпрст 1067 12.10.12 09:30 Сейчас в теме
(0)
1. типизируй все колонки в ТЗ
2. избавься от текстовых колонок большой длины
3. не используй ТЗ, храни всё, например, в базе sqllite - это и быстрее и памяти не ест.
13. ivanov_alex 67 12.10.12 09:45 Сейчас в теме
(12) Ёпрст, да тут походу дела не в ТЗ дело
щас смотрю-тз формируется и не падает
падает при записи хмл...
14. Ёпрст 1067 12.10.12 14:43 Сейчас в теме
(13) Вовсе не так, точне не совсем так:

У тебя формирование ТЗ отъело всю память, на запись xml её ужо не хватает.
Клюшки > 2 гигов не держат, сваливаются еще раньше с ошибкой оут оф меммори.
15. ivanov_alex 67 12.10.12 14:48 Сейчас в теме
(14) Ёпрст, капец
и чего делать? посоветовали создать последовательнозаписываемыйфайл
чем то поможет?
16. Ёпрст 1067 12.10.12 16:12 Сейчас в теме
(15) неа.. открой диспетчер задач и ужаснись - сколько памяти съела твоя тз.

Типизируй в ней колонки явно при создании колонок ТЗ - будет меньше памяти есть.
Лучше конечно, "тз" создавать во временной табличке скуля\скульлайта или в дбф.
17. hogik 444 12.10.12 17:30 Сейчас в теме
(15)(16)
Менять алгоритм - это ДА. Однако попробуйте методу из (6) сообщения. Это тестировалось на очень похожей задаче/проблемы из (1) сообщения. И временно помогло. Потом пересматривал алгоритм. Сроки отчета по алкоголю... :-(
18. ivanov_alex 67 12.10.12 18:34 Сейчас в теме
(17) hogik, система х86 никаких largeaddressware
(16) Ёпрст, 1,2 гига оперативы на пике
при доступной памяти в 3.59 и расширением физических адресов до 15 гигов я уже хз что думать
19. hogik 444 12.10.12 18:56 Сейчас в теме
(18)
Проверьте хоть до 3GB. Чего изменится?
"... программа, собранная с ключом /LARGEADDRESSAWARE:YES может выделять до 3-х гигабайт памяти, если 32-битная операционная система Windows запущена с ключом /3gb. Так вот, эта же 32-битная программа, запущенная на 64-битной системе, может выделить почти 4 GB памяти (на практике около 3.5 GB)."(с)
20. ivanov_alex 67 12.10.12 19:01 Сейчас в теме
(19) hogik, поставил ключ /3GB
тестирую
22. hogik 444 12.10.12 19:36 Сейчас в теме
(20)
А программу EDITBIN-ом изменили?
24. ivanov_alex 67 12.10.12 19:52 Сейчас в теме
(22) hogik, знать бы ещё как менять...
21. ivanov_alex 67 12.10.12 19:29 Сейчас в теме
внутренняя ошибка компоненты анализатора...
как то может в текст попробовать загнать?
23. hogik 444 12.10.12 19:39 Сейчас в теме
(21)
Начните с простого совета из (16) сообщения в части типизации.
25. hogik 444 12.10.12 19:57 Сейчас в теме
(21)
Вот моя похожая проблема и решение.
http://forum.infostart.ru/forum1/topic68468/message736111/#message736111
Смотрите только 1 и 13 сообщения.
Это если в Вашей задаче используется V7Plus.
Кстати, в разных версиях этой ВК были разные проявления проблемы. ;-)
(24)
Дык, выше по теме написано. Прикрепляйте в тему EXE-шник. Сделаю модификацию.
26. ivanov_alex 67 12.10.12 20:14 Сейчас в теме
вот
Прикрепленные файлы:
1cv7s.exe
28. hogik 444 12.10.12 21:04 Сейчас в теме
(26) Пробуйте.
Прикрепленные файлы:
1cv7s.zip
ivanov_alex; +1 Ответить
29. ivanov_alex 67 12.10.12 21:41 Сейчас в теме
(28) hogik, ну ты мастер
сформировалось
и как полагается, отдаю награду
сколько есть стартов-все твои
мне работа важнее
ещё раз спасибо
30. hogik 444 12.10.12 22:26 Сейчас в теме
(29)
Радует, что получен результат. Однако, надо разбираться с самим алгоритмом и его реализацией. Переделывать. Т.к. скоро будет отчет за четвертый квартал и потребуется уже четыре гигабайта... ;-)
31. ivanov_alex 67 12.10.12 22:55 Сейчас в теме
(30) hogik, следует перейти наверное на 64 бита
очень проблематично с работой 24/7
32. hogik 444 13.10.12 00:14 Сейчас в теме
(31)
Следует переписать программу.
27. ivanov_alex 67 12.10.12 20:45 Сейчас в теме
пока убрал обособку из отчета
буду добавлять второй блок ручками
опять гемор
33. andrewks 1375 13.10.12 09:29 Сейчас в теме
самое верное решение - не использовать в7плюс вообще. работайте напрямую с msxml
34. andrewks 1375 13.10.12 09:30 Сейчас в теме
34 мегабайта на выходе получался xml - это вообще ни о чём. выкидывайте v7plus.dll
35. ivanov_alex 67 13.10.12 12:58 Сейчас в теме
(34) andrewks, тогда какой компонент использовать?
формирование хмл без v7 както возможно?
36. andrewks 1375 13.10.12 13:11 Сейчас в теме
(35) ivanov_alex, если нужна DOM-модель - через прямое обращение к msxml

вот пример:
Функция ВывестиЭлем(ТекЭлем,Знач Смещ);
	
	Рез=1;
	Попытка
		Если (ТекЭлем.nodeType=1) Тогда
			Сообщить(Смещ+"Элемент "+ТекЭлем.nodeName+":","!");
		ИначеЕсли (ТекЭлем.nodeType=3) Тогда
			Сообщить(Смещ+"Текст элемента: "+ТекЭлем.nodeValue);
		ИначеЕсли (ТекЭлем.nodeType=4) Тогда
			Сообщить(Смещ+"CDATA: "+ТекЭлем.nodeValue);
		ИначеЕсли (ТекЭлем.nodeType=8) Тогда
			Сообщить(Смещ+"Комментарий: "+ТекЭлем.nodeValue,"I");
		Иначе
			Сообщить(Смещ+"Элемент "+ТекЭлем.nodeName+":");
			Сообщить(Смещ+"Тип: "+ТекЭлем.nodeType);
		КонецЕсли;
		
		Для ном=0 По ТекЭлем.attributes.length-1 Цикл
			ТекАтр=ТекЭлем.attributes(ном);
			Сообщить(Смещ+"Атрибут: "+ТекАтр.nodeName+", значение: "+ТекАтр.nodeValue);
		КонецЦикла;
		
	Исключение
		Рез=0;
	КонецПопытки;
	
	
	Смещ=Смещ+"    ";
	
	Для ном=0 По ТекЭлем.childNodes.length-1 Цикл
        ДочЭлем=ТекЭлем.childNodes(ном);
        Рез=Рез*ВывестиЭлем(ДочЭлем,Смещ);
	КонецЦикла;
	
	Возврат Рез;
КонецФункции

//*******************************************
Функция Сформировать()
 
	ИмяФайла="D:\1.xml";
	
	Попытка
		ДОМ=СоздатьОбъект("MSXML.DOMDocument");
		Узел=ДОМ.CreateProcessingInstruction("xml","version=""1.0"" encoding=""windows-1251""");
	Исключение
		Сообщить("Не удалось создать объект DOMDocument","!");
		Возврат 0;
	КонецПопытки;
	ДОМ.insertBefore(Узел,);
	
	
	ТекЭлем=ДОМ.appendChild(ДОМ.createElement("Файл"));
	Текст=ДОМ.createTextNode("Здесь содержимое Файл");
	ТекЭлем.appendChild(Текст);
	ТекЭлем.setAttribute("Атрибут_Файл_1","Здесь содержимое Атрибут_Файл_1");
	Комм=ДОМ.createComment("Далее следует содержимое файла");
	ТекЭлем.appendChild(Комм);
	
	ТекЭлем=ТекЭлем.appendChild(ДОМ.createElement("СодержимоеФайла"));
	Текст=ДОМ.createTextNode("Здесь содержимое СодержимоеФайла");
	ТекЭлем.appendChild(Текст);
	ТекЭлем.setAttribute("Атрибут_СодержимоеФайла_1","Здесь содержимое Атрибут_СодержимоеФайла_1");
	Текст=ДОМ.createCDATASection("Это секция CDATA");
	ТекЭлем.appendChild(Текст);
	ДОМ.save(ИмяФайла);
	
	Попытка
		ДОМ=СоздатьОбъект("MSXML.DOMDocument");
	Исключение
		Сообщить("Не удалось создать объект DOMDocument","!");
		Возврат 0;
	КонецПопытки;
	
	ДОМ.async=0;
    ДОМ.validateOnParse=-1;
	ДОМ.resolveExternals=-1;
    ДОМ.load(ИмяФайла);
    
    Если (ДОМ.parseError.errorCode<>0) Тогда
        // ошибки при проверке валидности
 
        Сообщить("При проверке валидности файла "+ИмяФайла+" выявлены ошибки!","!");
        Возврат 0;
    КонецЕсли;

	Рут=ДОМ.documentElement();
	Смещ="";
	Рез=ВывестиЭлем(Рут,Смещ);
	
	Возврат Рез;
КонецФункции

Показать
37. andrewks 1375 13.10.12 13:13 Сейчас в теме
если как последовательное чтение/запись - то от самому через FSO/adodb до многочисленных готовых библиотек типа FastXML
41. ivanov_alex 67 13.10.12 16:57 Сейчас в теме
(37) andrewks, fastxml разработка ромикса?
пользуюсь иногда его решениями для выгрузки баз с архивом более 2 гб
38. ivanov_alex 67 13.10.12 13:22 Сейчас в теме
ясно, что ничего не ясно
буду курить мануалы что теперь
39. hogik 444 13.10.12 16:44 Сейчас в теме
(38)
Пока "курите мануалы" сделайте одну рабочую станцию с х64 системой.
Т.е. если появятся проблемы при 3GB то, возможно, сможете сделать отчет на 4GB по сети.
40. ivanov_alex 67 13.10.12 16:54 Сейчас в теме
(39) hogik, придется
виртуальную может поствить
42. hogik 444 13.10.12 17:17 Сейчас в теме
(40)
Вам известны VM системы поддерживающие х64 гостевые системы на 32-битном хосте?
Не надо усложнять. А Windows х64 в любом случае придется приобретать. Уверен, что в парке Вашей фирмы есть х64 железо. Поставьте на этом реальном железе WinXPx64 или Win7HPх64 (требуется решение "проблемы" порядка сортировки).
43. ivanov_alex 67 13.10.12 17:22 Сейчас в теме
44. hogik 444 13.10.12 17:47 Сейчас в теме
(43)
Да. Установка "1С 7.7" (версия 27) на Win7x64 возможна. Есть нюансы.
Но, для подстраховки такое решение надо проработать заранее.
Хотя, еще раз скажу - надо переделывать программу.
Создавать XML не через v7plus. И огромная ТЗ не требуется для шестой формы.
45. ivanov_alex 67 13.10.12 17:57 Сейчас в теме
(44) hogik, каждый день гдето 560 документов
исключение-воскресения
так что тз большая
я про возвраты вообще молчу
46. hogik 444 13.10.12 18:26 Сейчас в теме
(45)
Но, это не повод загонять их все в ТЗ. ;-)
47. ivanov_alex 67 13.10.12 18:35 Сейчас в теме
(46) hogik, ну хорошо, тогда как без тз?
делать запрос к документам?
какждый содержит от 50 до 260 строк
50*даже на 100 и все это на 78 дней(средний строк отгрузок за квартал)
опять много...
эти обороты ещё нужно умножать на два ибо основное +обособка
плюс дебильные сортировки плюс объявление поставщиков производителей и покупателей
я про нашу розницу молчу...11 форма-это 760 обособок
увольняться я не планирую, 4 года уже веду эту контору
плюс ещё розничные и оптовики пива добавились
так что в алкоголе я надолго, другое дело..столкнулся с таким западлом извините первый раз
48. hogik 444 13.10.12 19:52 Сейчас в теме
(47)
Ох. Чувствую нечаянно наступил на "больную мозоль". :-(
Конечно Вам видней как реализовать алгоритмы в известной Вам схеме базы данных.
Отменяю своё замечание из (46) сообщения...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот