Загрузка данных в БП 3.0 (Универсальный обмен данными XML)

Публикация № 1067104

Разработка - Системная интеграция - Обмен через XML

обработка загрузка xml универсальный правила обмена

11
Решение задачи по загрузке данных из имеющегося файла в формате xml в БП 3.0 (в том числе на 1cfresh.com) без доработок

Настоящая статья написана по итогам реального кейса, когда надо было загрузить некий файл, полученный с помощью правил обмена из Конвертации Данных v2 в облачную Бухгалтерию. На локальной версии вопросов вообще не возникает, так как через "Все функции" вызываешь обработку "Универсальный обмен данными в формате XML" и просто используешь ее. В облаке 1cfresh.com такая функция очевидно недоступна, и пришлось искать другое решение.

 

Итак, начнем

Все тексты модулей взяты из конфигурации БП версии 3.0.70.39

Сначала для торопливых (или ленивых; или нелюбопытных - кому что ближе). Загрузку произвольного файла, который корректно написан для конфигурации, можно произвести через пункт меню из раздела Главное - "Загрузка из 1С:Отчётность предпринимателя".

Загрузка из ОП

Все. На этом статью можно было бы и завершить. Но надо же написать раздел и для любопытных ))

Вообще, в Бухгалтерии предприятия на момент написания статьи есть несколько обработок, которые умеют загружать файлы xml.  Вот они:

1. ЗагрузкаДанныхИзЗиК (Синоним Загрузка из ЗиК 7.7)

2. ЗагрузкаДанныхИзЗУП (Синоним Загрузка из ЗУП ред. 2.5)

3. ЗагрузкаДанныхИзОП (Синоним Загрузка из 1С: Отчетность предпринимателя 2.0)

4. ЗагрузкаДанныхИзТиС (Синоним Загрузка из ТиС 7.7)

Не смотря на то, что все эти обработки делают примерно одно и то же, у них различаются обработчики, которые запускаются ПОСЛЕ загрузки, а также проверки, которые запускаются ДО загрузки. Ниже рассмотрим все 4 обработки более подробно

1. Загрузка из ЗиК 7.7

Кто не помнит - была такая конфигурация на платформе версии 7.7 - Зарплата и Кадры. Собственно, она до сих пор поддерживается, ради чего и была сделана эта обработка

Смотрим в модуль менеджера обработки:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура ЗагрузитьДанныеВИБ(ПараметрыВыгрузки, АдресХранилища) Экспорт
	
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xml");
	ДвоичныеДанныеФайла = ПараметрыВыгрузки.ДвоичныеДанныеФайла;
	ДвоичныеДанныеФайла.Записать(ИмяВременногоФайла);
	
	ФайлОбмена = Новый ЧтениеXML();
	ФайлОбмена.ОткрытьФайл(ИмяВременногоФайла);
	
	Попытка
		ФайлОбмена.Прочитать();		
	Исключение
		ТекстСообщения = НСтр("ru = 'Загрузка из файлов данного типа не поддерживается.'");		
		ПоместитьВоВременноеХранилище(ТекстСообщения, АдресХранилища);
		Возврат;
	КонецПопытки;

	ИНН = СокрЛП(Строка(ФайлОбмена.ПолучитьАтрибут("ИНН")));
	КПП = СокрЛП(Строка(ФайлОбмена.ПолучитьАтрибут("КПП")));
	Если НЕ ЗначениеЗаполнено(ИНН) И НЕ ЗначениеЗаполнено(КПП) Тогда
		ТекстСообщения = НСтр("ru = 'При загрузке данных произошла ошибка: файл не содержит сведений об организации.'");
		ПоместитьВоВременноеХранилище(ТекстСообщения, АдресХранилища);
		Возврат;
	Иначе
		Запрос = Новый Запрос;
		Запрос.Текст = "ВЫБРАТЬ
		               |	Организации.Ссылка
		               |ИЗ
		               |	Справочник.Организации КАК Организации
		               |ГДЕ
		               |	Организации.ИНН = &ИНН
		               |	И Организации.КПП = &КПП";
		Запрос.УстановитьПараметр("ИНН", ИНН);
		Запрос.УстановитьПараметр("КПП", КПП);
		Выборка = Запрос.Выполнить().Выбрать();
		Если Выборка.Количество() = 0 Тогда
			ТекстСообщения = НСтр("ru = 'При загрузке данных произошла ошибка: не найдена организация, для которой производится загрузка.'");
			ПоместитьВоВременноеХранилище(ТекстСообщения, АдресХранилища);
			Возврат;
		КонецЕсли;
	КонецЕсли;
	
	ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
	ОбработкаОбмена.РежимОбмена = "Загрузка";
	ОбработкаОбмена.ИмяФайлаОбмена = ИмяВременногоФайла;
	ОбработкаОбмена.РежимОтладкиАлгоритмов = 3;
	ОбработкаОбмена.ФлагРежимОтладкиОбработчиков = Истина;
	ОбработкаОбмена.ФлагРежимОтладки = Истина;
	ОбработкаОбмена.ИмяФайлаВнешнейОбработкиОбработчиковСобытий = "ОбработчикиЗагрузкиИзЗиК";
		
	ОбработкаОбмена.ВыполнитьЗагрузку();
		
	Если ОбработкаОбмена.ФлагОшибки Тогда		
		ТекстСообщения = НСтр("ru = 'При загрузке данных произошла ошибка.'");		
	Иначе		
		ТекстСообщения =  "";
	КонецЕсли;
		
	ПоместитьВоВременноеХранилище(ТекстСообщения, АдресХранилища);
	
