Обмен данными через Web Сервисы

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

Разработка - Обмен данными 1С - Перенос данных из 1C8 в 1C8

Web Сервисы

Ознакомительная статья о том, как загружать\выгружать данные с одной базы в другую, используя Web Сервисы.

Приветствую вас, друзья! Сегодня я хочу поделиться с вами опытом работы с WS (Web-Servis). 
Для работы веб-сервиса должен быть установлен Apache, либо iis.

Для примера, выгрузим таблицу остатков.

1. Создаем Web -Service в удаленной базе , и назовем его "ObmenWS".

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2. После этого необходимо заполнить свойства Web -Сервиса, (Вкладка "Прочее"):

     1) URL Пространства имен - Требуется для идентификации веб-сервиса, по сочетанию его имени и пространству имен, укажем для примера "1.1.1.1";

     2) Пакеты XDTO - это механизм, разработанный фирмой “1С” для обмена данными с другими программными системами посредством XML, позволяющий на уровне языка 1С оперировать не узлами XML, а прикладными понятиями “Сотрудник”, “Счет” и привычными встроенными типами (“ТаблицаЗначений”, “СправочникСсылка” и т.п.). В данном примере не будем создавать собственные пакеты, а будем использовать встроенные пакеты 1С (а именно  - "http://v8.1c.ru/8.1/data/core"). Данный пакет содержит формат "Двоичные данные" - что поможет нам передавать любые типы через хранилище данных.
     3) Имя файла публикации - название файла *.1CWS, имя файла публикации может быть любым, но желательно латинским шрифтом и обязательно с расширением 1cws и желательно должно совпадать с именем каталога на web-сервере. Назовем его как и наш WS - "ObmenWS".

 

 

 

 

 

 

 

 

 

 

 

 


 

Наш Web Сервис готов к работе! Осталось добавить операции в WS для загрузки и выгрузки данных.

2. Создаем операцию с названием "ОстаткиТоваровНаСкладах", и с типом значение -ХранилищеДанных (ValueStorage):

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создаем параметры для нашей операции. Для примера я создам 3 параметра :

     1) НачалоПериода - с типом Дата (Date);

     2) КонецПериода  -  с типом Дата (Date);

     3) Склад  - С типом Строка (String);

Количество параметров не ограничено, можно создавать сколько необходимо для конкретной задачи (Добавить Организацию например или контрагента и тд.) 

 После добавления параметров, приступаем к добавлению программного кода к нашей операции "ОстаткиТоваровНаСкладах". Нажимаем в свойствах операции на "ИмяПроцедуры" и открываем модуль WS. 

Необходимые данные мы получим запросом, и программный код будет иметь следующий вид:

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ТоварыНаСкладахОстаткиИОбороты.Номенклатура.Наименование КАК НоменклатураНаименование,
		|	ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
		|	ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
		|	ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
		|	ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход
		|ИЗ
		|	РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Запись, , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты";
	
	Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
	Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
	Запрос.УстановитьПараметр("Склад", Справочники.Склады.НайтиПоНаименованию(Склад,истина));
	
	ТаблицаРезультата = Запрос.Выполнить().Выгрузить();
	Хранилище = новый ХранилищеЗначения(ТаблицаРезультата);
	Возврат Хранилище;

На этом наш Web Сервис готов! Публикуем наш web сервис и можно подключаться к нему из другой базы.

 

 3. Пример подключения из другой базы  для получения остатков за период по определенному складу:

       1) Создаем внешнюю обработку, в модуле обработки прописываем следующий код:

Процедура ПолучитьТаблицуСДругойБазы()
	НачалоПериода = ТекущаяДата();
	КонецПериода  =  ДобавитьМесяц(ТекущаяДата(),-3);   //3 месяца назад
	Склад = "Основной склад";
	
	Таблица =  ПолучениеДанных(НачПериод,КонПериод,Склад);   //Первый вариант, 
	//Если операций станет много, что бы не писать для каждую операцию свою функцию можно создать одну универсальную
	Таблица =  ПолучениеДанныхОптимизированно("ОстаткиТоваровНаСкладах",НачПериод,КонПериод,Склад); //Второй вариант - оптимизированно!)
	
КонецПроцедуры

Функция ПодключениеКWS()
	МестоположениеWSDL =  			"http://localhost/ObmenWS/ws/ObmenWS.1cws?wsdl" ; //localhost - указываем ваш ip-адрес, где опубликован ws
	ИмяПользователя =   			"Администратор";
	Пароль=             			"Пароль";
	URIПространстваИменСервиса =  	"1.1.1.1 ";
	ИмяСервиса= 					"ObmenWS";
		
	ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL;            
	
	ВСОпределение = Новый WSОпределения(МестоположениеWSDL, ИмяПользователя, Пароль,,,ЗащищенноеСоединение);        	
	ВСПрокси = Новый WSПрокси(ВСОпределение,URIПространстваИменСервиса , ИмяСервиса,ИмяСервиса+"Soap" );     
	
	ВСПрокси.Пользователь = ИмяПользователя;
	ВСПрокси.Пароль = Пароль;
		
	Возврат ВСПрокси;

КонецФункции

Функция ПолучениеДанныхОптимизированно(ИмяФункцииWS, П1 = Неопределено,
						П2 = Неопределено,
						П3 = Неопределено,
						П4 = Неопределено,
						П5 = Неопределено,
						П6 = Неопределено,
						П7 = Неопределено,
						П8 = Неопределено)
						
	Подключение = ПодключениеКWS();
	Данные = Вычислить("Подключение."+ИмяФункцииWS+"("+?(П1=Неопределено,"","П1")
													 +?(П2=Неопределено,"",",П2")
													 +?(П3=Неопределено,"",",П3")
													 +?(П4=Неопределено,"",",П4")
													 +?(П5=Неопределено,"",",П5")
													 +?(П6=Неопределено,"",",П6")
													 +?(П7=Неопределено,"",",П7")
													 +?(П8=Неопределено,"",",П8") + ")");
	Ответ = Данные;
	Возврат Ответ;
