Расширение Бром для интеграции с 1С

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

Разработка - Системная интеграция - Внешние источники данных

интеграция обмен расширение загрузка выгрузка RPC web-сервис .Net C# PHP Python

Из этой статьи вы узнаете, как можно быстро и просто синтегрироваться с любой конфигурацией 1С при помощи расширения Бром.

Предисловие

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

  • механизмы взаимодействия через COM-соединение;
  • механизмы web/http - сервисов;
  • механизмы обмена XML-пакетами (конвертация данных, EnterpriseData и пр..);
  • стандартизированный протокол OData.

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

Мы решили упростить процесс интеграции с 1С и создали расширение, которое и хотим вам представить.

 

Возможности расширения

Расширение Бром может быть установлено на любую конфигурацию 1С, которая поддерживает работу с расширениями (версия совместимости 8.3.10 или выше). Расширение не требует наличия стандартных библиотек, поэтому будет работать даже на самописных конфигурациях. Расширение позволяет:

  • получать и редактировать данные объектов 1С (ссылочные объекты, константы, параметры сеанса);
  • получать выборки из коллекций с учетом сложных условий отбора и сортировки;
  • исполнять произвольные запросы на языке 1С, в том числе пакетные запросы и запросы с разметкой для построителя;
  • вызывать процедуры и функции 1С с возможностью передачи параметров и получения результата в естественном виде (без необходимости преобразования типов);
  • получать данные о метаданных конфигурации с возможностью их частичной (постраничной) загрузки;
  • передавать в обоих направлениях данные как примитивных типов, так и сложные структурированные данные (ссылки, массивы, структуры, соответствия, таблицы значений, деревья, системные перечисления и многое другое).

Функциональность позволяет создать в клиентском приложении свою ORM. Вообще-то, мы уже сделали это за вас, но об этом далее.

 

Принцип работы

Принцип интеграции с 1С следующий:

  1. Подготавливаем инфраструктуру на стороне 1С:
    1. В конфигурацию 1С устанавливаем расширение Бром. Расширение содержит веб-сервис, который будет отвечает на клиентские запросы. Также расширение содержит собственный сериализатор, который преобразует данные 1С в XDTO-объекты и обратно.
    2. Создаем одного или нескольких пользователей, которым доступны роли основной конфигурации и роли расширения (или выдаем эти роли существующим пользователям);
    3. Публикуем конфигурацию на веб-сервере, чтобы она откликалась по HTTP;
  2. В клиентском приложении подключаем готовую библиотеку, создаем клиентский объект-коннектор и пользуемся им.

На момент написания данной статьи реализованы клиентские библиотеки для .Net Core, PHP и Python.

Если ваш проект работает на другой платформе, то свою клиентскую библиотеку вы можете реализовать самостоятельно. Это возможно сделать на любом современном языке программирования.

 

Примеры использования

Теперь давайте посмотрим как выглядит клиентский код. В этой статья я буду использовать C#. Код на PHP и Python полностью аналогичен.

В качестве удаленной конфигурации будет выступать УТ 11, вы можете проводить эксперименты на любой другой.

 

Подключение и инициализация

Подключаемую библиотеку можно скачать с сайта проекта или репозитория (библиотеки для .Net Core и Python лучше ставить из репозитория, т.к. они имеют зависимости). После подключения библиотеки к проекту нам необходимо создать объект "БромКлиент". Сделать это можно одной командой:

dynamic клиент = new БромКлиент(@"
	Публикация = http://domainname.ru/publication_name;
	Пользователь = username;
	Пароль = userpassword
");

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

Наш бром-клиент готов к использованию. Поехали дальше!

 

Вызов процедур и функций 1С

Давайте теперь вызовем простейшую функцию 1С, например "ЧислоПрописью". В качестве кода локализации укажем французский язык:

var числоПрописью = клиент.ЧислоПрописью(2547, "Л = fr_FR");

// -> "Cent vingt-trois mille cent vingt-trois 00"

Данная функция принимает и возвращает значения примитивных типов. Давайте вызовем функцию, которая вернет нам массив:

var цвета = клиент.СтрРазделить("Красный,Синий,Зеленый", ",");

// -> Массив ["Красный", "Синий", "Зеленый"]

Теперь давайте вызовем функцию "НайтиПоКоду" модуля менеджера справочника "Валюты":

var доллар = клиент.Справочники.Валюты.НайтиПоКоду(840);

//-> СправочникСсылка (Доллар)

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

var данные = клиент.РаботаСКурсамиВалют.ПолучитьКурсВалюты(доллар, DateTime.Today);

//-> Структура

var курс = данные.Курс;
var кратность = данные.Кратность;

В этом примере мы обратились к функции общего модуля, передали в нее ссылку на элемент справочника и дату. Функция вернула нам объект типа "Структура". Обращаться с этим объектом мы можем так же как и в 1С.

Доступность тех или иных методов можно ограничивать с помощью настроек областей видимости в расширении. Так, например, если указать область «Справочники.*.НайтиПоКоду», то будет доступен только метод «НайтиПоКоду» во всех справочниках конфигурации.

Работа со ссылками

Мы уже умеем находить ссылки на объекты коллекций в 1С. Давайте теперь получим данные этих объектов:

var заказ = клиент.Документы.ЗаказКлиента.НайтиПоНомеру("ТД00-000018", new Date(2017, 1, 1));

var датаЗаказа		= заказ.Дата;
var контрагент		= заказ.Контрагент;
var иннКонтрагента	= заказ.Контрагент.ИНН;

foreach (var стр in заказ.Товары) {
	Console.WriteLine((стр.Номенклатура, стр.Количество));
}

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

Если вам известен уникальный идентификатор объекта, то вы можете получить ссылку на стороне клиента без обращений к серверу:

var текСсылка = клиент.Документы.ЗаказКлиента.ПолучитьСсылку(new Guid("5a32b6ab-4661-11e9-912a-38d547755ef7"));

Если вам нужна ссылка на предопределенный элемент, то получить ее предельно просто:

var ставкаНДС = клиент.Перечисления.СтавкиНДС.НДС18_118;

var рольИсполнителя = клиент.Справочники.РолиИсполнителей.ОтветственныйЗаКонтрольИсполнения;

 

Редактирование объектов

Читать данные объектов мы теперь умеем. Давайте попробуем их отредактировать:

var заказ = клиент.Документы.ЗаказКлиента.НайтиПоНомеру("ТД00-000018", new Date(2017, 1, 1));

var заказОбъект = заказ.ПолучитьОбъект();

заказОбъект.Дата = DateTime.Today;
заказОбъект.Номер = "ТД00-000055";

заказОбъект.Товары.Очистить();

var стр = заказОбъект.Товары.Добавить()

стр.Номенклатура = клиент.Справочники.Номенклатура.НайтиПоКоду("000000104");
стр.Количество = 3;

заказОбъект.Записать(РежимЗаписиДокумента.Проведение);

В данном примере мы получили объект документа из ссылки, изменили реквизиты и табличную часть. Теперь попробуем создать номенклатуру и поместить ее в группу, которую тоже предварительно создадим:

// Создаем контекст группы справочника
var группаОбъект = клиент.Справочники.Номенклатура.СоздатьГруппу();
группаОбъект.Наименование = "Новая группа";
группаОбъект.Записать();

// Создаем контекст элемента справочника
var товарОбъект = клиент.Справочники.Номенклатура.СоздатьЭлемент();
товарОбъект.Родитель = группаОбъект.Ссылка;
товарОбъект.Наименование = "Новый товар";
товарОбъект.Артикул = "T-00012321";

// Записываем объект справочника
товарОбъект.Записать();

// Получаем ссылку на созданный объект
var товарСсылка = товарОбъект.Ссылка;

Теперь редактировать объекты мы тоже умеем! Двигаемся дальше!

 

Формирование выборок

Зачастую в клиентском приложении требуется получить список элементов справочника, документов и прочих коллекций. Для этого в библиотеке предусмотрен класс "Селектор". Селектор позволяет формировать выборку ссылок из указанной коллекции с учетом сложных отборов и сортировок. Вместе со ссылками могут быть запрошены и контекстные данные объектов.

var группаМебель = клиент.Справочники.Номенклатура.НайтиПоНаименованию("Мебель");

var текСелектор = клиент.Справочники.Номенклатура.СоздатьСелектор();

текСелектор.
	Выбрать("Наименование, Код, Производитель, Производитель.ИНН").
	Где("ЭтоГруппа", false).
	Где("Ссылка", группаМебель, ВидСравнения.ВИерархии).
	Упорядочить("Производитель").
	Упорядочить("Наименование", НаправлениеСортирвки.Убывание);

foreach (var текСсылка in текСелектор) {
	Console.WriteLine("Наименование: {0}; Код: {1}, Производитель: {2}; ИНН: {3}",
		текСсылка.Наименование,
		текСсылка.Код,
		текСсылка.Производитель,
		текСсылка.Производитель.ИНН
	);
}

// Сохраняем результат выборки в массив для последующего использования
var результат = текСелектор.ВыгрузитьРезультат();

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

Полагаю, принцип работы селектора понятен! Продолжим!

 

Выполнение запросов

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

var запрос = клиент.СоздатьЗапрос(@"
	ВЫБРАТЬ
		Номенклатура.Ссылка КАК Ссылка,
		Номенклатура.Код КАК Код,
		Номенклатура.Наименование КАК Наименование
	ИЗ
		Справочник.Номенклатура КАК Номенклатура
	ГДЕ
		Номенклатура.Артикул = &Артикул			
");
запрос.УстановитьПараметр("Артикул", "Т-0001");

var результат = запрос.Выполнить();

foreach (var стр in результат) {
	Console.WriteLine((стр.Код, стр.Наименование));
}

Мы только что выполнили простой запрос с одним параметром. Давайте теперь выполним шаблонизированный запрос:

var текЗапрос = клиент.СоздатьЗапрос(@"
	ВЫБРАТЬ ПЕРВЫЕ 5
		ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
		ЦеныНоменклатурыСрезПоследних.Характеристика КАК Характеристика,
		ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
	{ВЫБРАТЬ
		Номенклатура.*}
	ИЗ
		РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
			{(&Период)}, 
			{ (Номенклатура).*, (Характеристика).*}
		) КАК ЦеныНоменклатурыСрезПоследних
	{ГДЕ
		ЦеныНоменклатурыСрезПоследних.Цена}
	{УПОРЯДОЧИТЬ ПО
		Номенклатура.*,
		Характеристика.*}
");

// Добавляем дополнительное поле запроса с указанием синонима поля
текЗапрос.ДобавитьПоле("Номенклатура.Производитель.Наименование", "Бренд");

// Добавляем дополнительный отбор по цене
текЗапрос.ДобавитьУсловиеОтбора("Цена", 100, ВидСравнения.БольшеИлиРавно);

// Указываем дополнительное упорядочение по двум полям
текЗапрос.ДобавитьУпорядочение("Номенклатура.Производитель");
текЗапрос.ДобавитьУпорядочение("Характеристика", НаправлениеСортировки.Убывание);

var результат = текЗапрос.Выполнить(ОбходРезультатаЗапроса.Прямой);

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

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

Если вам нужно выполнить пакетный запрос, то вместо функции "Выполнить" достаточно вызвать "ВыполнитьПакет". Результатом будет массив таблиц или массив деревьев, в зависимости от указанного типа обхода.

 

Обучающие материалы

Мы записали обучающие видеоролики, которые демонстрируют работу расширения:

 

Заключение

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

На текущий момент расширение и клиентские модули находятся в стадии beta-тестирования и распространяются по свободной лицензии.

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

Наименование Файл Версия Размер
Расширение Бром для интеграции с 1С

.zip 39,22Kb
06.08.19
5
.zip 1.0.0.4-beta 39,22Kb 5 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. capitan 1767 07.08.19 14:02 Сейчас в теме
Вспоминается...
А Степанида Матвеевна большая дыра ... в компьютерой безопасности нашей фирмы
Старые знакомые. На этот раз без знойных женщин обошлось.
А зря.
Это расширение уже на Хабре мне помнится заклевали.
Безопасность его не нулевая, а отрицательная
В добром здравии и своем разуме редкий человек его поставит на свою конфигурацию

Но на Хабре то люди не курсе стандартов разработки 1С, поэтому они к разыменованию через точку отнеслись спокойно.
А так то в программировании 1С рекомендуют запросами пользоваться
2. itworks 42 07.08.19 18:52 Сейчас в теме
На хабре люди в курсе. Такие особенности работы с объектами есть во многих ORM, 1С в этом плане не особенная. Работа с запросами в расширении предусмотрена, можно получать данные и так и так, и даже третьим способом через выборки с явным указанием полей.

Единственная дыра в безопасности - это закрытый код. Такую проблему можно решить в индивидуальном порядке.
3. capitan 1767 08.08.19 11:15 Сейчас в теме
(2)
Единственная дыра в безопасности - это закрытый код

Я так не смеялся со времен выпускных экзаменов )))

