Интеграция 1С с Битрикс CRM через REST API

Публикация № 1085173 28.06.19

Интеграция - Внешние источники данных

СРМ Битрикс выгрузка обмен

На фоне неутихающего обострения «бизнеса» по внедрению СРМ-систем остро встают вопросы обмена данными с уже существующими системами. В статье рассматривается выгрузка контактов, товаров и сделок из 1С в Битрикс CRM через REST API, приложена обработка для тестирования.

Существуют стандартные интеграции Битрикс и 1С, но они умеют плюс/минус ничего, зато с использованием rest api Битрикса можно получать и передавать практически все что угодно, двигать сделки по этапам, назначать ответственных и т.п.

В рассматриваемом примере подключение к Битриксу происходит через Вебхуки (приложение в Битриксе).  В обработке данные берутся с формы, естественно, ничего не мешает заменить их на нужные источники – справочники, документы, бизнес-процессы и т.д.

Для изучения и тестирования методов настоятельно рекомендуется битриксовское же приложение «Документация по REST API». СРМу там посвящен свой раздел.

Обработка тестировалась на следующих версиях ПО:

1С-Битрикс: Корпоративный портал 18.1.8

1С:Предприятие 8.3 (8.3.14.1779)

Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.70.39) (хотя конфигурация значения не имеет, в обработке используются только механизмы платформы)

 

Теория

Основная логика реализована в функции, которая действует по следующему алгоритму:

На входе получает структуру, где указан тип сущности, ее ORIGIN_ID (в боевых условиях для этих целей используются ГУИДы 1с) и структура всех полей  - типа названия, стоимости и т.д.

Ищет сущность в СРМ по ORIGIN_ID  

Если не находит – создает

Находит одну сущность – обновляет ее

Находит больше одной сущности – выдает ошибку

В случае успеха возвращает результат ок и Битрикс ИД созданной/обновленной сущности

В случае ошибки error и текст ошибки