КонецПроцедуры

#КонецЕсли

Видим, что 

1) перед загрузкой проверяется наличие атрибутов ИНН и КПП в файле, а также наличие необходимой организации в базе по этим параметрам

2) устанавливается обработка с обработчиками загрузки, а именно "ОбработчикиЗагрузкиИзЗиК"

Смотрим модуль обработки ОбработчикиЗагрузкиИзЗиК (ниже приведен не весь модуль, а только часть, относящаяся к обработке после загрузки):

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ КОНВЕРТАЦИИ ОБЪЕКТОВ

Процедура ПКО_ПослеЗагрузки_ОтражениеЗарплатыВУчете(ФайлОбмена, Отказ, Ссылка, Объект, ПараметрыОбъекта, ОбъектМодифицирован, 
                                           ИмяТипаОбъекта, ОбъектНайден, НаборЗаписей) Экспорт

	Объект.Ответственный = Пользователи.ТекущийПользователь();

КонецПроцедуры

Процедура ПКО_ПослеЗагрузки_СтатьиЗатрат(ФайлОбмена, Отказ, Ссылка, Объект, ПараметрыОбъекта, ОбъектМодифицирован, 
                                           ИмяТипаОбъекта, ОбъектНайден, НаборЗаписей) Экспорт

	Если Не ОбъектНайден Тогда
		Объект.Записать();
		УчетЗарплаты.ЗаполнитьНедостающиеРеквизитыЗагруженныхОбъектов(Объект) 
	КонецЕсли;

КонецПроцедуры

Процедура ПКО_ПоследовательностьПолейПоиска_ФизическиеЛица(НомерВариантаПоиска, СвойстваПоиска, ПараметрыОбъекта, ПрекратитьПоиск, 
                                           СсылкаНаОбъект, УстанавливатьУОбъектаВсеСвойстваПоиска, 
                                           СтрокаИменСвойствПоиска) Экспорт

	Если СвойстваПоиска["ЭтоГруппа"] = Истина Тогда
		СтрокаИменСвойствПоиска = "ЭтоГруппа, Наименование";
	Иначе
		СтрокаИменСвойствПоиска = "ЭтоГруппа, Наименование, ДатаРождения";
	КонецЕсли;

КонецПроцедуры

Процедура ПКО_ПослеЗагрузки_ПрочиеДоходыИРасходы(ФайлОбмена, Отказ, Ссылка, Объект, ПараметрыОбъекта, ОбъектМодифицирован, 
                                           ИмяТипаОбъекта, ОбъектНайден, НаборЗаписей) Экспорт

	Если Не ОбъектНайден Тогда
		Объект.Записать();
		УчетЗарплаты.ЗаполнитьНедостающиеРеквизитыЗагруженныхОбъектов(Объект) 
	КонецЕсли;

КонецПроцедуры

Процедура ПКО_ПослеЗагрузки_Контрагенты(ФайлОбмена, Отказ, Ссылка, Объект, ПараметрыОбъекта, ОбъектМодифицирован, 
                                           ИмяТипаОбъекта, ОбъектНайден, НаборЗаписей) Экспорт

	Если Не ОбъектНайден Тогда
		Объект.Записать();
		Объект.ГоловнойКонтрагент = Объект.Ссылка; 
		Объект.Записать();
	КонецЕсли;

КонецПроцедуры

Т.е. выполняется минимальное изменение объектов. Наверное, если бы не проверка на атрибуты ИНН и КПП, можно было бы и эту обработку использовать для загрузки данных

2. Загрузка из ЗУП ред. 2.5

Смотрим модуль менеджера обработки:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