Закрытый код - это реально шедевр, это вам не полуголые женщины в роликах ютюба
За это люблю программистов 1С

// Функция для страпонации декомпилятора, не содержит смысла
Функция СтрапонаторДекомпилятора()
ПеременнаяСтрапонации = "";
МассивСтрапонации = Новый Массив();

ИтоговыйСтрапонатор = "";
Для Каждого Элемент Из МассивСтрапонации Цикл
ВременнаяПеременнаяСтрапонации = СокрЛП(ПеременнаяСтрапонации + Элемент);
Если ВременнаяПеременнаяСтрапонации = ПеременнаяСтрапонации Тогда
СтруктураСтрапонации = Новый Структура();
СтруктураСтрапонации.Вставить("ХуитологическаяКонстанта", ВременнаяПеременнаяСтрапонации + "КонстантаВдупления");

Пока СтруктураСтрапонации.ХуитологическаяКонстанта <> Неопределено Цикл
ЕщеПеременная = 1 / (2 + 5) + СтруктураСтрапонации.ХуитологическаяКонстанта;

Если ЕщеПеременная <> "ПарметрАдекватности" Тогда
СтруктураСтрапонации.Очистить();
Иначе
Если ЕщеПеременная <> "ФакторБыдлокода" Тогда
СтруктураСтрапонации.Вставить("ПоПолной", "Полнее не бывает");
Иначе
Для к = 69 По 69 * 69 Цикл
п = к - (к / 2);
к = к + п;
Переменная_С_Палками = "| | | | | |";
Если к > п Или п = "Страпонированное состояние почти достигнуто" Тогда
Для о = 69 По 69 * (69 - 68) Цикл
п = о - (к / 2);