КонецФункции

Функция ПолучениеДанных(НачПериод,КонПериод,Склад)
						
	Подключение = ПодключениеКWS();
	Хранилище = Подключение.ОстаткиТоваровНаСкладах(НачПериод,КонПериод,Склад);
	Таблица = Хранилище.Получить();
	Возврат Таблица;
КонецФункции

На этом всё, Спасибо за внимание! 
Открыт для критики и наиболее изящных методов ! (=

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

Лучшие комментарии
37. VPanin56 98 25.03.20 09:02 Сейчас в теме
У нас тоже активно используется Web Сервис, но помимо функций обмена есть еще и процедуры "Выполнения кода" и "Выполнения запроса"

#Область Сериализаци
Функция Десериализовать(XMLСтруктураСериализованногоОбъекта)
	ЧтениеXMLДанных = Новый ЧтениеXML;
	ЧтениеXMLДанных.УстановитьСтроку(XMLСтруктураСериализованногоОбъекта);
	ТЗ = СериализаторXDTO.ПрочитатьXML(ЧтениеXMLДанных);
	ЧтениеXMLДанных.Закрыть();  
	Возврат ТЗ;
КонецФункции

Функция Сериализовать(ОбъектСериализации)
	ДеревоВОбъектеXDTO = СериализаторXDTO.ЗаписатьXDTO(ОбъектСериализации);
	МойXML = Новый ЗаписьXML;
	МойXML.УстановитьСтроку();
	ФабрикаXDTO.ЗаписатьXML(МойXML, ДеревоВОбъектеXDTO);
	Возврат МойXML.Закрыть();
КонецФункции
#КонецОбласти

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

Функция ПолучитьПараметрЗапроса(Строка)
	
	Если Строка.Тип="Вычислить" тогда
		Возврат Вычислить(Строка.Значение);
	ИначеЕсли Строка.Тип="Выполнить" тогда
		ДопПараметры = Строка.ДопПараметры;
		Значение = Неопределено;
		Выполнить(Строка.Значение);
		Возврат Значение;
	Иначе
		Возврат Строка.Значение;
	КонецЕсли;	
	
КонецФункции



Функция ВыполнитьКод(ТекстКода, Параметры)
	
	Ошибка_ = Ложь;
	ТекстОшибки_ = "";
	РезультатВыполнения = Неопределено;
		
	Попытка
		Выполнить(ТекстКода);
	Исключение
		Ошибка_ = Истина;
		ТекстОшибки_ = ОписаниеОшибки();
	КонецПопытки;
	
	Возврат Сериализовать(Новый Структура("Ошибка, ТекстОшибки, Результат", Ошибка_, ТекстОшибки_, РезультатВыполнения));
	
КонецФункции

Показать


Очень удобно использовать для разных задач. Web сервис уже не переписывается, а отправляется в него то что нужно выполнит, или Запрос, или Код 1С
wowik; Andry2004; wunderland; maksal; user5300; +5 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Boyborodin 03.09.19 08:18 Сейчас в теме
Советую делать один параметр входящий типа string и исходящий такой же. В строку кидать текст JSON. В JSON можно запаковывать любое количество параметров, даже таблицы значений. Без муторной работы с XDTO, а сама запаковка и распаковка занимает несколько строк кода. Так же если при доработке придется добавлять входные/выходные параметры сам web-сервис можно уже не перенастраивать.
wunderland; user774630; danjer74; duhin; ybatiaev; hakerxp; Jeka44; Lazio; kuzyara; marat3581525; TODD22; Robbi; wowik; Jokemas; TeMochkiN; Glebb_NSK; Fox-trot; user5300; +18 2 Ответить
2. user5300 543 03.09.19 08:22 Сейчас в теме
(1) Хорошая идея! Спасибо за совет !)
3. AlX0id 03.09.19 08:37 Сейчас в теме
(1)
Тут только один нюанс - в пользу использования того же XDTO - не будет автоматической проверки корректности того, что же вы запихали в этот JSON..
В принципе, сам использую похожий способ - для работы с внешними источниками - на вход беру строки xml, кодированные в base64. Не очень красиво, зато внешним кодерам удобно и понятно.
Andreeei; +1 Ответить
6. Boyborodin 03.09.19 09:02 Сейчас в теме
(3)

Запаковываем

	 ЗаписьJSON = Новый ЗаписьJSON;
	 ЗаписьJSON.УстановитьСтроку();
	 СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON, СтруктураДанных, НазначениеТипаXML.Явное);
	 StringJS = ЗаписьJSON.Закрыть();


Распаковываем

	ЧтениеJS = Новый ЧтениеJSON;
	ЧтениеJS.УстановитьСтроку(StringJS);
	СтруктураДанных = СериализаторXDTO.ПрочитатьJSON(ЧтениеJS);
	ЧтениеJS.Закрыть();


JSON автоматически всё сериализует. Удобнее чем XML. Можно еще пожать, если данные объемные.
wunderland; duhin; ybatiaev; user5300; wowik; +5 Ответить
7. user5300 543 03.09.19 09:05 Сейчас в теме
(6) Кстати, а если структура баз отличается ? Допустим если выгрузить физ лица с ЗУП в УТ, у них же разные структуры... Реквизиты и тд., Ошибки не будет ?)
8. Boyborodin 03.09.19 09:14 Сейчас в теме
(7)

Ошибка будет. Тем более такие обмены обычно делают в нетиповых конфигурациях. Для типовых есть типовые инструменты. В структуру лучше кидать примитивные параметры: дата, число, строка, или таблицу значений из примитивных данных.

Для вашего примера:

СтруктураДанных = Новый Структура;
СтруктураДанных.Добавить("КонецПериода", КонецПериода);
СтруктураДанных.Добавить("НачалоПериода", НачалоПериода);
СтруктураДанных.Добавить("Склад", Склад);


И не забыть после успешного завершения процедуры вернуть какой-нибудь признак что всё прошло хорошо.
ybatiaev; user5300; +2 Ответить
10. AlX0id 03.09.19 09:26 Сейчас в теме
(6)
Я не про удобство - автоматического контроля состава данных внутри JSON нет.
XML, кстати, я в итоге разбираю с помощью XDTO все равно.
31. new_user 181 07.01.20 15:54 Сейчас в теме
(1) только в таком случае wsdl о том что Вы в этот входящий параметр передадите не расскажет( А вроде веб-сервис в том числе для wsdl и используется. Иначе Вам где то описание сервиса размещать надо и руками описывать что можно в этот входящий параметр положить.
user5300; +1 Ответить
4. Fox-trot 118 03.09.19 08:44 Сейчас в теме
каталог базы должен иметь полные права

как тебя понимать, саид? (с)
5. user5300 543 03.09.19 08:50 Сейчас в теме
(4) Забыл..., если база файловая- каталог базы должен иметь полные права
9. Fox-trot 118 03.09.19 09:24 Сейчас в теме
(5) может все же пользователь должен иметь полные права? тогда какой пользователь?
11. user5300 543 03.09.19 09:51 Сейчас в теме
(9)
Прикрепленные файлы:
Fox-trot; +1 Ответить
27. Сто27001 05.09.19 08:12 Сейчас в теме
(4) Если с русского перевести на русский, то "каталог базы должен иметь полные права" означает, что пользователь ОС от имени которого запущены IIS или Apache, должен иметь полные права на каталог в котором расположена публикуемая файловая база.
user5300; elizarovs; Fox-trot; +3 Ответить
12. ellavs 768 03.09.19 11:12 Сейчас в теме
Довольно часто пользуемся подобным функционалом для обмена данными между базами (только используем HTTP-сервисы). Это в основном, когда мы не хотим пускать пользователей в основную базу, но им нужно поработать с данными. Есть другая конфигурация, например, не содержащая ПДн, куда доступ предоставлен бОльшему количеству пользователей, и в ней получаем данные из основной БД через сервис.
13. logos 184 03.09.19 16:53 Сейчас в теме
А зачем в этой ситуации вообще SOAP? Зачитывание wsdl, сериализация в ХЗ, обратная десериализация. Про json уже написали, так давайте последовательно советовать и http-сервис. Передаем в одном из полей метод, в другом данные. Сериализация/десериализация отлично делается методами ПрочитатьJSON, ЗаписатьJSON. И никакого XDTO вообще не нужно.
ybatiaev; sevushka; +2 Ответить
17. Ndochp 103 04.09.19 09:16 Сейчас в теме
(13)ХДТО нужен исключительно для автоматической проверки входящих данный на соответствие формату. К джейсону такое универсально на коленке не прикрутить.
Andreeei; user5300; +2 Ответить
18. logos 184 04.09.19 09:18 Сейчас в теме
(17) Какая в данном сценарии может быть проверка? Описывается получение произвольных данных запросом (базовых типов). Считаю, что использование SOAP имеет смысл только при работе с "ненадежным" клиентом, от которого можно получить "непредсказуемый" input. А когда пишешь свои сервисы - это избыточная перестраховка, сильно усложняющая разработку.
ybatiaev; Fox-trot; +2 Ответить
19. Ndochp 103 04.09.19 09:36 Сейчас в теме
(18) У меня 8 видов баз под контролем. И они периодически обновляются. Вот тебе и источник непредсказуемого инпута.
Ты же не будешь правила писать для превращения документа в джейсон, правильно? ты сделаешь платформенную сериализацию.
А на стороне приёмника уже сделаешь какой-то алгоритм разбора, если базы не совпадают.

И вот, то что писали в "Реквизит" начали писать в "Реквизит подробно", а в "Реквизит" стали писать укрупненные типы.
В случае SOAP алгоритм на принимающей стороне долбанется от новых реквизитов в которые переложили нужные тебе данные и ты полезешь разбираться. А в разборе джейсона ты проигнорируешь "Реквизит подробно", привычно заберешь все из "Реквизит", и получишь неверный документ.
Vladimir Litvinenko; user5300; +2 Ответить
20. logos 184 04.09.19 12:39 Сейчас в теме
(19) Давайте всё таки на Вы. Если "левая рука" не знает, что делает правая - никто не запрещает использовать SOAP. Однако, в контексте публикации автора, http сервис и JSON сериализатор дадут более аккуратный и более быстрый код.
ybatiaev; +1 Ответить
21. Ndochp 103 04.09.19 13:00 Сейчас в теме
(20) Давайте на Вы.
Левая рука - Вы. Правая - 1С. Обмена между самописными базами я за свою карьеру не встречал, обычно нетеленка обменивается с доработанной типовой, или две доработанных между собой. В нетленка - 1С непредсказуемость только на стороне приёмника, а вот в 1С-1С - с обеих сторон.

У автора вообще контекста нет. У него есть инструмент и пример использования. Ясно, что код без проверок будет быстрее и компактнее. Как и подшипник без смазки крутится быстрее. Только вот в реальной жизни подшипники смазывают, а в коде делают проверки. И SOAP даёт для них автоматизированный инструмент, а Json оставляет все на откуп пользователю.
В итоге в реальности на до исходить из своего контекста - передача ограниченного числа слабосвязанных объектов легко делается на Jsonе, кусочек базы данных - надежнее на XDTO.
Vladimir Litvinenko; +1 Ответить
22. logos 184 04.09.19 13:44 Сейчас в теме
(21) Левая рука - клиент, правая - сервер. Я не вижу, где тут код от ООО "1С-Софт", в случае, если мы пишем свой веб-сервис. Если Вы предоставляете сервер сторонним клиентам - я обеими руками за SOAP, когда ошибка в рассинхронизации протокола - это просто ошибка разработчика(ов) информационной системы. Впрочем, настаивать не буду, хотите SOAP - я не в праве Вам этого запретить.
23. Ndochp 103 04.09.19 15:34 Сейчас в теме
(22) Код от 1С вот тут: СериализаторXDTO.ЗаписатьJSON (http://v8.1c.ru/o7/201501json/index.htm) Соответственно в поле "Значение" будет то, что написала 1С.
24. logos 184 04.09.19 16:00 Сейчас в теме
(23) А я предлагаю пользоваться другим сериализатором:
Глобальный контекст (Global context)
ЗаписатьJSON (WriteJSON)
25. Ndochp 103 04.09.19 16:13 Сейчас в теме
(24)
В формате JSON допускается записывать только значения следующих типов:
Строка,
Число,
Булево,
Дата (преобразованная в строку),
Массив,
ФиксированныйМассив,
Структура,
ФиксированнаяСтруктура,
Соответствие,
ФиксированноеСоответствие.

Успехов в передаче документов.
26. logos 184 04.09.19 16:37 Сейчас в теме
(25) Передаются структуры/соответствия и массивы. К этим типам приводятся необходимые получателю объекты. Вы же не будете утверждать, что XDTO (xsd) у Вас волшебным образом самостоятельно заполняется? Платформенным сериализатором многое не передать. В любом случае придётся заполнять "объект xdto".
30. new_user 181 07.01.20 15:49 Сейчас в теме
(13) В целом - согласен, только:

ЗаписатьJSON
- не может сериализовать таблицу значений, а:

СериализаторXDTO.ЗаписатьJSON
- может.
14. EMelihoff 03.09.19 16:55 Сейчас в теме
у меня наверное профессиональная деградация, при виде переменной "Хранилище" думал минут 5 причём тут хранилище ))
15. nbeliaev 04.09.19 06:13 Сейчас в теме
Методы, параметры веб-сервиса на кириллице.
Логин и пароль также.
Если дергать такой веб-сервис не из платформы 1С, то будут проблемы.
16. user5300 543 04.09.19 07:45 Сейчас в теме
(15) Это пример обмена между базами ) Конечно можно все переделать на латиницу для работы с другими сервисами )
28. alexeypenzin 2 09.10.19 11:08 Сейчас в теме
Статья отличная, но хочется продолжения.
На практике, в основном, нужно выгружать в базу приемник только измененные объекты. Не совсем понятно как это реализовать с помощью веб-сервисов. Как в данном обмене применить планы обмена? Когда и где очищать таблицу измененных объектов?