Процедура ЗагрузитьДанныеВИБ(ПараметрыВыгрузки, АдресХранилища) Экспорт
	
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xml");
	ДвоичныеДанныеФайла = ПараметрыВыгрузки.ДвоичныеДанныеФайла;
	ДвоичныеДанныеФайла.Записать(ИмяВременногоФайла);
	
	ТекстДок = Новый ТекстовыйДокумент;
	
	Попытка
		ТекстДок.Прочитать(ИмяВременногоФайла, КодировкаТекста.UTF8);
	Исключение
		ТекстСообщения = НСтр("ru = 'Загрузка из файлов данного типа не поддерживается.'");		
		ПоместитьВоВременноеХранилище(ТекстСообщения, АдресХранилища);
		Возврат;
	КонецПопытки;
	
	СодержимоеДок = ТекстДок.ПолучитьТекст();
	
	ТекстСообщения = "";
	Если СтрНайти(СодержимоеДок, "БухгалтерияПредприятия 3.0") = 0 
		И СтрНайти(СодержимоеДок, "БухгалтерияПредприятияКОРП 3.0") = 0 Тогда
		ТекстСообщения = НСтр("ru = 'При загрузке данных произошла ошибка.'");
		ТекстСообщения = ТекстСообщения + Символы.ПС + НСтр("ru = 'Данные не предназначенны для 1С:Бухгалтерии 8 ред. 3.0.'");
	КонецЕсли;
	
	Если ТекстСообщения <> "" Тогда
		Если СтрНайти(СодержимоеДок, "ЗарплатаИУправлениеПерсоналом") <> 0 Тогда
			ТекстСообщения = ТекстСообщения + Символы.ПС + НСтр("ru = 'Исправьте программу бухучета в настройках выгрузки в ЗУП, ред. 2.5.'");
			
		КонецЕсли;
		ПоместитьВоВременноеХранилище(ТекстСообщения, АдресХранилища);
		Возврат;
	КонецЕсли;
	
	СодержимоеДок = СтрЗаменить(СодержимоеДок, "ДокументСсылка.ЗарплатаКВыплатеОрганизаций","ДокументСсылка.ВедомостьНаВыплатуЗарплаты");
	СодержимоеДок = СтрЗаменить(СодержимоеДок, "ПеречислениеСсылка.СпособыВыплатыЗарплаты","ПеречислениеСсылка.ВидыМестВыплатыЗарплаты");
	СодержимоеДок = СтрЗаменить(СодержимоеДок, "СпособВыплаты","ВидМестаВыплаты");
	СодержимоеДок = СтрЗаменить(СодержимоеДок, "ЧерезКассу","Касса");
	СодержимоеДок = СтрЗаменить(СодержимоеДок, "ЧерезБанк","ЗарплатныйПроект");
	СодержимоеДок = СтрЗаменить(СодержимоеДок, "ДнейНеВыплаты","УдалитьДнейНеВыплаты");
	
	ТекстДок.УстановитьТекст(СодержимоеДок);
	ТекстДок.Записать(ИмяВременногоФайла, КодировкаТекста.UTF8);
	
	ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
	ОбработкаОбмена.РежимОбмена = "Загрузка";
	ОбработкаОбмена.ИмяФайлаОбмена = ИмяВременногоФайла;
	ОбработкаОбмена.РежимОтладкиАлгоритмов = 3;
	ОбработкаОбмена.ФлагРежимОтладкиОбработчиков = Истина;
	ОбработкаОбмена.ФлагРежимОтладки = Истина;
	ОбработкаОбмена.ИмяФайлаВнешнейОбработкиОбработчиковСобытий = "ОбработчикиЗагрузкиИзЗУП25";
	
	ОбработкаОбмена.ВыполнитьЗагрузку();
	УдалитьФайлы(ИмяВременногоФайла);
	
	Если ОбработкаОбмена.ФлагОшибки Тогда		
		ТекстСообщения = НСтр("ru = 'При загрузке данных произошла ошибка.'");
	Иначе		
		ТекстСообщения =  НСтр("ru = 'Загрузка данных завершена.'");
	КонецЕсли;
	
	
	ПоместитьВоВременноеХранилище(ТекстСообщения, АдресХранилища);
	
КонецПроцедуры

#КонецЕсли

Тут тоже:

1) Перед началом загрузки есть проверка на то, из какой и в какую конфигурацию идет загрузка (а именно из "ЗарплатаИУправлениеПерсоналом"), что уже ограничивает область ее применения.

2) Указана обработка с обработчиками "ОбработчикиЗагрузкиИзЗУП25". 

Полный код обработки здесь помещать нецелесообразно, так его много - почти каждый объект (справочник и документ) подвергается обработке. Но минимальный анализ конечно будет. В большинстве случаев просто проверяется наличие корректной организации:

	Отказ = НЕ Параметры.ОрганизацияСуществует;

Еще для некоторых - устанавливается комментарий и ответственный:

	Объект.Комментарий = СОКРЛП(Объект.Комментарий) + ?(ПустаяСтрока(Объект.Комментарий),""," \ ") + "Перенесено из ЗУП";
	Объект.Ответственный = Пользователи.ТекущийПользователь();

И еще для некоторых устанавливаются необходимые реквизиты (целью настоящей статьи не является полный анализ всех событий, так что не будем вдаваться в подробности)