к = к + п;
Если к > о Или п = "Уже вот вот страпонируется" Или Строка(Истина и Не Ложь) = Истина Тогда
СтруктураСтрапонации.Вставить("ВставлялиУже", "Во внешнем цикдле по полной заправили!");
Иначе
КайфовыйПараметр = " Мир, брат! ";
Возврат СокрЛП(КайфовыйПараметр);
КонецЕсли;

Попытка
Для Каждого БесполезныйПараметр Из СтруктураСтрапонации Цикл
Сообщить(БесполезныйПараметр.Значение);
КонецЦикла;
Исключение
Сообщить("Не фортануло!");
Попытка
Для Каждого БесполезныйПараметр Из СтруктураСтрапонации.ПоПолной Цикл
Если БесполезныйПараметр > 0 Тогда
ПеременнаяОтсутствияСмыслаЖизни = "НеопределеноКакСтрока";
Иначе
Сообщить("Иполнение кода достиго критической безысходности.");
КонецЕсли;
КонецЦикла;
Исключение
Сообщить("Опять не фортануло!");
КонецПопытки;
КонецПопытки;
КонецЦикла;
МассивСтрапонации[0] = ПеременнаяСтрапонации;
МассивСтрапонации[к + 0] = СтруктураСтрапонации.ПоПолной;
КонецЕсли;

МассивСтрапонации[1] = 5 + ПеременнаяСтрапонации + "Этот код обречен быть непонятым...";
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Возврат "Смысл не найден!";
КонецЕсли;
КонецЦикла;

Возврат "Декомпилятор успешно страпонирован. Возрадуемся!";
КонецФункции

