Чтение XML файла

1. ugr_88 03.08.15 07:52 Сейчас в теме
Доброго времени суток,
У меня есть XML файл с данными от другой конфигурации, пытаюсь загрузить данные через SOAP.
Данные передаются без проблем, и отправляются также.
Проблема в том что когда данные получил, либо пытаюсь загрузить, при чтении XML файла 1С зависает намертво, ждал оч долго, но без результатно.
Пытался отладчиком найти проблему, но через отладчик ничего не зависает и все ок, но когда пытаюсь без точки останова, 1С умирает!!!
В чем может быть дело, подскажите плс....
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. karpik666 3778 03.08.15 08:16 Сейчас в теме
(1) ugr_88, в отладчике ты полностью файл загружаешь или просто несколько строк кода проходишь? Возможно у тебя бесконечный цикл при чтении, либо загружаемый файл заблокирован другой программой, что 1с не может его прочитать. А файл большой?
4. ugr_88 03.08.15 14:25 Сейчас в теме
(2) karpik666, Файл около 10мб
Мне весь цикл пройти уйдет большое кол часов.
Если я перед циклом ставлю точку остановки и захожу в цикл.
Но когда я в цикле ставлю точку остановки то 1С зависает...
3. ditp 91 03.08.15 10:04 Сейчас в теме
9. Boneman 298 03.08.15 15:37 Сейчас в теме
(1) ugr_88, попробуй еще на другой платформе,
а то помнится мне, много проблем было при файловых операциях большого размера...может это тоже из той же серии глюк
5. ugr_88 03.08.15 14:32 Сейчас в теме
СтрокаСообщения = Строка с данными 
    ЧтениеХМЛ = Новый ЧтениеXML;
    ЧтениеХМЛ.УстановитьСтроку(СтрокаСообщения);
    
    ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
    ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ);
    Узел = ЧтениеСообщения.Отправитель;
    ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
    Пока ВозможностьЧтенияXML(ЧтениеХМЛ) Цикл
        Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML);
        Если Не Данные = Неопределено Тогда
            Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
            Данные.ОбменДанными.Загрузка = Истина;
            Данные.Записать();
        КонецЕсли;
    КонецЦикла;
    
    ЧтениеСообщения.ЗакончитьЧтение();
Показать
6. Serginio 938 03.08.15 14:43 Сейчас в теме
В Журнале регистрации какие ошибки?
7. ugr_88 03.08.15 14:55 Сейчас в теме
(6) Serginio, В журнале нет никаких записей, вот это вторая проблема...
8. Boneman 298 03.08.15 15:19 Сейчас в теме
(7) ugr_88,
попробуй разобрать строку через фабрику, может схавает
	
Функция РазборСтруктурыХМЛ(ТекстСДаннымиXML)
Чтение = Новый ЧтениеXML;
	
	Чтение.УстановитьСтроку(ТекстСДаннымиXML);
	ОбъектModel = ФабрикаXDTO.ПрочитатьXML(Чтение);
	Возврат ОбъектModel;

на выходе будет объектная модель, анализируя которую получаем результат.
Главное, чтобы функция отработала и не отвалилась в ошибке.
10. Serginio 938 03.08.15 16:26 Сейчас в теме
Попробуй сохранить в файл и читать уже из него. Может быть проблема с памятью.
И пиши куда нибудь в тот же ЖР какие объекты загрузились и в Попытке. Вот загрузка из БП

Попытка
		ЧтениеXML = Новый ЧтениеXML;
		
		Если Не ПустаяСтрока(СообщениеОбмена) Тогда
			ЧтениеXML.УстановитьСтроку(СообщениеОбмена);
		Иначе
			ЧтениеXML.ОткрытьФайл(ИмяФайла);
		КонецЕсли;
		
		ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
		ЧтениеСообщения.НачатьЧтение(ЧтениеXML, ДопустимыйНомерСообщения.Больший);
	Исключение
		
		ИнформацияОбОшибке = ИнформацияОбОшибке();
		
		Если ЭтоОшибкаНомерСообщенияМеньшеИлиРавенНомеруРанееПринятогоСоо­бщения(КраткоеПредставлениеОшибки(ИнформацияОбОшибке)) Тогда
			
			РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Предупреждение_СообщениеОбменаБылоРанееПринято;
			
			ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Предупреждение,
				УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, КраткоеПредставлениеОшибки(ИнформацияОбОшибке));
			//
		Иначе
			
			РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка;
			
			ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка,
				УзелИнформационнойБазы.Метаданные(), УзелИнформационнойБазы, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
			//
		КонецЕсли;
		
		Возврат;
	КонецПопытки;