Коротко вопрос: На клиенте получили данные, как на сервере узнать что клиент принял данные и на сервере удалить данный объект из таблицы измененных объектов?
29. user5300 543 09.10.19 11:49 Сейчас в теме
(28) Спасибо, статья для общего ознакомления )

Выгрузку и загрузку объектов можно осуществить разными способами, в основном используется чтение\запись xml между нетиповыми конфигурациями , далее можно прикрутить планы обмена под свои задачи. Для обмена между типовыми - придется использовать расширения.

Функции веб сервиса выполняются на сервере, в случае возникновении ошибки - система сообщит об этом ) можно также добавить функцию проверки после записи либо сразу, например:
Функция ЗаписьДокумента(Параметры)
  попытка
    док = новыйДокумент;
    Док.Записать(Проведение);
    Ответ = "Создан новый док: + Док.Ссылка;
  Исключение
    Ответ = "ошибка: "  + ОписаниеОшибки();
  КонецПопытки
  Возврат Ответ;
Конецфункции
Показать

//Пример оповещения пользователя...

Возможно в будущем будет разбор более конкретной задачи с примерами и обработками ...)
32. frkbvfnjh 593 25.03.20 06:53 Сейчас в теме
На мой взгляд Web-сервисы - это самое ужасное, что можно использовать для обмена. Лично я написал на http-сервисах - куда стабильнее и более гибко. При плохом интернете или большом объеме данных web-сервис тупо умирает, часто вызывая блокировки. Web-сервисы сложны в разработке для новичков и вообще в 1С это какая то не-до-технология. Кроме того, при использовании http-сервисов, можно еще и предварительно сжать данные, я уж не знаю как вы это сделаете в web-сервисе.
33. user5300 543 25.03.20 08:05 Сейчас в теме
(32) в веб сервисе тоже можно сжимать данные типовыми средствами например )

Возврат новый ХранилищеДанных(ТабличнаяЧасть,Новый СжатиеДанных(9));
35. frkbvfnjh 593 25.03.20 08:09 Сейчас в теме
34. user5300 543 25.03.20 08:06 Сейчас в теме
(32) У каждого свои подходы для решения задач, это всего лишь пример того как можно использовать веб сервисы )
36. frkbvfnjh 593 25.03.20 08:10 Сейчас в теме
(34) да согласен, но боль от использования веб-сервисов не утихнет никогда
38. Sergik_D 18 25.03.20 18:04 Сейчас в теме
(32) У меня 1с обменивается с приложением на Android через Web-сервисы. Думал переходить на HTTP, но не нашел информации о преимуществах. Если есть такая информация, буду благодарен за ссылки. Вот это прям моё: "При плохом интернете или большом объеме данных web-сервис тупо умирает, часто вызывая блокировки"
37. VPanin56 98 25.03.20 09:02 Сейчас в теме
У нас тоже активно используется Web Сервис, но помимо функций обмена есть еще и процедуры "Выполнения кода" и "Выполнения запроса"