Таким образом, эту обработку тоже не получится использовать именно для загрузки ПРОИЗВОЛЬНОГО файла

3. Загрузка из 1С: Отчетность предпринимателя 2.0

Смотрим в модуль менеджера обработки:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

#Область СлужебныйПрограммныйИнтерфейс

&НаСервере
Функция ВыполнитьЗагрузкуДанныхВФоне(Параметры, АдресРезультата) Экспорт
	
	ИмяФайлаДанных = ПолучитьИмяВременногоФайла("xml");
	ДвоичныеДанныеФайла = Параметры.ДвоичныеДанныеФайла;
	ДвоичныеДанныеФайла.Записать(ИмяФайлаДанных);
	
	ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать();
	ОбработкаОбмена.РежимОбмена = "Загрузка";
	ОбработкаОбмена.ИмяФайлаОбмена = ИмяФайлаДанных;
	
	ОбработкаОбмена.ВыполнитьЗагрузку();
	
	Если ОбработкаОбмена.ФлагОшибки Тогда		
		ТекстСообщения = НСтр("ru = 'При загрузке данных произошла ошибка.'");
	Иначе		
		ТекстСообщения =  НСтр("ru = 'Загрузка данных завершена.'");
	КонецЕсли;
	
	ПоместитьВоВременноеХранилище(ТекстСообщения, АдресРезультата);
	
	УдалитьФайлы(ИмяФайлаДанных);
	
КонецФункции

#КонецОбласти

#КонецЕсли

Какой замечательный и лаконичный текст! Ничего лишнего. Просто ВыполнитьЗагрузку(). Именно поэтому я рекомендую эту обработку к использованию

4. Загрузка из ТиС 7.7

ТиС - Торговля и Склад. Тоже легендарная конфигурация на платформе версии 7.7, которую до сих пор используют многие клиенты

На самом деле тоже интересный вариант - именно для загрузки торговых документов, так как после их загрузки выполняются обработки по корректному заполнению зависимых реквизитов (будет показано ниже). Для того, чтобы ей воспользоваться, надо включить функциональную опцию - Загрузка данных из конфигурации Торговля и Склад 7.7: Раздел Администрирование, Функциональность, закладка Торговля

Смотрим в модуль менеджера обработки:

#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

Видим, что никаких проверок перед загрузкой не происходит. Однако, обработчик событий указан, это обработка "ОбработчикиЗагрузкиИзТиС"

Если заглянуть в нее, то можно увидеть, что там находится просто очень большое количество кода, которое корректирует документы после загрузки. Приведу пример для документа РеализацияТоваровУслуг:

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

	Если Объект.Ответственный.Пустая() Тогда
		Объект.Ответственный = Пользователи.ТекущийПользователь();
	КонецЕсли;

КонецПроцедуры

Если вникнуть, то можно увидеть, что тут:

1) Заполняются счета учета в шапке документа

2) Заполняются счета учета в табличной части

3) Идет пересчет колонки Цена и Суммы документа

4) Устанавливается Способ зачета авансов

5) Устанавливается Ответственный

Хочу заметить, что для моей задачи этот вариант тоже подходил (я загружал данные из конфигурации Далион). Но так как в ней почему-то отсутствовал реквизит Коэффициент - процедура давала ошибку на блоке 3)

		Если СтрокаТоваров.Коэффициент<> 0 Тогда 
			СтрокаТоваров.Цена       = СтрокаТоваров.Цена / СтрокаТоваров.Коэффициент;
		КонецЕсли;

Поэтому я вернулся обратно к обработке с загрузкой из Отчетности предпринимателя. Но для загрузки торговых документов рекомендую попробовать сначала эту обработку.

Надеюсь, что настоящая статья помогла немого разобраться с тем, как в бухгалтерии можно делать загрузку из файлов xml, сделанных для универсально обмена с помощью правил обмена написанных на Конвертации данных версии 2.

11

Специальные предложения

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение

См. также

Практика XDTO. Нюансы 51

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Обмен через XML

Некоторые практические моменты работы с XDTO. Дополнения к очевидному.

23.09.2019    3241    Yashazz    24       

Запись/Чтение XML, пример обмена по COM соединению 8

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Обмен через XML

Пример работы с XML, запись и чтение, обмен по COM между одинаковыми конфигурациями.

08.09.2019    1220    user5300    6       

Конвертация данных 2.0. Перенос справочника с иерархией групп и элементов 1

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Обмен через XML

Детективная история о том, как при переносе элементы справочника становились не "видимыми".

09.08.2019    1124    chagbig    4       

Конвертация 3.0. Пример доработки: два справочника в один 31

Статья Программист Нет файла v8 КД ERP2 БП3.0 Россия Бесплатно (free) Обмен через XML

Доработка правил конвертации путем расширения конфигурации: номенклатура и характеристика (ERP) в номенклатуру (БП).