Показать


И сделай в транзакции
Попытка
				Данные.Записать();
			Исключение
				
				РезультатВыполненияОбмена = Перечисления.РезультатыВыполненияОбмена.Ошибка;
				
				ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
				
				ЗаписьЖурналаРегистрации(КлючСообщенияЖурналаРегистрации, УровеньЖурналаРегистрации.Ошибка,
					Данные.Метаданные(), Строка(Данные), ОписаниеОшибки);
				//
				Прервать;
			КонецПопытки;
			
			КоличествоЗаписанныхОбъектов = КоличествоЗаписанныхОбъектов + 1;
			
			Если ИспользоватьТранзакции
				И КоличествоЭлементовВТранзакции > 0
				И КоличествоЗаписанныхОбъектов = КоличествоЭлементовВТранзакции Тогда
				
				// Промежуточную транзакцию закрываем и открываем новую.
				ЗафиксироватьТранзакцию();
				НачатьТранзакцию();
				
				КоличествоЗаписанныхОбъектов = 0;
			КонецЕсли;
Показать
11. ugr_88 04.08.15 07:30 Сейчас в теме
(10) Serginio, А как мне записать строку в XML файл?
ее же по любому придется перебирать?
или я не правильно понял?
12. ugr_88 04.08.15 07:31 Сейчас в теме
Текст = Новый ТекстовыйДокумент; 
    Текст.Прочитать(ПутьКФайлу); 

    ЧтениеXML = Новый ЧтениеXML(); 
    ЧтениеXML.УстановитьСтроку(Текст.ПолучитьТекст());
24. Serginio 938 04.08.15 10:19 Сейчас в теме
(12) Зачем ты считываешь файл в строку?
 ЧтениеXML.ОткрытьФайл(ИмяФайла);

Записать строку ты можешь через тот же самый
Текст = Новый ТекстовыйДокумент; 
Текст.УстановитьТекст(СтрокаСообщения) ;
Текст.Записать(ПутьКФайлу); 


Чтение из файла использует небольшой буфер и использует значительно меньше памяти.
13. karpik666 3778 04.08.15 07:42 Сейчас в теме
конечно безумное предположение, но, а права на чтение есть в той папке от куда берешь файл xml?
14. ugr_88 04.08.15 07:47 Сейчас в теме
(13) karpik666, Дело в том что когда файл маленький он работает без проблем, но стоит файлу превысить свой размер(какой именно я еще не определил) он просто зависает и все, в данный момент файл весит 6 мб
15. karpik666 3778 04.08.15 08:12 Сейчас в теме
(14) ugr_88, может он битым передается, или протокол обмена его режет, сравни текст файла xml до отправки и после. для сравнения можно воспользоваться самой 1с, я лично пользуюсь KDiff3
16. ugr_88 04.08.15 08:35 Сейчас в теме
я записываю перед отправкой в файл и после, они одинаковы...
17. karpik666 3778 04.08.15 08:43 Сейчас в теме
А переделай цикл на чтение вместо возможность поставь прочитатьXml а возможность добавь внутрь цикла.
18. ugr_88 04.08.15 08:54 Сейчас в теме
А как это реализовать???
Tak???
Пока ПрочитатьXML(ЧтениеСообщения.ЧтениеXML)<>Неопределено  Цикл
		Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML);
		Если ВозможностьЧтенияXML(ЧтениеСообщения) Тогда
			Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель;
			Данные.ОбменДанными.Загрузка = Истина;
			Данные.Записать();
		КонецЕсли;
	КонецЦикла;