#Область Сериализаци
Функция Десериализовать(XMLСтруктураСериализованногоОбъекта)
	ЧтениеXMLДанных = Новый ЧтениеXML;
	ЧтениеXMLДанных.УстановитьСтроку(XMLСтруктураСериализованногоОбъекта);
	ТЗ = СериализаторXDTO.ПрочитатьXML(ЧтениеXMLДанных);
	ЧтениеXMLДанных.Закрыть();  
	Возврат ТЗ;
КонецФункции

Функция Сериализовать(ОбъектСериализации)
	ДеревоВОбъектеXDTO = СериализаторXDTO.ЗаписатьXDTO(ОбъектСериализации);
	МойXML = Новый ЗаписьXML;
	МойXML.УстановитьСтроку();
	ФабрикаXDTO.ЗаписатьXML(МойXML, ДеревоВОбъектеXDTO);
	Возврат МойXML.Закрыть();
КонецФункции
#КонецОбласти

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

Функция ПолучитьПараметрЗапроса(Строка)
	
	Если Строка.Тип="Вычислить" тогда
		Возврат Вычислить(Строка.Значение);
	ИначеЕсли Строка.Тип="Выполнить" тогда
		ДопПараметры = Строка.ДопПараметры;
		Значение = Неопределено;
		Выполнить(Строка.Значение);
		Возврат Значение;
	Иначе
		Возврат Строка.Значение;
	КонецЕсли;	
	
КонецФункции



Функция ВыполнитьКод(ТекстКода, Параметры)
	
	Ошибка_ = Ложь;
	ТекстОшибки_ = "";
	РезультатВыполнения = Неопределено;
		
	Попытка
		Выполнить(ТекстКода);
	Исключение
		Ошибка_ = Истина;
		ТекстОшибки_ = ОписаниеОшибки();
	КонецПопытки;
	
	Возврат Сериализовать(Новый Структура("Ошибка, ТекстОшибки, Результат", Ошибка_, ТекстОшибки_, РезультатВыполнения));
	
КонецФункции

Показать


Очень удобно использовать для разных задач. Web сервис уже не переписывается, а отправляется в него то что нужно выполнит, или Запрос, или Код 1С
wowik; Andry2004; wunderland; maksal; user5300; +5 Ответить
39. hoyo 07.04.20 09:47 Сейчас в теме
(37) Если не сложно, приведите пожалуйста пример, как вызвать "ВыполнитьЗапрос" на стороне базы, в которую мы хотим получить данные, а то не очень понятно, в каком виде должны передаваться Параметры, например.
40. VPanin56 98 07.04.20 15:34 Сейчас в теме
Вот пример куска кода из самописки по обслуживанию БАЗ. Кусок где именно вызывается "Выполнить Запрос" не нашел. Но при вызове "Выполнить Код" так же передается и текст запроса и параметры для этого запроса. Оптимально использовать именно его.
WebСервисБух - название нашего расширения подключенного в Бух базах и опубликованного.
.....
....
		Параметры = Новый СТруктура;
		Параметры.Вставить("ДатаВключенияПросрочкиПользователей", Дата("20180101"));
		Параметры.Вставить("ПросрочкаРаботыВПрограммеДоЗапрещенияВхода", Константы.ПросрочкаРаботыВПрограммеДоЗапрещенияВхода.Получить());

		ДеревоВОбъектеXDTO = СериализаторXDTO.ЗаписатьXDTO(Параметры);
		МойXML = Новый ЗаписьXML;
		МойXML.УстановитьСтроку();
		ФабрикаXDTO.ЗаписатьXML(МойXML, ДеревоВОбъектеXDTO);
		Параметры = МойXML.Закрыть();
		
			Пользователь = Константы.ПользовательДляПодключения.Получить();
			Пароль		 = Константы.ПарольДляПодключения.Получить();
			
			ВСОпределение = Новый WSОпределения(База.WSСсылка, Пользователь, Пароль);
			Соединение = Новый WSПрокси(ВСОпределение, "WebService1", "WebСервисБух", "WebСервисБухSoap");

			Соединение.Пользователь = Пользователь;
			Соединение.Пароль 		= Пароль;

			ОтветWS = Соединение.ВыполнитьКод(ТекстКонтрольАктивностиПользователей(), Параметры);

			ЧтениеXMLДанных = Новый ЧтениеXML;
			ЧтениеXMLДанных.УстановитьСтроку(ОтветWS);
			Ответ = СериализаторXDTO.ПрочитатьXML(ЧтениеXMLДанных);
			ЧтениеXMLДанных.Закрыть();
			
			Если Ответ.Ошибка тогда
				ЗаписьЖурналаРегистрации("РегЗаписьЖурналаРегистрации", УровеньЖурналаРегистрации.Ошибка,,, СокрЛП(База)+" : "+Ответ.ТекстОшибки);
			КонецЕсли;

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

	Возврат ТекстКода;
	
КонецФункции

Показать
41. VPanin56 98 07.04.20 16:12 Сейчас в теме
Или вот кусок кода по формированию параметров для передачи

Таб = Новый ТаблицаЗначений;
			Таб.Колонки.Добавить("Ключ");
			Таб.Колонки.Добавить("Тип");
			Таб.Колонки.Добавить("Значение");
			Таб.Колонки.Добавить("ДопПараметры");
			
			// ОРГАНИЗАЦИЯ
			Стр = Таб.Добавить();
			Стр.Ключ = "Организация";
			Если СокрЛП(ОфициальнаяОрганизация.ВнешняяСсылка) = "" Тогда
				Стр.Тип = "Выполнить";
				Текст = "Значение = Справочники.Организации.НайтиПоНаименованию(ДопПараметры.Организация)";
				ДопПар = Новый Структура("Организация", СокрЛП(ОфициальнаяОрганизация.Наименование));
				Стр.ДопПараметры = ДопПар;
			Иначе
				Стр.Тип = "Выполнить";
				Текст = "Значение = ЗначениеИзСтрокиВнутр(ДопПараметры.ВнешняяСсылка)";
				ДопПар = Новый Структура("ВнешняяСсылка", СокрЛП(ОфициальнаяОрганизация.ВнешняяСсылка));
				Стр.ДопПараметры = ДопПар;
			КонецЕсли;
			Стр.Значение = Текст;
			
			// НачалоПериода
			Стр = Таб.Добавить();
			Стр.Ключ = "НП";
			Стр.Тип = "Дата";
			Стр.Значение = НачалоПериода;
			
			// НачалоПериода
			Стр = Таб.Добавить();
			Стр.Ключ = "КП";
			Стр.Тип = "Дата";
			Стр.Значение = КонецДня(КонецПериода);
