INFOSTART EVENT 2018 EDUCATION

Второй тур голосования за доклады.
Окончание 5 сентября.

Артемов Сергей | Начальник отдела интеграции | БКС Технологии

«История роста и работы команд 1С в условиях HighLoad и BigData»

Хочу поделиться о том как влияют требования бизнеса на изменения в условиях высоконагруженных систем на базе 1С объемом в терабайбы в год и с потоками в миллионы сообщений в сутки. Как командам 1С успевать за изменениями в условиях взрывного роста компании и при этом успевать делать эффективней себя. О том как непрерывно расти профессионально и использовать экспертный подход. А также пример того, как мы решили покрыть тестами наш легаси код. Список тезисов доклада: - Матрица зрелости процессов организации. - Инфраструктура 1С при 24/7/365, HighLoad, BigData. Как цели накладывают отпечаток на инфраструктуру. - Монолиты 1С и Микросервисы - Интеграция: Шины, объемы, регламенты, моральное устаревание архитектуры и новые вызовы. - Как цели накладывают отпечаток на процессы. Agile Spotify. - Как ускорить разработку. Сколько нужно программистов если нужно сделать 2 раза больше фич. - Как ускорить разработку. Анализ потерь. - Как все начали разговаривать на одном языке. - Процессы разработки: Подпольная автоматизация как желание сделать лучше. - Процессы разработки: Пирамида тестирования в голове 1С-ника. - Процессы разработки: Свое тестовое казино в 1С. - Пример перехода на 8.3. Цели. Варианты. Риски. - Пример перехода на 8.3. Регресс. OScript. Git. - Переход на 8.3 Дымовое тестирование и автоматизированное пользовательское тестирование. - Своя подсистема "Статистика" на инструмент.

1. dndw 25.11.16 11:38 Сейчас в теме

Обмен 1с:УП и 1С:Заказы с измененным составом реквизитов документа заказы

Пытаюсь настроить обмен, 1с:УП и 1С:Заказы с измененным составом реквизитов документа заказы.
Делаю по примеру из книги "Знакомство с разработкой мобильных приложений" (в тестовых базах из приложения к книге все проходит нормально). сами по себе конфигурации похожи как и механизмы использующиеся в них. Но при переносе функционала обмена данными с различной структурой, в 1с:УП и 1С:Заказы появляются ошибки обмена "Ошибка при вызове метода контекста(ЗакончитЧтение)".
Добавленный код:
Процедура ЗаписатьДанные(ЗаписьXML, Данные) Экспорт
    
  	
	Если
		ТипЗнч(Данные) = Тип("ДокументОбъект.Заказ") Тогда
		ЗаписатьXMLЗаказы(ЗаписьXML, Данные);		
	Иначе
		// Записываем данные с помощью стандартного метода
		ЗаписатьXML(ЗаписьXML, Данные);
	КонецЕсли
	

КонецПроцедуры
Показать

Процедура ЗаписатьXMLЗаказы(ЗаписьXML, Заказ)Экспорт
	
	 Записываем начало элемента XML
	ЗаписьXML.ЗаписатьНачалоЭлемента("CatalogObject.Заказы.Вручную");
	
	 //Ссылка
	ЗаписатьXML(ЗаписьXML, Заказ.Ссылка.УникальныйИдентификатор(), "Ref", НазначениеТипаXML.Явное);
	
	ЗаписатьXML(ЗаписьXML, Заказ.ПометкаУдаления, "DeletionMark", НазначениеТипаXML.Явное); 
	
	ЗаписатьXML(ЗаписьXML, Заказ.Дата, "Date", НазначениеТипаXML.Явное);
	
	ЗаписатьXML(ЗаписьXML, Заказ.Номер, "Number", НазначениеТипаXML.Явное);
	
	ЗаписатьXML(ЗаписьXML, Заказ.Проведен, "Posted", НазначениеТипаXML.Явное);
	
	// Клиент
	ЗаписатьXML(ЗаписьXML, Заказ.Покупатель, "Покупатель", НазначениеТипаXML.Явное);
	/
	// Склад
	ЗаписатьXML(ЗаписьXML, Заказ.Склад, "Склад", НазначениеТипаXML.Явное);
	// Валюта
	ЗаписатьXML(ЗаписьXML, Заказ.Валюта, "Валюта", НазначениеТипаXML.Явное);
	// ВидЦен
	ЗаписатьXML(ЗаписьXML, Заказ.ВидЦен, "ВидЦен", НазначениеТипаXML.Явное);
	// Организация
	ЗаписатьXML(ЗаписьXML, Заказ.Организация, "Организация", НазначениеТипаXML.Явное);
	// СостояниеЗаказа
	ЗаписатьXML(ЗаписьXML, Заказ.СостояниеЗаказа, "СостояниеЗаказа", НазначениеТипаXML.Явное);
	// Автор"
	ЗаписатьXML(ЗаписьXML, Заказ.Автор, "Автор", НазначениеТипаXML.Явное);
	
	ЗаписатьXML(ЗаписьXML, Заказ.Сумма, "Сумма", НазначениеТипаXML.Явное);
	 Записываем конец элемента
	ЗаписьXML.ЗаписатьКонецЭлемента();
	
	