19. karpik666 3778 04.08.15 09:12 Сейчас в теме
Типо этого:
ЧтениеХМЛ = Новый ЧтениеXML; 
ЧтениеХМЛ.УстановитьСтроку(СтрокаСообщения); 

ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); 
ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ); 
Узел = ЧтениеСообщения.Отправитель; 
ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого); 
лЧтение = ЧтениеСообщения.ЧтениеХМЛ;
Пока лЧтение.Прочитать() Цикл
        Если ВозможностьЧтенияXML(лЧтение) Тогда 
	        Данные = ПрочитатьXML(лЧтение); 
		Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; 
		Данные.ОбменДанными.Загрузка = Истина; 
		Данные.Записать(); 
	КонецЕсли; 	
КонецЦикла; 
Показать
20. ugr_88 04.08.15 09:34 Сейчас в теме
(19) karpik666, вроде как прошло все, надо будет еще протестировать...Спс большое....
21. ugr_88 04.08.15 09:52 Сейчас в теме
(19) karpik666, К сожалению нет, он его не прочитывает
Если ВозможностьЧтенияXML(лЧтение) Тогда
в этом месте он вылетает
22. karpik666 3778 04.08.15 09:58 Сейчас в теме
(21) ugr_88, тогда убери это условие, должно вроде и так работать, вся суть, что курсор должен сдвигаться с помощью метода прочитать, а в твоем первом варианте, он был на одном месте.
23. ugr_88 04.08.15 09:59 Сейчас в теме
(22) karpik666, Пытался но не работает
Ошибка при вызове метода контекста (ПрочитатьXML)
25. karpik666 3778 04.08.15 10:22 Сейчас в теме
Такой код точно работает, попробуй сделать по аналогии

	Попытка
		Чтение = Новый ЧтениеXML; 
		Чтение.ОткрытьФайл(пФайл); 
	Исключение
		Возврат Неопределено;
	КонецПопытки;
    //прочитаем начало xml файла
    Чтение.ПерейтиКСодержимому();
    
    //прочитаем начало корневого элемента
	Чтение.Прочитать();
	Пока Чтение.ТипУзла<>ТипУзлаXML.КонецЭлемента Цикл
		//читаем очередной элемент справочника
		Данные = СериализаторXDTO.ПрочитатьXML(Чтение);	
	КонецЦикла;
Показать
26. ugr_88 04.08.15 10:26 Сейчас в теме
(25) karpik666, пФайл - Это XML файл, но у меня же текст, как я текст буду записывать в файл?
27. karpik666 3778 04.08.15 10:28 Сейчас в теме
(26) ugr_88, вместо открытьфайл используйте, установитьТекст
28. ugr_88 04.08.15 11:06 Сейчас в теме
(27) karpik666, Мои попытки без успешны
Попытка
		ЧтениеХМЛ = Новый ЧтениеXML;
		ЧтениеХМЛ.УстановитьСтроку(СтрокаСообщения);
	Исключение
		Возврат Неопределено;
	КонецПопытки;
	//прочитаем начало xml файла
	ЧтениеХМЛ.ПерейтиКСодержимому();
	ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); 
	ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ); 
	Узел = ЧтениеСообщения.Отправитель; 
	//прочитаем начало корневого элемента
	ЧтениеХМЛ.Прочитать();
	Пока ЧтениеХМЛ.ТипУзла<>ТипУзлаXML.КонецЭлемента Цикл
		//читаем очередной элемент справочника
		Данные = СериализаторXDTO.ПрочитатьXML(ЧтениеХМЛ); // ПрочитатьXML(ЧтениеХМЛ)
                //Не работает
		Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; 
		Данные.ОбменДанными.Загрузка = Истина; 
		Данные.Записать(); 
	КонецЦикла;
Показать
29. karpik666 3778 04.08.15 11:19 Сейчас в теме
(28) ugr_88, вот код типовой конфы
// Загрузка из найденного файла
	ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения();
	ЧтениеСообщения.НачатьЧтение(ЧтениеXML);

	Попытка
		ПланыОбмена.ПрочитатьИзменения(ЧтениеСообщения, 15);
		
		ЧтениеСообщения.ЗакончитьЧтение();
		ЧтениеXML.Закрыть();
		
	Исключение