Показать
42. Shurkec 30.08.20 11:54 Сейчас в теме
Благодарю! Очень полезная информация.
user5300; +1 Ответить
Оставьте свое сообщение

См. также

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    20388    m-rv    17    

Конвертация данных 2. Использование подключаемых обработок в правилах обмена. Конвертация дерева значений

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

Разработка правил обмена с использованием подключаемых обработок. В качестве примера рассмотрена реальная задача конвертации дерева значений.

15.06.2020    3458    Drivingblind    8    

Конвертация данных 2.1. Методика переноса остатков

Перенос данных из 1C8 в 1C8 v8 1cv8.cf УУ Бесплатно (free)

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

12.06.2020    5455    aximo    17    

Механизм XDTO

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

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

12.05.2020    5393    totchaz    4    

Повышаем эффективность разработки правил обмена Промо

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    28470    olegtymko    47    

Механизмы проведения документов при обмене по универсальному формату

Перенос данных из 1C8 в 1C8 БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Как проводятся документы при обмене по универсальному формату. Пример доработки типовых правил обмена с переносом состояния документа: проведен/не поведен/пометка удаления.

04.03.2020    4908    partizand    6    

Односторонний обмен ЗУП и БП

Перенос данных из 1C8 в 1C8 v8 БП3.0 ЗУП3.x Россия Бесплатно (free)

Односторонний обмен из ЗУП в БУХ

29.02.2020    5319    VAAngelov    14    

Автоматический обмен при появлении файла, по регламентному заданию создаёт файл выгрузки, даже если файл загрузки не появлялся

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Заметил, что "Автоматический обмен при появлении файла" каждый раз создаёт файл выгрузки данных, даже если файл для загрузки данных не появлялся. Данный код проверит, что файл появился, только после чего создаст файл выгрузки данных.

20.02.2020    2854    wau8824ru    4    

Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть І: Справочники Промо

Перенос данных из 1C8 в 1C8 v8 Бесплатно (free)

Сейчас все чаще интеграции различных конфигураций проектируются через HTTP-сервисы - они и работают быстрее, и "войти" в режим отладки гораздо проще, тем самым обойдя "черный ящик" универсального обмена через xml, например. Более года назад я начал работать в компании, в которой разработчики работали с конфигурациями 1С в режиме совместимости еще 8.2.16 (менять режим совместимости в типичных базах мы не хотели) - а как Вы наверное знаете, если интересовались HTTP-сервисами в 1С, их использование в режиме совместимости 8.3.4 и ниже недопустимо - и здесь я уже не надеялся на разработку и использование HTTP-сервисов. Но позже меня заинтересовал такой "сервис" как REST интерфейс OData, так как его можно использовать не меняя режим совместимости конфигурации - именно он и стал для меня идеальным вариантом решения "нетривиальных" задач.

11.05.2018    23306    V.Stavinsky    11    

Бесшовная интеграция через обмен по правилам - миссия выполнима

Практика программирования Интеграция Перенос данных из 1C8 в 1C8 v8 ДО ERP2 Бесплатно (free)

При организации работы с договорами в ERP 2, с помощью бесшовной интеграции с Документооборотом, «типовой» методикой является создание договоров в ЕРП. После создания договора в ЕРП, пользователь «отправляет» договор в ДО по бесшовной интеграции. На практике, весьма часто пользователи хотят видеть обратную схему: вводить договоры в ДО и при этом получать их в ЕРП без «лишних телодвижений». Или даже вводить их независимо в обеих системах – так, чтобы потом «стыковать» по каким-то определенным правилам.

24.01.2020    5125    e-9    2    

Конвертация ставок НДС: из Перечисления в Справочник (правила обмена в конвертации 2.0)

Перенос данных из 1C8 в 1C8 v8 КД Россия НДС Бесплатно (free)

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

09.11.2019    6666    vikulinamari    1    

Настройка синхронизации между конфигурациями Бухгалтерия для Беларуси 2.1 и Управление торговлей для Беларуси 3.4

Перенос данных из 1C8 в 1C8 v8 БП3.0 УТ11 Беларусь Бесплатно (free)

Пошаговое описание настройки типового обмена между конфигурациями Бухгалтерия для Беларуси 2.1 и Управление торговлей для Беларуси 3.4

21.10.2019    7916    Olesia_Matusevich    1    

Взаимодействие между базами 1С через COM Промо

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Рассмотрено много особенностей взаимодействия между базами 1С по COM технологии

10.08.2015    152557    tormozit    65    

Объединение организаций в ЗУП при реорганизации с переносом данных из ЗУП 2.5 в ЗУП 3.1

Зарплата Управление персоналом (HRM) Перенос данных из 1C8 в 1C8 v8 v8::СПР ЗУП2.5 ЗУП3.x БУ Бесплатно (free)

В этой статье описан опыт объединения 2-х организаций при реорганизации в ЗУП 3.1 с переносом данных одной организации из ЗУП 2.5 (релизы баз более или менее свежие, но не самые последние на момент перехода, примерно двух- и трехмесячной давности). За основу было взято решение из этой статьи https://infostart.ru/public/833658/, в которой описан алгоритм решения задачи, за что автору статьи огромная благодарность! Здесь же даны некоторые комментарии и пояснения к алгоритму переноса и объединения, описаны выявленные мною ошибки. Также приведена небольшая инструкция по использованию обработки ирПодборИОбработкаОбъектовБД — она будет полезна для пользователей — «не программистов», впервые работающих в не управляемых формах.