15.05.2019    3130    forusing    4       

Обмен данными между УПП 1.3.64.х и БП 3.0 по расписанию через Универсальный обмен данными + План обмена 2

Статья Программист Нет файла v8 УПП1 Россия Windows Бесплатно (free) Обмен через XML Перенос данных из 1C8 в 1C8

Описание доработки конфигурации УПП 1.3.64.х для выполнения обмена данными по расписанию в БП 3.0. через обработку Универсальный Обмен Данными XML и План Обмена.

09.04.2019    2118    mrcamomile    0       

RabbitMQ + Конвертация Данных 3.0 178

Статья Системный администратор Программист Бизнес-аналитик Руководитель проекта Нет файла v8 КД Бесплатно (free) Внешние источники данных Обмен через XML Интеграция Перенос данных из 1C8 в 1C8

Предлагаем ознакомиться с хронологией проекта, проследить ход мыслей от снятия потребностей до реализации, и решить, удалось ли проектной команде найти оптимальное архитектурное решение под конкретный кейс заказчика путем совмещения двух известных, но до сих пор не пересекавшихся технологий, и получилось ли сложить плюсы и устранить минусы каждой из них.

21.03.2019    13672    barelpro    82       

EnterpriseData – часть 2. Процесс выгрузки данных 127

Статья Программист Нет файла v8 v8::УФ Россия Бесплатно (free) Практика программирования Обмен через XML

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018    12602    ids79    27       

Неполадки в работе функционала конфигурации "Бухгалтерия предприятия 3.0" после переноса данных из одной конфигурации в другую через XML 6

Статья Программист Нет файла v8 БП3.0 Россия Бесплатно (free) Обмен через XML

«Подводные камни» в работе конфигурации «Бухгалтерия предприятия 3.0» после переноса данных из одной конфигурации в другую средствами XML.

18.12.2018    2305    faust0923    1       

Новый подход к обмену данными EnterpriseData 203

Статья Программист Нет файла v8 v8::УФ Россия Бесплатно (free) Практика программирования Обмен через XML

Хочу предложить Вашему вниманию цикл статей, посвященных обмену данными через универсальный формат (EnterpriseData или ED).

14.12.2018    21223    ids79    72       

MDM система для централизованного управления справочниками предприятия типовыми средствами 7

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Обработка справочников Обмен через XML

Поставили мне пару недель назад задачу настроить единые справочники номенклатуры во всех базах холдинга. Учитывая количество 1С бухгалтерий, которых в процессе выполнения задачи оказалось 32, и учитывая, что они все разных версий (2.0, 3.0, отраслевые), задача казалась из ряда чистой воды подстава. Но решение с технической точки зрения оказалось простейшим.

27.11.2018    3364    lopatin    5       

EnterpriseData - пример доработки правил конвертации без использования КД 3.0 в расширении конфигурации 118

Статья Программист Нет файла v8 v8::УФ БП3.0 УТ11 Россия Windows Бесплатно (free) Практика программирования Обмен через XML

В статье подробно описан реальный пример доработки обмена данными через EnterpriseData (универсальный формат обмена) между конфигурациями УТ 11.4 и Бухгалтерия 3.0

16.11.2018    18762    ids79    20       

Свертка номенклатуры при выгрузке из Управления Торговлей 11 в Бухгалтерию 3.0 13

Статья Программист Нет файла v8 БП3.0 УТ11 БУ УУ Бесплатно (free) Обмен через XML

Свертка номенклатуры при выгрузке из УТ 11 в Бухгалтерию 3. Используется типовой обмен на базе EnterpriseData

20.07.2018    6584    Kutuzov    1       

Обмен через универсальный формат. Пример нестандартной конвертации данных 82

Статья Программист Нет файла v8 УТ11 Россия Бесплатно (free) Обмен через XML Перенос данных из 1C8 в 1C8

В статье описан небольшой пример обмена данными через EnterpriseData без снятия конфигурации с поддержки. Тестовая площадка: Управление торговлей, редакция 11 (11.4.3.126), версия платформы 8.3.11

18.06.2018    22198    artkor    12       

Конвертация данных. Выгрузка контактной информации из регистра сведений в табличную часть 20

Статья Программист Нет файла v8 КД Бесплатно (free) Обмен через XML

Довольно часто встречается задача выгрузить при помощи «Конвертация данных, редакция 2.1» контактной информации контрагента из «Управление торговлей", редакция 10.3» в «Бухгалтерия предприятия, редакция 3.0». Сложность заключается в том, что в УТ контактная информация хранится в регистре сведений, а в БП - в табличной части справочника «Контрагенты». Предлагаю мое, достаточно простое, решение данной задачи.

11.12.2017    14924    Nicholas    9       

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена) 720

Статья Программист Нет файла v8 КД Бесплатно (free) Перенос данных из 1C8 в 1C8 Практика программирования Обмен через XML