Функция ИнформацияОбАвторе() Экспорт
Возврат "Модуль разработан ООО ""ИТВОРКС"". Автор исходного кода - Шаганов Антон Павлович (ООО ""ИТВОРКС"").";
КонецФункции
Показать
4. itworks 42 08.08.19 11:47 Сейчас в теме
12. itworks 42 08.08.19 14:45 Сейчас в теме
(10) Спасибо, что предупредили.
6. itworks 42 08.08.19 12:54 Сейчас в теме
(3) Раз уж страпонатор не помогает, выложил с исходниками.
Perfolenta; +1 Ответить
9. aspirator23 437 08.08.19 14:10 Сейчас в теме
(6)Чтоб все были такими же щедрыми. :)
8. aspirator23 437 08.08.19 14:08 Сейчас в теме
13. buzzzard 51 23.12.19 14:40 Сейчас в теме
Интересует пример подключения к Брому из 1С.
14. itworks 42 25.12.19 12:41 Сейчас в теме
(13) Можно подключиться через WS-ссылку на сервис в другой базе, но это довольно муторно.
Между 1С обмены настраивать проще, наверно, через COM или правилами обмена.
15. zhichkin 764 15.03.20 23:51 Сейчас в теме
На github репозиторий не появился ?
В частности интересует сам клиент Брома на .NET Core.
16. itworks 42 17.03.20 17:51 Сейчас в теме
Оставьте свое сообщение

См. также

Конвертация данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Промо

Внешние источники данных Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 КА1 ЗУП2.5 УПП1 БГУ Россия БУ Госбюджет Абонемент ($m)

Перенос данных Парус 7, 10 - ЗУП 2.5, ЗИКБУ 1.0, КА 1.1, УПП Переносит данные сотрудника, физического лица и начисления за произвольный период

1 стартмани

10.06.2014    32718    38    kns77    81    

Чатбот WhatsApp

WEB v8 1cv8.cf Абонемент ($m)

Внешняя обработка для написания чат-бота WhatsApp

1 стартмани

21.10.2020    3265    14    ripreal1    5    

Учимся создавать http сервис (часть третья). Передача нескольких параметров в http сервис

WEB Практика программирования v8 1cv8.cf Абонемент ($m)

Пошаговое руководство по созданию http сервиса (часть третья). Передача нескольких параметров в http сервис, a также формирование сложных JSON строк.

1 стартмани

02.10.2020    4052    1    hpi    14    

HTTP сервисы по OpenAPI спецификациям

Практика программирования WEB v8 1cv8.cf Абонемент ($m)

Начинаем путь разработки HTTP сервисов с создания спецификаций OpenAPI. Автодокументация сервисов формата Swagger UI без зависимостей. Настройка сервисов в режиме предприятия.

1 стартмани

29.06.2020    7199    3    shmalevoz    19    

Загрузка данных из М-Аптеки+ в 1С:Бухгалтерия 8 (ред. 3.0) Промо

Внешние источники данных Файловые протоколы обмена, FTP v8 v8::БУ БП3.0 Фармацевтика, аптеки БУ Абонемент ($m)

Обработка для загрузки файлов выгрузки из программы для автоматизации аптек и аптечных сетей М-Аптека+ в 1С:Бухгалтерия 8, редакция 3.0.

11.07.2014    35257    31    1C_MApteka    37    

Улучшенная обработка универсального обмена данными в формате XML (УФ)

Универсальные обработки Внешние источники данных Обмен через XML v8 v8::УФ 1cv8.cf Абонемент ($m)

Улучшенная обработка "Универсальный обмен данными" с полноценными возможностями СКД для выборки данных (не только для отборов).

1 стартмани

23.06.2020    4698    59    Lem0n    1    

Пример работы с Trello из 1С

WEB v8 1cv8.cf Россия УУ Абонемент ($m)

Небольшая конфигурация содержит примеры обмена с онлайн-сервисом Trello.

1 стартмани

15.02.2020    11212    42    terrorion    12    

Google drive - менеджер файлов

WEB Внешние источники данных v8 1cv8.cf Россия Абонемент ($m)

Синхронизация с гугл диском легко и просто!

10 стартмани

05.12.2019    9938    29    zykov_vitaliy    26    

Внешняя компонента для работы по Web-socket протоколу x32 x64 Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

1 стартмани

30.03.2018    27157    40    Ditron    83    

Использование хранимых процедур MS SQL Server в 1С

Внешние источники данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

03.12.2019    10856    4    Dedushka    26    

Работа с Яндекс-картами в 1С (вывод меток, прокладка маршрута, отображение балуна, вывод меток в кластеры) (обычное и управляемое приложение)

WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Работа с Яндекс-картами в 1С (управляемое приложение). Обработка показывает, как можно найти адреса на карте Яндекс, проложить маршрут.

2 стартмани

20.11.2019    12650    120    Denr83    0    

Telegram бот на 1С

WEB v8 1cv8.cf Абонемент ($m)

Telegram бот на 1С в виде внешней обработки, встраиваемой в типовые 1С 8.3.

1 стартмани

24.09.2019    16245    35    budidich    19    

Менеджер загрузки данных из весов с печатью этикеток Промо

Внешние источники данных Весы Учет ТМЦ Учет ТМЦ v8 УТ10 УПП1 Абонемент ($m)

Программное обеспечение "Менеджер загрузки данных из весов с печатью этикеток" предназначено для автоматического получения данных по сети Ethernet из весов МАССА-К моделей ВПМ и ТВ_Р3 (модификация MF) в режиме On-Line.

1 стартмани

20.12.2011    22866    4    hrip    10    

Получение изображения с IP-камеры

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Получение изображения JPG с IP-камеры в виде двоичных данных. В 1С может применяться для фотографирования объектов.

1 стартмани

10.09.2019    11308    35    sivin-alexey    8    

Согласование задач из Outlook

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Согласование задач непосредственно из почтовой программы, в моем случае Outlook 2013 без каких-либо дополнительных настроек. Из почты отправляется GET запрос к HTTP-сервису 1С, который в свою очередь выполняет задачу.

1 стартмани

06.09.2019    8765    12    duhh    17    

Телеграм 1С – почти коробка

Внешние источники данных v8 Абонемент ($m)

Почему это решение называется «почти коробка»? Потому, что это почти коробочное решение. С его помощью, просто добавив подсистему в конфигурацию, уже можно начинать взаимодействовать с мессенджером Telegram.

10 стартмани

20.08.2019    13912    25    zfilin    66    

Работа с релизами 1С и договорами ИТС Промо

WEB БСП (Библиотека стандартных подсистем) v8 1cv8.cf Абонемент ($m)

Работа с релизами 1С и партнерским кабинетом.

2 стартмани

15.08.2019    14727    43    RocKeR_13    15    

Шаблон http-сервиса для вашего проекта

Внешние источники данных WEB Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации. Также прилагаю пример мобильного приложения для работы с данным сервисом (получает номенклатуру и остатки на складе). Сервис очень быстро разворачивается и масштабируется под ваши задачи.

3 стартмани

04.05.2019    19795    76    MarkoSokolov    47    

1С и WebKit. Вариант взаимодействия

WEB v8 1cv8.cf Абонемент ($m)

В результате перехода на WebKit тип свойства Документ у поля, имеющего вид ПолеHTMLДокумента, изменился с COMОбъект на ВнешнийОбъект. Также изменилась DOM модель документа, доступная через это свойство.

2 стартмани

23.02.2019    30137    77    mi1man    57    

Строим маршруты на картах в 1С с помощью OpenStreetMap, OSRM и Leaflet

WEB v8 1cv8.cf Транспорт, автопарки, такси Абонемент ($m)

Краткая статья о том как вывести на карту (в 1С) маршруты с помощью OpenStreetMap, OSRM и Leaflet. По данной системе очень мало примеров, но так как OpenStreetMap является бесплатным сервисом и не требует никаких ключей и регистраций, и является довольно мощным механизмом, решил написать небольшую статью "как это сделать?". В первую очередь скажу, все намного проще, если вы используете последнюю версию платформы (8.3.14), где есть поддержка практически всех браузеров (IE 11, EDGE, Mozilla), но что делать если у нас не самая свежая платформа, где поддержка только IE 9?

2 стартмани

12.02.2019    26371    101    Ditron    94    

Проверка VAT номеров Промо

WEB v8 1cv8.cf Абонемент ($m)

Обработка для вызова сервиса проверка VAT номера.

1 стартмани

26.11.2018    12917    2    wtlz    1    

Яндекс карты 2.1. Построение маршрута. Передача длины маршрута в реквизит формы

WEB v8 1cv8.cf Абонемент ($m)

Пригодится как пример использования Яндекс карты 2.1 для построения маршрута.

1 стартмани

24.01.2019    14391    76    John_d    32    