КонецПопытки;
Показать
32. Serginio 938 04.08.15 11:51 Сейчас в теме
33. ugr_88 04.08.15 11:58 Сейчас в теме
(32) Serginio, Записал я в тестовый документ потом пытаюсь сделать следующее

 Текст = Новый ТекстовыйДокумент; 
    Текст.Прочитать(ПутьКФайлу); 

    ЧтениеXML = Новый ЧтениеXML(); 
    ЧтениеXML.УстановитьСтроку(Текст.ПолучитьТекст()); 


Но все равно без результатно
30. karpik666 3778 04.08.15 11:20 Сейчас в теме
Используется без прочитатьXML
31. ugr_88 04.08.15 11:28 Сейчас в теме
(30) karpik666, Работает, но объектов много, нужно в цикл помещать, тогда как?
34. Serginio 938 04.08.15 12:18 Сейчас в теме
Зачем тебе считывать строку и записывать в чтение? Ты хоть читаешь, что тебе пишут?
Обрамляй код тегом кода, то что следом за кавычками.

Чтение = Новый ЧтениеXML; 
        Чтение.ОткрытьФайл(ПутьКФайлу);


Не надо тебе считывать в строку. ЧтениеXML считывает данные во внутренний буфер небольшими кусками и читает из него. Экономится куча памяти.
35. ugr_88 04.08.15 13:15 Сейчас в теме
(34) Serginio, А как может быть так???
что всего измененных объектов около 4000 тыс.
А при получении данных и их записи, счетчик показывает 15 миллионов???
36. ugr_88 04.08.15 13:56 Сейчас в теме
(34) Serginio, Чет все равно не работает...
	ПутьКФайлу = "D:\1C\2С.txt";
	Текст = Новый ТекстовыйДокумент; 
	Текст.УстановитьТекст(СтрокаСообщения);
	Текст.Записать(ПутьКФайлу); 

	ЧтениеХМЛ = Новый ЧтениеXML;
	ЧтениеХМЛ.ОткрытьФайл(ПутьКФайлу);
	ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); 
	ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ); 
	ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
	Узел = ЧтениеСообщения.Отправитель; 
	Пока ВозможностьЧтенияXML(ЧтениеХМЛ) Цикл
		Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML); 
		Если Не Данные = Неопределено Тогда
			Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; 
			Данные.ОбменДанными.Загрузка = Истина; 
			Данные.Записать(); 
		КонецЕсли; 
	КонецЦикла;
	
	ЧтениеСообщения.ЗакончитьЧтение();    

Показать
37. ugr_88 04.08.15 14:01 Сейчас в теме
Если делать обмен частями, то есть частями, перезагружать сервер при зависании, после пару перезагрузок все обновляется...
Что уже делать уже не знаю...
38. ugr_88 04.08.15 14:12 Сейчас в теме
Получается зависает именно при записи данных,
Данные.Записать();
39. Serginio 938 04.08.15 14:16 Сейчас в теме
(38) Прочитай внимательно 10. Записывай в транзакции частями
40. ugr_88 04.08.15 14:29 Сейчас в теме
(39) Serginio,

	КоличествоЗаписанныхОбъектов = 0;
	КоличествоЭлементовВТранзакции = 100;
	ПутьКФайлу = "D:\1C\2С.txt";
	Текст = Новый ТекстовыйДокумент; 
	Текст.УстановитьТекст(СтрокаСообщения);
	Текст.Записать(ПутьКФайлу); 

	ТабЗнач = Новый ТаблицаЗначений;
	ТабЗнач.Колонки.Добавить("Номер");
	
	ЧтениеХМЛ = Новый ЧтениеXML;
	ЧтениеХМЛ.ОткрытьФайл(ПутьКФайлу);
	ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); 
	ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ); 
	ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
	Узел = ЧтениеСообщения.Отправитель; 
	Пока ВозможностьЧтенияXML(ЧтениеХМЛ) Цикл
		НачатьТранзакцию();
		Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML); 
		Если Не Данные = Неопределено Тогда
			Попытка
				Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; 
				Данные.ОбменДанными.Загрузка = Истина; 
				Данные.Записать(); 
			Исключение
				ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
				ЗаписьЖурналаРегистрации("ИнформационнаяБаза.ОБМЕН", УровеньЖурналаРегистрации.Ошибка,
				Данные.Метаданные(), Строка(Данные), ОписаниеОшибки);
				Прервать;
			КонецПопытки;
			КоличествоЗаписанныхОбъектов = КоличествоЗаписанныхОбъектов + 1;
			Если КоличествоЭлементовВТранзакции > 0 И КоличествоЗаписанныхОбъектов = КоличествоЭлементовВТранзакции Тогда

				ЗафиксироватьТранзакцию();
				НачатьТранзакцию();
				
				КоличествоЗаписанныхОбъектов = 0;
			КонецЕсли;
		КонецЕсли; 
	КонецЦикла;
	
	ЧтениеСообщения.ЗакончитьЧтение();    
	Возврат Узел; 