Что такое КД3? Как начать использовать? Полезные дополнения к документации. Что нужно исправить в типовых обработках и конфигурации. Как изменить правила обмена не снимая конфигурацию с поддержки. Как отлаживать правила обмена?

19.11.2017    137068    MaxS    251       

Что такое конвертация данных 1С (статья написана исключительно для новичков) 79

Статья Программист Стажер Нет файла v8 КД Бесплатно (free) Обмен через XML Перенос данных из 1C8 в 1C8

О том, что "Конвертация данных" - мощный инструмент и прочую терминологию, вы прочтёте в любом источнике. Я хочу поделиться кратким пояснением как пользоваться данной конфигурацией. Речь пойдет о версии 2.1.

07.08.2017    29365    perepetulichka    33       

Перенос данных из базы с поврежденными таблицами 15

Статья Системный администратор Программист Нет файла v8 БП2.0 Казахстан БУ УУ Бесплатно (free) Тестирование и исправление Обмен через XML Перенос данных из 1C8 в 1C8

У клиента что-то произошло с жестким диском, что потребовало восстановления данных на нем. Базу 1С вроде бы сохранили, и она даже открылась. Однако при попытке доступа к документу "Платежный ордер, списание денежных средств" база вылетает с ошибкой. Также при получении оборотов за период в целом и по декадам выводились разные цифры. Обработка переноса данных в идентичную конфигурацию не подошла, из-за того, что так же вылетала с ошибкой БД. Ниже опишу мои действия по созданию новой конфигурации.

06.06.2017    12260    ermek6    14       

Работа со схемой XML в модуле обмена от Битрикс 18

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Обмен через XML

Пошаговое руководство «Как добавить поле для выгрузки в модуль обмена для битрикс» Анамнез: УПП 1.3 (Полиграфия, но не суть важно); модуль обмена 1С-Битрикс 5.0.0.5. Допустим, нам нужно добавить в структуру XML-файла поле «Основной менеджер». Поверхностный анализ модуля обмена дает нам информацию о том, что используется пространство имен «urn:1C.ru:commerceml_2».

28.12.2016    11022    ogroup    6       

Регулярные выражения без внешних компонент? Легко! 332

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Обмен через XML

Сложный способ организовать проверку строки с помощью регулярного выражения в 1С. При этом ни одна внешняя компонента не пострадала. Ну и от платформы (Linux, MustDie) - не зависит.

04.03.2016    51647    starik-2005    88       

XDTO на службе у лентяев. Самый простой способ чтения xml 120

Статья Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Обмен через XML

Это статья для лентяев. Никаких описаний свойств и методов xdto здесь нет. Тем более здесь нет описания формата xml. Здесь лишь простой и удобный метод чтения xml для тех, кому нужно получить быстрый результат без углубления в теоретические дебри.

03.11.2015    25352    Ks_83    29       

Отладка конвертации данных 2.1 в конфигурациях, построенных на БСП 2.1 (БП 3.0, УТ 11 etc.) 49

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Распределенная БД (УРИБ, УРБД) Обмен через XML БСП (Библиотека стандартных подсистем)

Отладка процесса выгрузки/загрузки данных при проведении синхронизации в новых конфигурациях 1С может вызвать (у меня вызвала) некоторые затруднения. О них и пойдёт речь.

29.10.2015    31592    NittenRenegade    16       

Оптимизация новой типовой схемы обмена через синхронизацию 15

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Обмен через XML

В новых типовых конфигурациях УТ11 и БП3 вместо прошлой схемы обмена данными используется синхронизация данных. Однако у неё есть свои недостатки. В статье - краткое описание некоторых нюансов новой схемы и приемы для оптимизации работы с ней.

26.09.2015    20495    fixin    13       

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ПостроительDOM 100

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Универсальные обработки Загрузка и выгрузка в Excel Обмен через XML

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ПостроительDOM). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент", а также изображения.

11.09.2014    63206    StepByStep    26       

Обмен данными между информационной базой и мобильным клиентом 26

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Обмен через XML WEB

В каком формате передавать данные между информационной базой на сервере и мобильным клиентом.

04.08.2014    19765    spezc    11       

О встроенных моделях XDTO платформы 1С 52

Статья Программист Нет файла v8 Бесплатно (free) Обмен через XML

Иногда в пакетах, предоставленных самой платформой, можно найти интересное. Служебные объекты, системные перечисления, устройство универсальных коллекций.

13.02.2014    26029    Yashazz    10       

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ЧтениеXML 165

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel Обмен через XML

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ЧтениеXML). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент".

01.11.2013    96673    StepByStep    73       

Отладка правил обмена 7.7, 8 173

Статья Программист Нет файла v8 КД Windows Бесплатно (free) Перенос данных из 1С7.7 в 1C8.X Обмен через XML Перенос данных из 1C8 в 1C8