Загрузка чека онлайн-касс (загрузка товаров из чека)

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

Обработка-пример, позволяет любому и из любой конфигурации загрузить информацию о товарах из чека(и не только) из почтового сообщения, отправленного из приложения ФНС проверка чеков.

2 стартмани

08.10.2018    21553    39    echo77    73    

Мониторинг показателей систем 1С 8.3 с помощью Zabbix

Внешние источники данных Zabbix v8 1cv8.cf Абонемент ($m)

Опишу свой опыт мониторинга наших систем 1С с помощью Zabbix и ту пользу, которую можно извлечить из этого.

1 стартмани

05.10.2018    41243    57    akimych    48    

Трекинг номеров РПО в Почте России Промо

WEB Оптовая торговля Оптовая торговля v8 Оптовая торговля, дистрибуция, логистика Абонемент ($m)

Относительно недавно Почта России стандартизировала и описала сервисы получения информации о регистрируемом почтовом отправлении (РПО). Представляю вашему вниманию конфигурацию-обертку над сервисами Почты России. Она позволяет просто (http-запросы) и без изменений конфигурации подключить сервисы отслеживания к своим информационным системам.

2 стартмани

28.03.2016    27313    11    Smaylukk    3    

Работа с публикациями "Инфостарт"

Практика программирования О сообществе WEB v8 УУ Абонемент ($m)

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    22056    13    RocKeR_13    16    

SOAP для чайников

Обмен через XML WEB v8 1cv8.cf Абонемент ($m)

Немножко про SOAP сервис. И пример работы с подключением и получением данных по SOAP за 5 минут.

1 стартмани

05.09.2018    51844    46    dusha0020    18    

Класс-обработка “Работа с картами Яндекс”

Разработка внешних компонент WEB v8 Абонемент ($m)

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    25693    202    RSConsulting    16    

Работа с картой. Кадастровый учет (Росреестр). Тематические карты Промо

WEB Рабочее место v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка для работы с картами в 1С. Получения изображения с публичной кадастровой карты России, построения тематических карт

5 стартмани

31.08.2017    18714    15    vipchep    0    

Пример использования REST API Яндекс Диска

WEB v8 1cv8.cf Абонемент ($m)

Пример использования REST API Яндекс Диска: чтение диска, добавление каталога, загрузка файла, скачивание файлов или каталогов, удаление файлов или каталогов.

1 стартмани

26.06.2018    25898    42    MKFreeUser    15    

Обмен файловыми базами данных через Yandex диск

WEB v8 Россия Абонемент ($m)

Выполнение операций обмена с Yandex диском для файловых БД, по протоколу WebDav, в автоматическом или ручном режимах.

1 стартмани

11.06.2018    17484    7    slimper    1    

RabbitMQ + 1С. Быстрый старт

Внешние источники данных v8 1cv8.cf Абонемент ($m)

Внешняя компонента для отправки сообщения из 1С в кролика. Сервис прослушивания и перенаправления сообщений из кролика в http или web-сервис.

1 стартмани

10.06.2018    31198    93    Goleff74    41    

Работа с картами 1С 4 в 1: Яндекс, Google , 2ГИС, OpenStreetMap(OpenLayers) Промо

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

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

1 стартмани

28.12.2012    107010    1205    Smaylukk    355    

Чтение сжатого gzip, deflate HTTP ответа сервера. Без ВК. Уменьши время загрузки и сократи трафик в 3 раза

WEB v8 1cv8.cf Абонемент ($m)

В платформе 1С:Предприятие не реализовано штатного механизма декодирования ответа веб серверов, в которых присутствует gzip сжатие. Некоторые использовали WinHttpRequest.5.1 , кто-то писал ВК. Друзья, хватит. Вот вам решение.

1 стартмани

08.06.2018    15989    80    Malfarion    16    

Конфигурация для просмотра публичных телеграм каналов

WEB v8 Абонемент ($m)

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

1 стартмани

02.06.2018    18233    11    DO_WHILE_LOOP    7    

Экономим время на ввод операций в 1С: Деньги

Внешние источники данных Обработка документов Банковские операции Банковские операции v8 1cv8.cf Домашние учет и финансы Абонемент ($m)

Рабочее решение автоматического создания операций в 1С: Деньги. Основано на анализе СМС.