09.10.2019    7994    Neti    2    

EnterpriseData: простой способ защиты данных в базе получателя при одностороннем обмене

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Очень часто бухгалтеры ругаются, когда уже отраженные документы в бухгалтерском учета меняются сотрудниками.

04.10.2019    7190    handscenter    12    

Дозагрузка измененных данных при помощи КД2

Практика программирования Перенос данных из 1C8 в 1C8 v8 Россия Бесплатно (free)

Иногда во время каких-то регламентных действий по обслуживанию базы(например, при обновлении измененной базы на много релизов) требуется обеспечить бесперебойность работы пользователей. Если конфигурации баз до и после идентичны, то тут сам Бог велел воспользоваться обработкой "ВыгрузкаЗагрузкаДанныхXML", либо такой же но с отбором(на Инфостарте есть такая). Но что если конфигурации баз различаются/значительно различаются? Ниже опишу, как вышел из положения я.

12.09.2019    4912    al_zzz    2    

Использование инструментов разработчика для отладки обменов КД 2.0 Промо

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Пара трюков, благодаря которым жить становится намного проще...

05.05.2017    27642    unichkin    3    

Конвертация Данных. Нюансы использования конструкции "НеЗамещатьОбъект = Истина" в обработчике события "ПриЗагрузке"

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

У конвертации данных есть «особенности», которые «пьют кровь» программистов. Эта статья про очередную обнаруженную «особенность».

10.09.2019    10136    ivanek    21    

Выгрузка и загрузка документов с движениями

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

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

02.09.2019    7469    human_new    9    

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Практика программирования Математика и алгоритмы Перенос данных из 1C8 в 1C8 Разработка v8 v8::УФ 1cv8.cf Бесплатно (free)

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

22.08.2019    15151    ids79    8    

Приемы обработки больших данных в 1С Промо

Универсальные обработки Математика и алгоритмы Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С

07.08.2015    67392    tormozit    27    

Перенос дополнительных реквизитов в Конвертации данных 2.0

Перенос данных из 1C8 в 1C8 v8 КД Россия УУ Бесплатно (free)

Пример написания правил обмена (КД 2.0) для переноса дополнительных реквизитов справочника "Номенклатура", в том числе перенос ПВХ с разными типами значений.

13.08.2019    11772    vikulinamari    7    

Синхронизация данных между 1С: ЗУП 3.1 и Бухгалтерией 3.0 через файл

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Публикация описывает последовательность синхронизации данных между 1С: ЗУП 3.1 и Бухгалтерией 3.0 через файл.

23.04.2019    14440    saveliev    6    

Полезные приемы при работе с Конвертацией данных 2.1. Логирование, интерактивное управление, дозаполнение и постпроведение документов

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Некоторые полезные приемы для КД 2.1, которые могут пригодиться как при доработке типовых правил, так и самописных.

22.04.2019    10016    maks_20    9    

XDTO - это просто Промо

Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

С появлением платформы 8.1 фирма “1С” представила механизм, носящий интригующее название XML Data Transfer Objects или, если коротко - XDTO. По традиции, документирование механизма составлял тот, кто хорошо разбирался в вопросе, а стало быть опустил “и так понятные” с его точки зрения моменты. Целью данной статьи (или цикла статей, как получится) стало желание поделиться накопленным опытом. Мне кажется, многие неочевидные вещи в механизме XDTO необходимо осветить получше.

24.12.2012    296138    Evil Beaver    173    

Работа с ComОбъектом 1С 8.2; 8.3

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Определение типов и значений через COM соединение между конфигурациями.

15.04.2019    22066    vik070777    12    

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

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

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

09.04.2019    7386    mrcamomile    15    

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

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

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

21.03.2019    26701    barelpro    82    

Настройка типового обмена данными между: 1С: Предприятие Бухгалтерия ред. 3.0 (БП 3.0) и 1С: Управление торговлей ред. 10.3 (УТ 10.3). Промо

Перенос данных из 1C8 в 1C8 v8 УТ10 Россия Бесплатно (free)

В этой статье я опишу, как настраивается типовой обмен данными между БП 3.0 и УТ 10.3.

29.01.2014    268227    arr    53    

Конвертация данных 2.1: поиск по условию

Перенос данных из 1C8 в 1C8 v8 КД ERP2 Бесплатно (free)

Задача. При обмене документами "Реализация товаров и услуг", поиск контрагента осуществлять по полям "ИНН", "КПП". Если вид договора с комиссионером, то поиск осуществлять по полям "ИНН", "КПП", "Наименование".

15.01.2019    16215    wowik    13    

Заметки КД 2.1: Как передать файл, динамически создаваемый в источнике, в справочник присоединенных файлов приемника

Перенос данных из 1C8 в 1C8 v8 КД Россия Бесплатно (free)

В БП 3.0 есть документ "Книга Продаж Для Передачи В ЭлектронномВиде" из которого выгружается XML файл. Задача: Нужно из БП 3.0 посредством правил обмена, вместе с документом книга продаж сформировать и перенести XML файл в базу приемник. В приемнике файл будет храниться в справочнике "Книга Продаж Присоединенные Файлы".

10.10.2018    10041    Viktor_Ermakov    6    

Практические рекомендации по настройке бесшовной интеграции 1С:ERP и 1С:Документооборот КОРП

Перенос данных из 1C8 в 1C8 v8::Бизнес-процессы ERP2 Россия Бесплатно (free)

В настоящей статье мы пошагово рассмотрим, как настроить бесшовную интеграцию 1С:Документооброт КОРП (1С:ДО) с 1С:ERP.

28.09.2018    20660    Aprsoft    13    

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

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

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