Отладка правил обмена всегда была для меня больной темой, пока наконец-то не разобрался. В интернете мало тем, посвященных этому, поэтому решил написать небольшую инструкцию по этому поводу. Очень надеюсь, что она будет кому-то полезна. С радостью выслушаю недочеты.

29.10.2013    47577    pyrkin_vanya    70       

Универсальный обмен данными XML через web-сервисы 286

Статья Программист Нет файла v8 Бесплатно (free) Обмен через XML WEB Перенос данных из 1C8 в 1C8

Организация онлайн-обмена данными в формате "Конвертации данных" через web-сервисы

08.10.2013    96930    Mleg    54       

Организация обмена с прочими программами через XML. Имитация двухстороннего обмена без именения конфигурации 20

Статья Программист Нет файла v8 Windows Бесплатно (free) Внешние источники данных Обмен через XML

Настраиваем обмен типовой конфигурации со сторонними базами данных, с функционалом двустороннего обмена

24.04.2013    13118    Stim213    6       

Загрузка из EXCEL в 1С. Список листов EXCEL 34

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Универсальные обработки Загрузка и выгрузка в Excel Обмен через XML

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Методы получения списка листов файлов типа EXCEL. Поддерживаемые типы: *.xls,*.xlsx,*.ods,*.sxc.

30.11.2012    45651    StepByStep    5       

Альтернативные способы работы с XML. Часть 3: Введение в XSL-преобразования или трансформация XML 68

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Математика и алгоритмы Обмен через XML

В современном IT мире XML является универсальным средством хранения и доставки информации. Он широко используется как в настольных приложениях, так и при веб-разработке, поддерживая парадигму MVC (model-view-controller), которая означает использование разделения логики работы с данными, пользовательского интерфейса и их взаимодействия при создании приложений. Т.о. XML с точки зрения MVC является одним из вариантов обеспечения функции взаимодействия между данными и пользовательским интерфейсом.

10.08.2012    26134    1cspecialist    7       

Альтернативные способы работы с XML. Часть 2: Введение в xPath или запросы к XML 55

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Математика и алгоритмы Обмен через XML

В предыдущей статье "Введение в DOM или объектная модель документа" было описано понятие объектной модели документа (DOM), раскрыты плюсы и минусы использования модели при разборе файлов XML, приведено сравнение с построчным последовательным разбором. Были представлены варианты выборки данных с помощью объекта 1С ДокументDOM. Теперь настало время познакомить читателей с самым, на мой взгляд, интересным способом извлечения данных из XML - при помощи языка запросов xPath.

09.08.2012    38427    1cspecialist    13       

Альтернативные способы работы с XML. Часть 1: Введение в DOM или объектная модель документа XML 94

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Обмен через XML Математика и алгоритмы

Данная публикация предваряет ряд статей об альтернативных способах работы с XML. "Альтернативных", потому что как правило работа с XML в 1С ограничивается разбором XML при помощи последовательного чтения - построчного разбора текстового содержимого. А ведь есть еще и другие способы.

08.08.2012    50319    1cspecialist    11       

Этюд: Ручное восстановление таблицы из бэкапа 13

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Тестирование и исправление Обмен через XML

У меня случилась неприятность – в личной базе данных полетела колонка с текстом в таблице, где хранились сообщения, накопленные в почтовой переписке за 5 лет. После запуска CHDBFL текст сообщений исчез во всей таблице, в каждой ее записи! Всё остальное не пострадало. Я решил не восстанавливать базу из архива (с потерей последних нескольких дней), а ручками перенести тексты из бэкапа. Об этом этюд. Он будет полезен в плане демонстрации ручных навыков работы с XML.

12.07.2012    14103    fixin    7       

Как ограничить типовой обмен УТ - БП по дате документов 24

Статья Системный администратор Программист Нет файла v8 БП2.0 УТ10 КД Бесплатно (free) Практика программирования Обмен через XML Перенос данных из 1C8 в 1C8

Довольно часто случается, что бухгалтер требует ограничить выгружаемые из УТ документы по дате (чаще всего только слева). Как это сделать быстро и без внесения изменений в конфигурации? Оказывается достаточно просто и без навыков в программировании.

11.07.2012    23054    borman    15       

Обмен по расписанию типовыми средствами. 81

Статья Программист Нет файла v8 1cv8.cf Россия Windows Бесплатно (free) Распределенная БД (УРИБ, УРБД) Обмен через XML Перенос данных из 1C8 в 1C8

Часто перед интеграторами стоит задача организовать автообмен (по расписанию или при наступлении какого-либо события) данными между различными конфигурациями. В этой статье я попробую изложить простую инструкцию, как это можно сделать средствами, заложенными в типовые конфигурации 1С (ЗУП, БП, УПП и т.д.). Для обмена используется подсистема "Обмен данными" из БСП