Показать
43. Serginio 938 04.08.15 14:56 Сейчас в теме
(40)
Объясни мне зачем ты сначала открываешь файл текстовым документом?

Убери это вообще
Текст = Новый ТекстовыйДокумент; 
    Текст.УстановитьТекст(СтрокаСообщения);
    Текст.Записать(ПутьКФайлу); 
44. ugr_88 04.08.15 15:02 Сейчас в теме
(43) Serginio,
теперь так...,потом?
ЧтениеХМЛ = Новый ЧтениеXML;
	ЧтениеХМЛ.ОткрытьФайл(СтрокаСообщения);
41. ugr_88 04.08.15 14:30 Сейчас в теме
такой код тоже не работает...
42. Serginio 938 04.08.15 14:54 Сейчас в теме
Начинать транзакцию нужно до цикла
КоличествоЗаписанныхОбъектов = 0;
НачатьТранзакцию();

 Пока ВозможностьЧтенияXML(ЧтениеХМЛ) Цикл



И после цикла

Если КоличествоЭлементовВТранзакции > 0 И КоличествоЗаписанныхОбъектов = КоличествоЭлементовВТранзакции Тогда

                ЗафиксироватьТранзакцию();
 КонецЕсли;
45. Serginio 938 04.08.15 15:08 Сейчас в теме
ПутьКФайлу = "D:\1C\2С.txt";
ЧтениеХМЛ = Новый ЧтениеXML; 
ЧтениеХМЛ.ОткрытьФайл(ПутьКФайлу); 
46. Serginio 938 04.08.15 17:23 Сейчас в теме
42+ После цикла просто
ЗафиксироватьТранзакцию();


Так как транзакция уже открыта
47. ugr_88 05.08.15 07:04 Сейчас в теме
(46) Serginio, Чет я ничего не понимаю
Такой код должен быть?
	ЧтениеХМЛ = Новый ЧтениеXML;
	ЧтениеХМЛ.ОткрытьФайл(ПутьКФайлу);
	ЧтениеСообщения = ПланыОбмена.СоздатьЧтениеСообщения(); 
	ЧтениеСообщения.НачатьЧтение(ЧтениеХМЛ); 
	ПланыОбмена.УдалитьРегистрациюИзменений(ЧтениеСообщения.Отправитель, ЧтениеСообщения.НомерПринятого);
	Узел = ЧтениеСообщения.Отправитель; 
	
	НачатьТранзакцию();

	Пока ВозможностьЧтенияXML(ЧтениеХМЛ) Цикл
		Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML); 
		Если Не Данные = Неопределено Тогда
			Попытка
				Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; 
				Данные.ОбменДанными.Загрузка = Истина; 
				Данные.Записать(); 
			Исключение
				ОписаниеОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
				ЗаписьЖурналаРегистрации("ИнформационнаяБаза.ОБМЕН", УровеньЖурналаРегистрации.Ошибка,
				Данные.Метаданные(), Строка(Данные), ОписаниеОшибки);
				Прервать;
			КонецПопытки;
			КоличествоЗаписанныхОбъектов = КоличествоЗаписанныхОбъектов + 1;
			Если КоличествоЭлементовВТранзакции > 0 И КоличествоЗаписанныхОбъектов = КоличествоЭлементовВТранзакции Тогда

				ЗафиксироватьТранзакцию();
				НачатьТранзакцию();
				
				КоличествоЗаписанныхОбъектов = 0;
			КонецЕсли;
		КонецЕсли; 
	КонецЦикла;
	
	ЗафиксироватьТранзакцию();	
	
	ЧтениеСообщения.ЗакончитьЧтение();    
	Возврат Узел; 