&НаСервере
// Ищет и обновляет/создает сущность в СРМ Битрикс
// На входе - структура:
// СущностьСРМ - тип сущности, строка: contact, company, lead, deal, productsection, product 
// ORIGIN_ID - ГУИД объекта 1С
// fields - структура полей для обновления
// Возвращает:
// Результат - ок/error
// Значение - если ок - битрикс ИД созданного/обновленного элемента, если error - текст ошибки
Функция СоздатьОбновитьСущностьБитрикс(СтруктураСущности)
	//Готовим структуру для возврата
	СтруктураСозданияОбновленияСущности = Новый Структура("Результат, Значение");
	
	//Получаем настройки
	ЛогинПортала = ЛогинПортала;
	ПарольПортала = ПарольПортала;
	АдресПортала = АдресПортала;
	RestВебхук = RestВебхук;
	
	//Создаем соединение
	Соединение = Новый HTTPСоединение(АдресПортала, , ЛогинПортала, ПарольПортала,,, Новый ЗащищенноеСоединениеOpenSSL);
	
	//Получаем название сущности СРМ
	СущностьСРМ = СтруктураСущности.СущностьСРМ;
	
	//Формируем запрос
	HTTPЗапрос = Новый HTTPЗапрос(RestВебхук + "crm." + СущностьСРМ + ".list.json/");
	
	//Запрос для поиска
	СтрокаЗапроса = "";
	Если СтруктураСущности.СущностьСРМ = "productsection" ИЛИ СтруктураСущности.СущностьСРМ = "product" Тогда
		СтрокаЗапроса = СтрокаЗапроса + "filter[XML_ID]=" + КодироватьСтроку(СтруктураСущности.ORIGIN_ID, СпособКодированияСтроки.КодировкаURL);
	Иначе
		СтрокаЗапроса = СтрокаЗапроса + "filter[ORIGIN_ID]=" + КодироватьСтроку(СтруктураСущности.ORIGIN_ID, СпособКодированияСтроки.КодировкаURL);
	КонецЕсли;
	
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаЗапроса, КодировкаТекста.UTF8);
	HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);   
	СтруктураОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
	
	//Разбираем ответ
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(СтруктураОтвета);
	Попытка
		СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
	Исключение
		СтруктураСозданияОбновленияСущности.Результат = "error";
		СтруктураСозданияОбновленияСущности.Значение = ОписаниеОшибки() + " | " + СтруктураОтвета;
		Возврат СтруктураСозданияОбновленияСущности;
	КонецПопытки;
	
	
	//////////////
	Если СтруктураОтвета.Свойство("total") И СтруктураОтвета.total = 1 Тогда
		//Найдена одна сущность, обновляем
		Соединение = Новый HTTPСоединение(АдресПортала, , ЛогинПортала, ПарольПортала,,, Новый ЗащищенноеСоединениеOpenSSL);
		ИДНайденнойСущности = СтруктураОтвета.result[0].ID;
		HTTPЗапрос = Новый HTTPЗапрос(RestВебхук + "crm." + СущностьСРМ + ".update.json?id=" + ИДНайденнойСущности);
		
		СтрокаЗапроса = "";
		Для Каждого Поле Из СтруктураСущности.fields Цикл
			Если ТипЗнч(Поле.Значение) = Тип("Массив") И (Поле.Ключ = "CONTACT_IDS") Тогда
				//Это для связанных объектов
				Для Индекс = 0 По Поле.Значение.Количество()-1 Цикл
					СтрокаЗапроса = СтрокаЗапроса + "&fields[" + Поле.Ключ + "][" + Индекс + "]=" + КодироватьСтроку(Поле.Значение[Индекс], СпособКодированияСтроки.КодировкаURL);
				КонецЦикла;
			ИначеЕсли ТипЗнч(Поле.Значение) = Тип("Массив") Тогда
				//Сие для телефонов и почты
				Для Индекс = 0 По Поле.Значение.Количество()-1 Цикл
					СтрокаЗапроса = СтрокаЗапроса + "&fields[" + Поле.Ключ + "][" + Индекс + "][VALUE]=" + КодироватьСтроку(Поле.Значение[Индекс], СпособКодированияСтроки.КодировкаURL);
				КонецЦикла;
			Иначе
				СтрокаЗапроса = СтрокаЗапроса + "&fields[" + Поле.Ключ + "]=" + КодироватьСтроку(Поле.Значение, СпособКодированияСтроки.КодировкаURL);
			КонецЕсли
		КонецЦикла;
		
		HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаЗапроса, КодировкаТекста.UTF8);
		HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);   
		СтруктураОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
		
		//Разбираем ответ
		ЧтениеJSON = Новый ЧтениеJSON;
		ЧтениеJSON.УстановитьСтроку(СтруктураОтвета);
		СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
		
		Если СтруктураОтвета.Свойство("result") И СтруктураОтвета.result Тогда
			//Все ок
			СтруктураСозданияОбновленияСущности.Результат = "ок";
			СтруктураСозданияОбновленияСущности.Значение = ИДНайденнойСущности;
			Возврат СтруктураСозданияОбновленияСущности;
		ИначеЕсли СтруктураОтвета.Свойство("error") Тогда
			//Сервис вернул ошибку
			ТекстОшибки = "Ошибка при обновлении " + СущностьСРМ + ": " + СтруктураОтвета.error;
			Если СтруктураОтвета.Свойство("error_description") И СтруктураОтвета.error_description <> "" Тогда
				ТекстОшибки = ТекстОшибки + ", error_description: " + СтруктураОтвета.error_description;
			КонецЕсли;
			СтруктураСозданияОбновленияСущности.Результат = "error";
			СтруктураСозданияОбновленияСущности.Значение = ТекстОшибки;
			Возврат СтруктураСозданияОбновленияСущности;
		Иначе
			//Прочая неизвестная хрень
			СтруктураСозданияОбновленияСущности.Результат = "error";
			СтруктураСозданияОбновленияСущности.Значение = "Неизвестная ошибка при обновлении " + СущностьСРМ + " с id=" + ИДНайденнойСущности;
			Возврат СтруктураСозданияОбновленияСущности;
		КонецЕсли;
		
	ИначеЕсли СтруктураОтвета.Свойство("total") И СтруктураОтвета.total = 0 Тогда		
		//Не найдено, создаем
		Соединение = Новый HTTPСоединение(АдресПортала, , ЛогинПортала, ПарольПортала,,, Новый ЗащищенноеСоединениеOpenSSL);
		HTTPЗапрос = Новый HTTPЗапрос(RestВебхук + "crm." + СущностьСРМ + ".add.json/");
		
		СтрокаЗапроса = "";
		
		Если СтруктураСущности.СущностьСРМ = "productsection" ИЛИ СтруктураСущности.СущностьСРМ = "product" Тогда
			СтрокаЗапроса = СтрокаЗапроса + "fields[XML_ID]=" + КодироватьСтроку(СтруктураСущности.ORIGIN_ID, СпособКодированияСтроки.КодировкаURL);
		Иначе
			СтрокаЗапроса = СтрокаЗапроса + "fields[ORIGIN_ID]=" + КодироватьСтроку(СтруктураСущности.ORIGIN_ID, СпособКодированияСтроки.КодировкаURL);
		КонецЕсли;
		
		Для Каждого Поле Из СтруктураСущности.fields Цикл
			Если ТипЗнч(Поле.Значение) = Тип("Массив") И (Поле.Ключ = "CONTACT_IDS") Тогда
				//Это для связанных объектов
				Для Индекс = 0 По Поле.Значение.Количество()-1 Цикл
					СтрокаЗапроса = СтрокаЗапроса + "&fields[" + Поле.Ключ + "][" + Индекс + "]=" + КодироватьСтроку(Поле.Значение[Индекс], СпособКодированияСтроки.КодировкаURL);
				КонецЦикла;
			ИначеЕсли ТипЗнч(Поле.Значение) = Тип("Массив") Тогда
				//Сие для телефонов и почты
				Для Индекс = 0 По Поле.Значение.Количество()-1 Цикл
					СтрокаЗапроса = СтрокаЗапроса + "&fields[" + Поле.Ключ + "][" + Индекс + "][VALUE]=" + КодироватьСтроку(Поле.Значение[Индекс], СпособКодированияСтроки.КодировкаURL);
				КонецЦикла;
			Иначе
				СтрокаЗапроса = СтрокаЗапроса + "&fields[" + Поле.Ключ + "]=" + КодироватьСтроку(Поле.Значение, СпособКодированияСтроки.КодировкаURL);
			КонецЕсли
		КонецЦикла;
		
		HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаЗапроса, КодировкаТекста.UTF8);
		HTTPОтвет = Соединение.ОтправитьДляОбработки(HTTPЗапрос);   
		СтруктураОтвета = HTTPОтвет.ПолучитьТелоКакСтроку();
		
		//Разбираем ответ
		ЧтениеJSON = Новый ЧтениеJSON;
		ЧтениеJSON.УстановитьСтроку(СтруктураОтвета);
		СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON);
		
		//////////////
		Если СтруктураОтвета.Свойство("result") И СтруктураОтвета.result <> "" Тогда
			СтруктураСозданияОбновленияСущности.Результат = "ок";
			СтруктураСозданияОбновленияСущности.Значение = Формат(СтруктураОтвета.result, "Л=ru_RU; ЧГ=0");
			Возврат СтруктураСозданияОбновленияСущности;
		ИначеЕсли СтруктураОтвета.Свойство("error") Тогда
			//Сервис вернул ошибку
			ТекстОшибки = "Ошибка при создании " + СущностьСРМ + ": " + СтруктураОтвета.error;
			Если СтруктураОтвета.Свойство("error_description") И СтруктураОтвета.error_description <> "" Тогда
				ТекстОшибки = ТекстОшибки + ", error_description: " + СтруктураОтвета.error_description;
			КонецЕсли;
			СтруктураСозданияОбновленияСущности.Результат = "error";
			СтруктураСозданияОбновленияСущности.Значение = ТекстОшибки;
			Возврат СтруктураСозданияОбновленияСущности;
		Иначе
			//Прочая неизвестная хрень
			СтруктураСозданияОбновленияСущности.Результат = "error";
			СтруктураСозданияОбновленияСущности.Значение = "Неизвестная ошибка при создании " + СущностьСРМ;
			Возврат СтруктураСозданияОбновленияСущности;
		КонецЕсли;
	ИначеЕсли СтруктураОтвета.Свойство("total") И СтруктураОтвета.total > 1 Тогда
		//Найдено больше одной компании, обтекаем
		СтруктураСозданияОбновленияСущности.Результат = "error";
		СтруктураСозданияОбновленияСущности.Значение = "Нарушена целостность данных. Найдено больше одной " + СущностьСРМ + " с одинаковым ORIGIN_ID";
		Возврат СтруктураСозданияОбновленияСущности;
	ИначеЕсли СтруктураОтвета.Свойство("error") Тогда
		//Сервис вернул ошибку
		ТекстОшибки = "Ошибка при поиске " + СущностьСРМ + ": " + СтруктураОтвета.error;
		Если СтруктураОтвета.Свойство("error_description") И СтруктураОтвета.error_description <> "" Тогда
			ТекстОшибки = ТекстОшибки + ", error_description: " + СтруктураОтвета.error_description;
		КонецЕсли;
		СтруктураСозданияОбновленияСущности.Результат = "error";
		СтруктураСозданияОбновленияСущности.Значение = ТекстОшибки;
		Возврат СтруктураСозданияОбновленияСущности;
	Иначе
		//Прочая неизвестная хрень
		СтруктураСозданияОбновленияСущности.Результат = "error";
		СтруктураСозданияОбновленияСущности.Значение = "Неизвестная ошибка при поиске " + СущностьСРМ;
		Возврат СтруктураСозданияОбновленияСущности;
	КонецЕсли;