20.06.2012    94627    kser87    50       

Конвертация данных 2: передача параметров из выгрузки в загрузку (в том числе и на "ранние" стадии) при обмене из 7.7 в 8.х 48

Статья Системный администратор Программист Нет файла v8 1cv8.cf 1cv7.md КД Бесплатно (free) Перенос данных из 1С7.7 в 1C8.X Обмен через XML

Кратко суть проблемы можно озвучить цитатой из документации: "Передача параметра из источника в приемник доступна только при обмене между информационными базами на платформе 1С:Предприятие 8". Ниже излагается способ передачи глобальных параметров при таком обмене без правки выгруженного из КД 2 модуля выгрузки и без правки самой КД 2.

27.05.2012    37080    andrewks    18       

Коротко про XML 41

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Математика и алгоритмы Обмен через XML

Это даже не статья, а заметки по поводу. Для тех, кто совсем не разбирался с XML, может помочь начать. Попытался изложить самое основное про выгрузку-загрузку объектов...

16.03.2012    15755    1cspbru    6       

Конвертация данных. Создание Субконто в документе ОперацияБух или «А план видов характеристик чудесным образом, но обрабатывается». 76

Статья Системный администратор Программист Нет файла v8 БП2.0 КД Россия Бесплатно (free) Обработка документов Обмен через XML Перенос данных из 1C8 в 1C8

Необходимо при помощи конфигурации «Конвертация данных» в базе-источнике сформировать данные (в виде таблицы значений) и перегрузить в документ «ОперацияБух» базы-приемника так, чтобы строки таблицы значений стали строками документа «ОперацияБух» (то есть, формирование ручных проводок по таблице значений). Платформа источника и приемника 8.х. В конфигурации источника план счетов есть, но нет субконто (нет «ПланВидовХарактеристикСсылка.ВидыСубконто…»).

09.03.2012    64409    Dmitri_1C    36       

Заметки о конвертации данных 31

Статья Системный администратор Программист Нет файла v8 КД Бесплатно (free) Обмен через XML Перенос данных из 1C8 в 1C8

Сразу замечу, конвертация данных – не мой конек. Но вот текущий проект находится на стадии интеграции с бухгалтерией, и я столкнулся с огромным ворохом проблем, которые не мешало бы обсудить с коллегами. Я надеюсь, что эти заметки помогут не только мне.

25.02.2012    20362    milkers    32       

Экспорт платежных поручений в казначейство г. Москвы 4

Статья no Нет файла v8 БГУ Государственные, бюджетные структуры Россия Госбюджет Банковские операции Бесплатно (free) Обработка документов Обмен с банком Обмен через XML

Устанавливая конфигурацию "1С: Бухгалтерия государственного учреждения" (1С:БГУ) в одном из детских садиков г. Москвы, столкнулся с проблемой - казначейство не принимает платежные поручения (платежки), выгруженные из 1С:БГУ стандартной обработкой обмена.

09.02.2012    14284    AVK_Alex    1       

Перенос информации из ЗиК в ЗУП через файл данных 27

Статья Системный администратор Программист Нет файла v8 ЗУП2.5 1С7:ЗиК Россия Windows Зарплата Бесплатно (free) Перенос данных из 1С7.7 в 1C8.X Обмен через XML

Если по каким-либо причинам невозможен перенос данных непосредственно из информационной базы «1С:Зарплата и Кадры 7.7», либо Вы собираетесь использовать нетиповые правила выгрузки данных, то необходимо воспользоваться «Помощником перехода на Зарплата и управление персоналом, редакция 2.5». В данной статье описывается, каким образом можно выгрузить данную обработку из справочника «Конвертация из информационных баз 1С:Предприятия 7.7» конфигурации 1С:Зарплата и управление персоналом.

19.09.2011    28520    Nicholas    16       

Загрузка распределённых сумм оплаты страховых взносов в 1С 8 31

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 ЗУП2.5 ЗКБУ Россия БУ НУ Зарплата ФОМС, ПФ, ФСС Бесплатно (free) Внешние источники данных Обмен через XML

Загрузка подготовленных во внешних, по отношению к 1С, программах сумм оплаты страховых взносов в документ "Сведения о страховых взносах и стаже застрахованных лиц (СЗВ-4, СЗВ-6) ". Добавлена обработка по замене информации в табличной части документа "Сведения о страховых взносах и стаже застрахованных лиц (СЗВ-4, СЗВ-6)".

23.07.2011    6904    167    Kapitan69    22       

Выгрузка документа в XML произвольной структуры (+пример для выгрузки в ECOD) 63

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v8 1cv8.cf Бесплатно (free) Обмен через XML Обработка документов

Обновлено до версии 0.7. Добавлена функция пропуска заголовков табличных частей. Исправлены баги в версии без сохранения (если стандартная версия выдает ошибки)

15.05.2011    41592    1429    anig99    38