29.10.2013    51552    pyrkin_vanya    70    

Планы обмена 1С

Перенос данных из 1C8 в 1C8 Интеграция v8 Бесплатно (free)

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

10.09.2018    60721    zhichkin    31    

Конвертация 2.0. Обмен данными между справочниками по сопоставлению артикулов с помощью регистра сведений (пример).

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Пример обмена данными между справочниками по сопоставлению артикулов с помощью регистра сведений

27.08.2018    9590    Lyubogradov.P    1    

Альтернатива переноса ТЗ в конвертации данных 2.1

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Здравствуйте уважаемые. Решил выложить альтернативный способ переноса данных в конвертации данных из источника к приемнику, с последующим сбором их в ТЗ в месте ПослеЗагрузки. Т.е.можно готовый перенесенный объект доработать либо создать что-то еще на базе данных. Метод сам разработан с учетом простого понимания Конвертации без использования всех её многочисленных тонкостей и сложностей. В примере рассматривается перенос Операции. И вот еще что. Я не привожу тут готовое решение, я всего лишь показываю концепцию того, как можно делать в КД. Без использования глобальных переменных.

20.08.2018    6934    dinopopyys    6    

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

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

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

20.06.2012    103025    kser87    52    

Конвертация 2.0. Перенос независимого справочника в подчиненный (пример).

Перенос данных из 1C8 в 1C8 v8 КД Россия Бесплатно (free)

Пример переноса независимого справочника в подчиненный с помощью Конвертации 2.0.

15.08.2018    10957    Lyubogradov.P    6    

Конвертация 2.0. Перенос элементов и групп справочника, имеющих различный вид иерархии (пример).

Перенос данных из 1C8 в 1C8 v8 КД Россия Бесплатно (free)

Пример переноса справочника, имеющего различный вид иерархии, с помощью Конвертации 2.0.

13.08.2018    10182    Lyubogradov.P    0    

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

Перенос данных из 1C8 в 1C8 v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

hsИнтегратор : Простое в использовании решение, работает в качестве клиента и сервиса (в мобильном приложении – только клиента). Не обязательно требует внесения изменений в конфигурации интегрируемых баз данных. Маленький трафик обмена между клиентом и сервером, быстрая реакция на запросы со стороны клиента. Единый сервис для обмена данными различной структуры, механизмы для обеспечения безопасности.

25.06.2018    12267    hobi    8    

Заготовка для загрузки файлов по ftp Промо

WEB Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

3 процедуры и 1 макет

03.06.2013    30505    anig99    6    

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

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

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

18.06.2018    36192    artkor    14    

Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть ІІІ: Регистры сведений

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Часть III публикаций об универсальном обмен через REST интерфейс OData - обмен регистрами сведений

26.05.2018    9755    V.Stavinsky    4    

Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть ІІ: Документы

Перенос данных из 1C8 в 1C8 v8 Бесплатно (free)

Продолжение статьи об универсальном обмене между идентичными конфигурации через REST интерфейс OData (https://infostart.ru/public/829356/). В части второй разберем особенности обмена документами.

19.05.2018    11643    V.Stavinsky    5    

Интеграция «1С:Управление производственным предприятием» с «1С:Документооборот» Промо

Перенос данных из 1C8 в 1C8 Документооборот и делопроизводство Документооборот и делопроизводство v8 КА1 УПП1 ДО Бесплатно (free)

В данной статье пойдет речь о возможности интеграции 1С:Управление производственным предприятием ред. 1.3 с 1С:Документооборот КОРП и о том, что может получить предприятие от этой интеграции.

18.02.2013    62956    Vladimir_Konyrev    38    

Как написать обмен с 50 поставщиками и не сойти с ума. Техника

Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

О том как из обмена с одним идеальным поставщиком сделать обмены с 50 реальными поставщиками.

16.04.2018    10245    m-rv    1    

Конвертация данных. Произвольная иерархия справочника

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Источник: Бухгалтерский учет ред. 4.5 платформы 7.7. Приемник: Бухгалтерия предприятия 3.0. Задача: При загрузке справочника «Номенклатура» в приемнике, все элементы поместить в папку «Товары» с сохранением имеющейся иерархии в 7.7.

10.04.2018    10767    pyrkin_vanya    3    

Перенос помеченных на удаление объектов. Конвертация 2.1

Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Иногда при переносе данных возникает задача: не переносить помеченные на удаление документы, а те документы, которые были ранее перенесены в базу приемник и теперь в приемнике стали помеченными на удаления - переносить так, чтобы в базу приемник не тянулись связанные с объектом ссылки, но искомый объект помечался на удаление. В данной статье будет рассказано, как это можно сделать достаточно просто, используя конфигурацию "Конвертация 2.1".

02.04.2018    14240    Shmell    2    

Особенности обмена данными с использованием "ручной" регистрации Промо

Распределенная БД (УРИБ, УРБД) Перенос данных из 1C8 в 1C8 v8 1cv8.cf Бесплатно (free)

Эта статья рассчитана на программистов, которые используют обмен данными с помощью метода "ВыбратьИзменения" и последующую их запись. Только для планов обменов, имеющих "ручную" регистрацию.

14.01.2013    33429    logarifm    6    

Совместная работа БП 3.0 и ЗУП 3.1. Устранение ошибки синхронизации персональных данных физических лиц

Перенос данных из 1C8 в 1C8 Управление персоналом (HRM) Управление персоналом (HRM) v8 БП3.0 ЗУП3.x Бесплатно (free)

При совместной работе указанных конфигураций с использованием встроенного плана обмена «ОбменЗарплата3Бухгалтерия3» персональные данные физических лиц передаются некорректно. Это связано с ошибкой в правилах обмена (замшелой уже, с учётом того, сколько времени эта ошибка «кочует» из версии в версию правил).

31.03.2018    14476    ser73461014    12