КонецПроцедуры
Показать

Функция ПрочитатьДанные(ЧтениеXML) Экспорт
	
	ТипXML = ПолучитьXMLТип(ЧтениеXML);
	Если ТипXML = Неопределено Тогда
		Возврат Неопределено;
	КонецЕсли;
	
	Если ТипXML.ИмяТипа = "CatalogObject.Заказы.Вручную" 
		И ТипXML.URIПространстваИмен = "" Тогда
		// Пытаемся прочесть значение справочника Товары
		Возврат ПрочитатьXMLЗаказы(ЧтениеXML);
	КонецЕсли;
	
	// Пытаемся прочесть значение из объекта ЧтениеXML стандартным образом
	Возврат ПрочитатьXML(ЧтениеXML);
	
КонецФункции
Показать

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

   Заказ.Автор = Автор;
 //     

 //   
 //   
  Заказ.Сумма = ПрочитатьXML(ЧтениеXML);
 //   
	
	
	
	// Проверяем, что текущим узлом является КонецЭлемента
	Если ЧтениеXML.ТипУзла <> ТипУзлаXML.КонецЭлемента Тогда
		ВызватьИсключение "Ошибка чтения XML";
	КонецЕсли;
	
	// Чтение следующего узла для завершение чтения элемента
	ЧтениеXML.Прочитать();
	Возврат Заказ;
	
КонецФункции	
Показать
Ответы
Сортировка: Древо
2. dndw 25.11.16 11:39 Сейчас в теме
Может кто решал подобные задачи?
3. spezc 484 25.11.16 13:15 Сейчас в теме
Этот механизм подходит только для идентичных конфигураций. Думаю вам предстоит долгий путь изучения механизма XDTO. Начните с изучения мобильной конфигураций для УНФ.
4. dndw 25.11.16 13:56 Сейчас в теме
Почему тогда работает в базе из "Знакомство с разработкой мобильных приложений", состав реквизитов различен, а обмен идет нормально?
5. spezc 484 25.11.16 14:06 Сейчас в теме
(4) тогда надо детальнее там глянуть, что там за механизм.
6. dndw 25.11.16 14:16 Сейчас в теме
Почти то же самое, но работает нормально, а 1с:заказы мне в ходе экспериментов удавалось пару раз передать заказ, но потом опять вылезала ошибка при вызове метода контекста(ЗакончитьЧтение).
9. DJDUH 18 25.11.16 18:59 Сейчас в теме
(6) у тебя значит в XML есть такие самозакрывающиеся тегы Типа <ТипДокумента/>, а скорее всего на нём ЧтениеXML и сыпется (
Просмотри файл сам
7. DitriX 2764 25.11.16 16:50 Сейчас в теме
убедитесь что составы планов обмена идентичны
8. dndw 25.11.16 18:50 Сейчас в теме
Состав планов обмена одинаковый, без заказов все выгружается, как только добавляешь заказ сразу "Ошибка при вызове метода контекста (ЗакончитьЧтение)".
Файл обмена при выгрузке получается такой (оставил только ссылку и пометку удаления)

<?xml version="1.0" encoding="UTF-8"?>
<v8msg:Message xmlns:v8msg="http://v8.1c.ru/messages">
	<v8msg:Header>
		<v8msg:ExchangePlan>Мобильные</v8msg:ExchangePlan>
		<v8msg:To>008</v8msg:To>
		<v8msg:From>001</v8msg:From>
		<v8msg:MessageNo>9</v8msg:MessageNo>
		<v8msg:ReceivedNo>31</v8msg:ReceivedNo>
	</v8msg:Header>
	<v8msg:Body>
		<CatalogObject.Заказы.Вручную>
			<Ref xmlns:v8="http://v8.1c.ru/data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="v8:UUID">72912d4c-b299-11e6-a41f-005056c00008</Ref>
			<DeletionMark xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:boolean">false</DeletionMark>
		</CatalogObject.Заказы.Вручную>
	</v8msg:Body>
</v8msg:Message>
Показать
10. dndw 25.11.16 20:38 Сейчас в теме
Весь текст XML привел выше. В нем вроде ничего такого.
11. flyer 204 27.11.16 22:42 Сейчас в теме
если можешь откажись от XDTO отлаживать не очень и вот такие ошибки мешают. используй связку план обмена и http сервисы
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Санкт-Петербург
Полный день

Программист 1С
Москва
Полный день

Удаленный программист 1С (от 800 до 1200 руб в час)
Санкт-Петербург
По совместительству

Программист 1С
Ростов-на-Дону
Полный день

Программист 1С
Москва
зарплата от 65 000 руб.
Полный день