КонецФункции

 

Использование обработки для тестирования

Указываем настройки

Адрес  портала в виде «portal.mysite.com»  ( без https:// )

Логин и пароль портала если используется http авторизация

Вебхук в виде «rest/1234/abc7skjbv1vyqxb2/» - т.е. точка доступа и собственно вебхук в одной строке

 

Отправка

Контакты и товары можно создавать независимо. Для создания сделки с контактом и товаром, а также для движения сделки по стадиям нужно заполнить все поля, так как каждый раз создаются/обновляются все сущности.

 

Результат на портале

Скачать файлы

Наименование Файл Версия Размер
Интеграция 1С с Битрикс CRM через REST API:

.epf 11,72Kb
74
.epf 1.0 11,72Kb 74 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. osivv 254 29.06.19 10:51 Сейчас в теме
Браво!
Наконец-то и Битриксе стали что-то делать в направлении REST API, до классического правда далеко и не соответствует, но все таки. Потому что, на мой сугубо субъективный взгляд, не оптимально в "СтрокаЗапроса" запихивать все передаваемые "Ключ=Значение", а если их штук 20? Если дадите ссылки на документацию, буду признателен, я внятную не нашел, не говоря уже о каких-то примерах использования (чисто для расширения своих компьютерных знаний, в работе использую другой).
А разве нельзя использовать обработчик ошибок по коду ответа, например КодОтвета=200 (всё ОК)? Потому что, проще выделить обработчик ответа в одну функцию и по коду понимать ошибка у нас или нет. Хотя не удивлюсь, что битрикс (как обычно) пошел своим, уникальным путём.
А картинки таким макаром можно публиковать?
По моему, это всё-таки не REST API, а как вы сами написали "Вебхуки".
Через "Postman" или "curl" тестировать можно?
В общем жирный "+" в карму.
2. muzipov 66 29.06.19 17:05 Сейчас в теме
Спасибо за оценку!

(1)
Если дадите ссылки на документацию, буду признателен

Документация по REST Битрикса https://dev.1c-bitrix.ru/rest_help/, также она реализована в виде приложения в самом Битриксе, там есть примеры и оттуда можно сразу запускать код.

(1)
А разве нельзя использовать обработчик ошибок по коду ответа, например КодОтвета=200 (всё ОК)?

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

(1)
А картинки таким макаром можно публиковать?

Методы REST-сервиса получают файлы в виде строки, закодированной в base64

(1)
Через "Postman" или "curl" тестировать можно?

Конечно можно, я для этих целей использую SOAP UI
3. ltfriend 1021 30.06.19 08:19 Сейчас в теме
(1) а как оптимально передавать параметры в http запросе?
5. kuntashov 422 30.06.19 20:32 Сейчас в теме
(3) REST API битриксоиды реализовали с отступлением от канонов, например, они не различают "глаголы" и для них методы GET и POST работают одинаково, любой метод API можно вызывать как GET, так и POST запросом с одинаковым эффектом. Зато большой запрос можно отправлять POSTом (и это рекомендуется), тело запроса в этом случае формируется также как и query-string (application/x-www-form-urlencoded).
7. ltfriend 1021 01.07.19 09:23 Сейчас в теме
(5) я задавал вопрос автору первого комментария конкретно к этому предложению:
Потому что, на мой сугубо субъективный взгляд, не оптимально в "СтрокаЗапроса" запихивать все передаваемые "Ключ=Значение", а если их штук 20?

Мне стало интересно, знает ли он более оптимальную передачу параметров в POST запросе, помимо передачи их строкой (application/x-www-form-urlencoded).
4. kuntashov 422 30.06.19 20:24 Сейчас в теме
> Существуют стандартные интеграции Битрикс и 1С, но они умеют плюс/минус ничего

А вы когда последний раз пробовали?

Модуль 1С:Синхронизация с Битрикс24 работает через REST API, первые версии были выпущены более года назад.
Сегодня публикуются в виде расширения.

В общем и целом работает хорошо и уж точно, если требуется в обмене что-то совсем специфичное, то лучше разработку вести именно на базе этого модуля, а не с нуля, т.к. куча нюансов в нем уже решена, например, механизм контроля изменений через оффлайн-событий и уже реализовавнный лонг-поллинг для "онлайн" обмена.
krylovim; +1 Ответить
6. kuntashov 422 30.06.19 20:33 Сейчас в теме
(4) Вот здесь, например, релизы модуля для УТ https://1c.1c-bitrix.ru/intranet/download.php?section=102557
8. marengo75 29.04.20 13:40 Сейчас в теме
Подскажите Сергей. а нечто подобное можно сделать для 1с 7.7 ?
9. muzipov 66 16.05.20 17:33 Сейчас в теме
(8) В теории наверное можно, но это вне сферы моих интересов.
10. elinorkelt 22.12.20 10:35 Сейчас в теме
А какой метод для вебхука вы использовали?
11. user1720761 21.04.22 08:45 Сейчас в теме
Сергей а как можно с вами связаться?
интересует интеграция с Bitrix, но именно в с счетами.
Оставьте свое сообщение

См. также

Обмен большими данными между клиентом и сервером

Внешние источники данных Платформа 1С v8.3 Абонемент ($m)

В статье рассматривается вопрос передачи больших объемов данных, превышающих теоретический лимит сеансовых данных (4Гб за вызов) (они же временное хранилище) как с клиента на сервер, так и в обратном направлении.

1 стартмани

27.08.2019    18791    logos    32    

113

АИТП. Простой, событийно-управляемый обмен данными

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В статье, на примере обмена с ЗУП 3.1, демонстрируется механизм событийно-управляемого взаимодействия конфигурации АИТП с прикладными решениями на платформе 1С:Предприятие.

1 стартмани

04.07.2019    5754    blackhole321    0    

9

Аутентификация на внешних сервисах посредством OAuth

Информационная безопасность Внешние источники данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Пример подключения к сервисам Google из 1С с помощью протокола OAuth и получения данных с внешнего сервиса.

1 стартмани

03.04.2019    33681    binx    134    

106

Универсальное расширение 1С для Google Таблиц и Документов

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Эта статья для тех, кто использует G Suite и 1С. Готовое решение для выгрузки отчетов и печатных форм из баз 1С в Google Диск в формате Google Таблиц и Google Документов. Информация по его внедрению. Описание создания и настройки проекта в GCP.

1 стартмани

31.01.2019    24553    Maria18    39    

111

Опять про sFTP и вообще

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Памятка для разработчика по работе с FTP, FTPs и sFTP.

1 стартмани

23.05.2018    28966    leongl    30    

45

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Практикум по созданию обменов данными через протокол oData «за полдня»

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Про oData и 1С было довольно много написано, однако же описания работы и с чтением, и с записью данных через JSON я так и не встретил ни на этом ресурсе ни на других. Попробую раскрыть эту тему.

1 стартмани

20.03.2018    29067    timm00    64    

111

Практика доступа в базу 1С через протокол oData. Изменение данных

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

30.12.2017    44312    Dementor    40    

157

Инструкция по настройке загрузки из ФСС электронных листков нетрудоспособности ЭЛН в документ 1С Начисление по больничному листу

Внешние источники данных Зарплата Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Зарплата и Управление Персоналом 2.5 1С:Управление производственным предприятием Россия Бухгалтерский учет ФОМС, ЕФС Абонемент ($m)

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

1 стартмани

28.11.2017    205486    rusmil    136    

80

Google OAuth и мобильное приложение

Мобильная разработка Внешние источники данных WEB-интеграция Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Абонемент ($m)

Об аутентификации для работы с сервисами google из мобильного или настольного приложения

1 стартмани

29.08.2017    12444    stveans@gmail.com    3    

11

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

1С и MongoDB: дружба начинается с RESTHeart'а

Внешние источники данных Платформа 1С v8.3 Абонемент ($m)

Краткое описание того, как подружить MongoDB и 1С: Предприятие используя один из предлагаемых на официальном сайте RESTFul сервисов - RESTHeart.

1 стартмани

03.07.2017    45767    Silenser    10    

47

Что такое HMAC и JWT и как это использовать в 1С

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Лёгкая статья про стандарты HMAC и JWT с небольшой теорией и исходным кодом.

1 стартмани

20.04.2017    26791    keypax    56    

122

Прозрачная интеграция 1С8.2 с 1С7.7 (Внешние источники, OLE)

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Внешние источники данных Платформа 1С v8.3 Абонемент ($m)

Прозрачная интеграция 1С8.2 с 1С7.7 через внешние источники и OLE. Данные из 1С7.7 читаем посредством внешних источников, изменения данных передаем в 1С7.7 по OLE путем отправки xml.

1 стартмани

09.01.2014    24559    sdf1979    16    

15

Получение информации об экспортных свойствах и методах объектов 1С через COM.

Разработка внешних компонент Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Как из тела COM-объекта или внешней компоненты определить состав свойств и методов объектов 1С агрегатных типов? Все ответы здесь.

1 стартмани

03.09.2013    15341    gislink    5    

37

Импорт документов из других программ или конфигураций

Обмен между базами 1C Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Универсальная функция поиска документа по маске GUID и создание нового документа при неудаче

1 стартмани

11.07.2013    6948    inv7    4    

8

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Подключение к 1С 7.7 через внешний источник данных, работа со справочниками 7.7 (на примере справочника клиенты)

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подключение к 1С 77 через внешний источник данных, работа со справочниками 77 (на примере справочника клиенты). Вывод иерархической структуры справочника. В прикрепленном файле пошаговая инструкция с картинками.

1 стартмани

24.01.2013    22023    sdf1979    12    

39

Добавление фотографий из 1с в ActiveDirectory

Внешние источники данных Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Расскажу Вам о том как я добавляла фотографию из 1с (справочника физические лица) в карточку пользователя ActiveDirectory

1 стартмани

28.09.2012    18565    Nas'ka    7    

38

Практический пример настройки обмена с казначейством в БГУ

Внешние источники данных Платформа 1С v8.3 1С:Бухгалтерия государственного учреждения Россия Бюджетный учет Абонемент ($m)

Материалов для бюджетников, всегда не хватает, особенно с практическими примерами. Попробую описать процесс настройки с нуля обмена с ОФК/УФК на примере выгрузки документа «Заявки на кассовый расход» из БГУ и импорта в СЭД.

1 стартмани

13.04.2012    71866    Vestr    17    

50

Синхронизация с сервером 1С во внешнем соединении

Внешние источники данных Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Позволяет установить время удаленного SQL-сервера на компьютере при выполнении обмена через Внешнее соединение

1 стартмани

27.09.2011    14075    sml    6    

12