Показать
48. ugr_88 05.08.15 07:16 Сейчас в теме
Я записал выгруженные данные в файл и загрузил его с помощью обработки, хотя код один и тот же, в обработке все загрузилось без проблем и без зависаний.
Че за мистика черт возьми, объясните мне плс...
49. Serginio 938 05.08.15 10:15 Сейчас в теме
(48) Смотри ошибки. Возможно какие то документы (при записи, передЗаписью, подписка на события) используют модули, у которых не стоит галка сервер.
Хотя
Данные.ОбменДанными.Загрузка = Истина;
должна такие вещи отключать.
50. ugr_88 05.08.15 13:15 Сейчас в теме
(49) Serginio,
я удалил весь код в модуле объекта и формы, везде пусто, нет подписок на события.
Выгруженный файл "D:\1C\2С.txt" я делаю с помощью отдельной обработки и все грузит, но когда это в модуле Вебсервиса все зависает, может дело не в 1С а настройках веб сервиса или еще где то???
51. Serginio 938 05.08.15 14:21 Сейчас в теме
а в ЖР ни каих ошибок не пишет? Посмотри журнал событий Windows на сервере
http://windows.microsoft.com/ru-ru/windows/what-information-event-logs-event-viewer#1TC=windows-7
52. ugr_88 06.08.15 06:37 Сейчас в теме
(51) Serginio, есть ли ограничение по времени обработки, возможно по времени обрабатывать уходит больше чем указано где то, если да то где?
Ведь если мало объектов он обрабатывает нормально...и без зависаний и ошибок...
Картинка 1
Картинка 2
53. Serginio 938 06.08.15 10:46 Сейчас в теме
Посмотри в консоли администрирования серверов 1С, что творится с твоим заданием и рабочим процессом. Например
http://infostart.ru/public/274466/

По картинкам ничего не видно. Выход дроби выгрузки.
Или по другому загружать выгружать?
http://1cprogrammistu.ru/88-zapis-i-chtenie-soobscheniy-obmena-v-1s-predpryatii.html
54. ugr_88 06.08.15 10:58 Сейчас в теме
(53) Serginio,
А как дробить???
Перед отправкой, а как?
Есть ли пример?
55. ugr_88 06.08.15 12:45 Сейчас в теме
Я узнал точное кол-во загружаемых объектов
всего 994, думал что документ корявый, но я его удалил, но также застрял на 994 документе...
57. ugr_88 07.08.15 12:21 Сейчас в теме
(56) Serginio, а насчет (55) что можно сказать?
Дело в том что
Все данные я записал в таблицу значений, и все записалось без проблем.
Но когда провожу документы из таб. значений, зависло...

	Пока ВозможностьЧтенияXML(ЧтениеХМЛ) Цикл
		Данные = ПрочитатьXML(ЧтениеСообщения.ЧтениеXML);
		Если Не Данные = Неопределено Тогда
			НоваяСтрока = ТабЗнач.Добавить();
			НоваяСтрока.Заявка = Данные;
		КонецЕсли;
	КонецЦикла;
	ЗафиксироватьТранзакцию();	

	НачатьТранзакцию();
	Для каждого Строчка Из ТабЗнач Цикл
		Данные = Строчка.Заявка;
		Данные.ОбменДанными.Отправитель = ЧтениеСообщения.Отправитель; 
		Данные.ОбменДанными.Загрузка = Истина; 
		Данные.Записать(); 
	КонецЦикла;
Показать
Оставьте свое сообщение

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