1 стартмани

14.05.2018    14140    16    vsbronnikov    25    

Что нам стоит Push построить Промо

Внешние источники данных v8 v8::Mobile Абонемент ($m)

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

1 стартмани

08.09.2016    27980    17    PloAl    8    

Интеграция между Atlassian Jira и 1С:Предприятие 8.3 используя Jira REST API (выборка, создание и изменение запросов, чтение, создание и удаление записей о работах, чтение комментариев и другие возможности)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с Atlassian Jira используя Jira REST API. Ключевые функции: выборка запросов с использованием JQL; добавление и изменение запросов; добавление, изменение и удаление записей о работах; чтение комментариев к запросам; сохранение всех ключевых параметров между сеансами работы. Тестирование проводилось на платформе 1С (8.3.11.2954) совместно с JIRA Server platform (7.3.7)

1 стартмани

24.04.2018    33184    183    Ko1t    81    

Простая и пошаговая интеграция Яндекс-Алисы и 1С

WEB v8 Абонемент ($m)

Интеграция Алисы и 1С через http сервис на платформе 8.3.9. Используем виртуальный сервер, сертификат от letsencrypt, и делаем простые запросы к базе из Алисы.

1 стартмани

09.04.2018    23138    19    kiv1c    35    

Чтение и запись из таблиц гугл (google sheets) в табличный документ 1С (8.3, управляемые формы)

Внешние источники данных WEB v8 v8::УФ 1cv8.cf Абонемент ($m)

Внешняя обработка на управляемой форме для 1С версии 8.3 для доступа к сервисам Google Sheets c использованием протокола авторизации OAuth 2.0. Выполняет получение списка листов таблицы гугл, чтение таблицы гугл в табличный документ 1С и запись из табличного документа 1С в таблицу гугл. Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.11.2954).

1 стартмани

09.04.2018    40597    270    Ko1t    76    

Оповещения из ЗУП и ERP в TELEGRAM

Внешние источники данных v8 ERP2 ЗУП3.x Абонемент ($m)

Начитался статей про интеграцию 1С -> Telegram, решил аккумулировать опыт и попробовать сделать какую-нибудь полезную обработку. Как результат - внешняя обработка, уведомляющая ответственных сотрудников по расписанию о необходимости оплаты отпусков, материальной помощи, премий. Данные посылаются в виде PDF файла (Отчет, созданный на основании макета). Можно использовать обработку как обучающую. Тестировалось на ERP 2.4.2.139, на ЗУП 3.X тоже должно работать.

1 стартмани

01.03.2018    14956    55    khabibullin.tu    14    

2 в 1: Проверить действительность паспорта / Получить ИНН по паспорту

Обработка справочников WEB Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::УФ ERP2 БП3.0 ЗУП3.x Россия БУ Абонемент ($m)

Представляю вашему вниманию внешнюю обработку заполнения элемента справочника "Физические лица". Обработка выполнена с использованием API (для работы необходим доступ в интернет), содержит полностью открытый код и 2 команды: Проверка документа, удостоверяющего личность, в списке недействительных паспортов и Заполнение ИНН по паспортным данным.

1 стартмани

27.02.2018    23472    149    VladimirElohov    39    

Построение маршрута доставки с расчётом расстояния для любой базы УФ

Универсальные обработки WEB Оптовая торговля Оптовая торговля v8 v8::УФ 1cv8.cf Абонемент ($m)

Графическое изображение маршрутного листа по картам гугл. Работает на любой конфигурации с управляемыми формами. Использует новую версию api google-карт от 13.02.2018 года под IE11.

10 стартмани

24.02.2018    36215    43    KorotkovRV    16    

Сервер push сообщений “Push0k“ 18.05

WEB v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.12.2017    18474    12    PloAl    20    

Проверка орфографии средствами Yandex Speller

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

Проверка орфографии средствами Yandex Speller с опциями и коррекцией ошибок. Возможность вызова как с сервера, так и с клиента (с последующим исправлением).

1 стартмани

09.11.2017    24133    57    🅵🅾️🆇    41    

Ведение локального каталога обработок с Инфостарт

Универсальные обработки WEB v8 1cv8.cf Абонемент ($m)

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

1 стартмани

06.10.2017    29813    57    rpgshnik    48