Пример рекурсивной выгрузки иерархической структуры в XDTO

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

Разработка - Математика и алгоритмы

XDTO XDTO иерархия XDTO иерархия рекурсия

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

Что такое XDTO?

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

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

Чтобы абстрагироваться от всей этой наносной терминологической мути, давайте тупо создадим пакет XDTO, замутим в нем иерархию и заставим ее выгружаться в XML-файл. И никаких дебрей терминологии - пусть терминологи идут рыть канавы - больше пользы)))

1. Создадим пакет XDTO

Для этого открываем конфигуратор и жамкаем правой кнопкой на XDTO-пакеты (в общих). Дальше нажимаем "Добавить":

Да, вот так все просто. Кстати, пакет можно импортировать из файла XSD. Дальше надо прописать пакету какое-нибудь имя и это долбанное "URI пространства имен" (это любые символы, какие вам заблагорассудятся, но они потом будут использованы, так что креативчика поубавьте, чтобы не писать три страницы). Наш пакет пустой - он предмет простой (с). Давайте усложним - добавим Тип значений и пару Типов объектов:

Я, как видите, занялся идеей выгружать иерархическую структуру предприятия (кстати, ее потом сюда - в XDTO-пакет - можно будет загрузить и обойти). Поэтому я добавил Тип "УникальныйИдентификатор" и два Типа объектов - Классификатор и Подразделение. В классификаторе я определяю первичный контейнер для данных, а подразделение будет субконтейнером. В принципе, полагаю, можно обойтись и одним Подразделением, но так обычно не бывает и иерархический элемент воткнут в какой-то внешний контейнер.

Для Классификатора и Подразделения и создаю три свойства: Ид (с типом "УникальныйИдентификатор", который определен в пакете), Наименование и Подразделения с субконтейнером "Подразделение". Для свойства "Подразделение" я указываю тип "Подразделение" и прописываю минимальное и максимальное количество (0 и -1 соответственно). Это нужно для того, чтобы мы, во-первых, могли указать, что у данного подразделения нет подчиненных, а, во-вторых, могли бы указать любое количество подчиненных подразделений.

Так, с пакетом все.

2. Напишем код выгрузки

Создали пакеты, сохранили конфигурацию и создали внешнюю обработочку, да? Тогда давайте приступим к наполнению ее кодом.

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

Пакет = ФабрикаXDTO.Пакеты.Получить("sample-my-package");

Классификатор = ФабрикаXDTO.Создать(Пакет.Получить("Классификатор"));
Классификатор.Ид = ""+ (Новый УникальныйИдентификатор);
Классификатор.Наименование = "Организационная структура";

Видите, как просто! Получаем пакет из базовой фаблики по имени URI, чтоб ему пусто было. Никак не могу понять, кто эту хрень придумал, ну да ладно - не в этом суть. Главное - мы получили пакет, из которого теперь можем дергать свойства и создавать объекты XDTO. Дальше в коде мы получили на основании типа объекта "Классификатор" соответствующий объект XDTO. Дальше заполняем поля. А вот с иерархией все сложнее. Для простого случая можно сделать так:

Подразделения = ФабрикаXDTO.Создать(Пакет.Получить("Классификатор").Свойства.Получить("Подразделения").Тип);
Подразделение = ФабрикаXDTO.Создать(Пакет.Получить("Подразделение"));
Подразделение.Ид = ""+Выборка.УИН;
Подразделение.Наименование = Выборка.Наименование;
Подразделения.Подразделение.Добавить(Подразделение);

Тут мы добавили первый элемент в список подразделений. Чтобы подразделения попали в выгрузку, нам надо поместить объект "Подразделения" в Классификатор:

Классификатор.Подразделения = Подразделения;

В итоге мы получим только такой вот файл, если выгрузим это в XML:

<?xml version="1.0" encoding="UTF-8"?>
<Классификатор xmlns="sample-my-package" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<Ид>1ea4a653-d292-4769-8ef7-91db4293f9b8</Ид>
	<Наименование>Организационная структура</Наименование>
	<Подразделения>
		<Подразделение>
			<Ид>6f87e821-722c-11df-b336-0011955cba6b</Ид>
			<Наименование>Бухгалтерия</Наименование>
		</Подразделение>
	</Подразделения>
</Классификатор>

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

Классификатор.Подразделения = ВыгрузитьРекурсивно(Пакет, "СтруктураПредприятия");

Далее сама функция:

Функция ВыгрузитьРекурсивно(Пакет, Справочник, Родитель = Неопределено)
	
	Если Родитель = Неопределено Тогда 
		Уровень = ФабрикаXDTO.Создать(Пакет.Получить("Классификатор").Свойства.Получить("Подразделения").Тип);
	Иначе
		Уровень = ФабрикаXDTO.Создать(Пакет.Получить("Подразделение").Свойства.Получить("Подразделения").Тип);
	КонецЕсли;
	ЕстьОбъекты = Ложь;
	
	Для Каждого Выборка ИЗ ПолучитьМассивЗначений(Справочник, Родитель) Цикл 
		ЕстьОбъекты = Истина;
		Подразделение = ФабрикаXDTO.Создать(Пакет.Получить("Подразделение"));
		Подразделение.Ид = ""+Выборка.УИН;
		Подразделение.Наименование = Выборка.Наименование;
		ПодразделенияУровня = ВыгрузитьРекурсивно(Пакет, Справочник, Выборка.Ссылка);
		Если НЕ ПодразделенияУровня = Неопределено Тогда 
			Подразделение.Подразделения = ПодразделенияУровня;
		КонецЕсли;
		Уровень.Подразделение.Добавить(Подразделение);
	КонецЦикла;
	
	Возврат ?(ЕстьОбъекты, Уровень, Неопределено);
КонецФункции

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

В итоге вот такой файлик получился при выгрузке из демоторговли:

<?xml version="1.0" encoding="UTF-8"?>
<Классификатор xmlns="sample-my-package" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<Ид>1ea4a653-d292-4769-8ef7-91db4293f9b8</Ид>
	<Наименование>Организационная структура</Наименование>
	<Подразделения>
		<Подразделение>
			<Ид>6f87e821-722c-11df-b336-0011955cba6b</Ид>
			<Наименование>Бухгалтерия</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>c37c8fa9-7ae7-11df-b33a-0011955cba6b</Ид>
			<Наименование>Касса</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>163cab6d-35ae-11e0-aefc-0015e9b8c48d</Ид>
			<Наименование>Ларек "Розница"</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>93961168-ed19-11e2-802e-0015e9b8c48d</Ид>
			<Наименование>Магазин "Бытовая техника"</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>163cab59-35ae-11e0-aefc-0015e9b8c48d</Ид>
			<Наименование>Магазин "Продукты"</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>163cab5a-35ae-11e0-aefc-0015e9b8c48d</Ид>
			<Наименование>Магазин "Электротовары"</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>a4212b47-730a-11df-b338-0011955cba6b</Ид>
			<Наименование>Магазины (НТТ)</Наименование>
			<Подразделения>
				<Подразделение>
					<Ид>163cab6d-35ae-11e0-aefc-0015e9b8c48d</Ид>
					<Наименование>Ларек "Розница"</Наименование>
				</Подразделение>
				<Подразделение>
					<Ид>93961168-ed19-11e2-802e-0015e9b8c48d</Ид>
					<Наименование>Магазин "Бытовая техника"</Наименование>
				</Подразделение>
				<Подразделение>
					<Ид>163cab59-35ae-11e0-aefc-0015e9b8c48d</Ид>
					<Наименование>Магазин "Продукты"</Наименование>
				</Подразделение>
				<Подразделение>
					<Ид>163cab5a-35ae-11e0-aefc-0015e9b8c48d</Ид>
					<Наименование>Магазин "Электротовары"</Наименование>
				</Подразделение>
			</Подразделения>
		</Подразделение>
		<Подразделение>
			<Ид>9e5ddc14-175a-11e2-bfa2-0015e9b8c48d</Ид>
			<Наименование>Отдел доставки</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>4d9d0772-7ab1-11df-b33a-0011955cba6b</Ид>
			<Наименование>Отдел закупок</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>51ed67e2-7220-11df-b336-0011955cba6b</Ид>
			<Наименование>Отдел логистики</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>51ed67a5-7220-11df-b336-0011955cba6b</Ид>
			<Наименование>Отдел маркетинга</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>be8a7643-f8df-11e2-802f-0015e9b8c48d</Ид>
			<Наименование>Отдел оптовых продаж</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>51ed67e1-7220-11df-b336-0011955cba6b</Ид>
			<Наименование>Отдел продаж</Наименование>
			<Подразделения>
				<Подразделение>
					<Ид>be8a7643-f8df-11e2-802f-0015e9b8c48d</Ид>
					<Наименование>Отдел оптовых продаж</Наименование>
				</Подразделение>
				<Подразделение>
					<Ид>6f87e81f-722c-11df-b336-0011955cba6b</Ид>
					<Наименование>Отдел работы с дилерами</Наименование>
				</Подразделение>
				<Подразделение>
					<Ид>6f87e820-722c-11df-b336-0011955cba6b</Ид>
					<Наименование>Отдел работы с дистрибьюторами</Наименование>
				</Подразделение>
				<Подразделение>
					<Ид>be8a7644-f8df-11e2-802f-0015e9b8c48d</Ид>
					<Наименование>Отдел розничных продаж</Наименование>
				</Подразделение>
				<Подразделение>
					<Ид>49278eed-7ef4-11df-866e-00d0d0817f92</Ид>
					<Наименование>Торговые представители</Наименование>
				</Подразделение>
			</Подразделения>
		</Подразделение>
		<Подразделение>
			<Ид>6f87e81f-722c-11df-b336-0011955cba6b</Ид>
			<Наименование>Отдел работы с дилерами</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>6f87e820-722c-11df-b336-0011955cba6b</Ид>
			<Наименование>Отдел работы с дистрибьюторами</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>be8a7644-f8df-11e2-802f-0015e9b8c48d</Ид>
			<Наименование>Отдел розничных продаж</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>6f87e81d-722c-11df-b336-0011955cba6b</Ид>
			<Наименование>Сервисная служба</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>1418c674-7307-11df-b338-0011955cba6b</Ид>
			<Наименование>Склад мебели</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>6f87e81e-722c-11df-b336-0011955cba6b</Ид>
			<Наименование>Склады</Наименование>
			<Подразделения>
				<Подразделение>
					<Ид>1418c674-7307-11df-b338-0011955cba6b</Ид>
					<Наименование>Склад мебели</Наименование>
				</Подразделение>
				<Подразделение>
					<Ид>1418c675-7307-11df-b338-0011955cba6b</Ид>
					<Наименование>Торговый зал</Наименование>
				</Подразделение>
				<Подразделение>
					<Ид>1418c673-7307-11df-b338-0011955cba6b</Ид>
					<Наименование>Центральный склад</Наименование>
				</Подразделение>
			</Подразделения>
		</Подразделение>
		<Подразделение>
			<Ид>49278eed-7ef4-11df-866e-00d0d0817f92</Ид>
			<Наименование>Торговые представители</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>1418c675-7307-11df-b338-0011955cba6b</Ид>
			<Наименование>Торговый зал</Наименование>
		</Подразделение>
		<Подразделение>
			<Ид>1418c673-7307-11df-b338-0011955cba6b</Ид>
			<Наименование>Центральный склад</Наименование>
		</Подразделение>
	</Подразделения>
</Классификатор>

Вообще, ничего не жалко для народа - выкладываю свою наработку за недорого, если кто все же не понял, что и как.

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

Наименование Файл Версия Размер
ВыгрузкаКлассификатора.epf

.epf 7,05Kb
25.02.16
16
.epf 7,05Kb 16 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. charushkin 28.02.16 11:55 Сейчас в теме
Не понял, для чего вы создали тип УникальныйИдентификатор? Все равно вы айдишники в строку преобразуете.
Еще у вас на выходе неправильная XML-ка получилась - подразделения нижних уровней присутствуют и на верхнем уровне тоже. Например, подразделение "Склады" и содержит вложенные подразделения "Центральный склад", "Склад мебели" и т.д., а далее эти же подразделения идут сами по себе, без указания вложенности:
<Подразделение>
<Ид>6f87e81e-722c-11df-b336-0011955cba6b</Ид>
<Наименование>Склады</Наименование>
<Подразделения>
<Подразделение>
<Ид>1418c674-7307-11df-b338-0011955cba6b</Ид>
<Наименование>Склад мебели</Наименование>
</Подразделение>
<Подразделение>
<Ид>1418c675-7307-11df-b338-0011955cba6b</Ид>
<Наименование>Торговый зал</Наименование>

</Подразделение>
<Подразделение>
<Ид>1418c673-7307-11df-b338-0011955cba6b</Ид>
<Наименование>Центральный склад</Наименование>
</Подразделение>
</Подразделения>
</Подразделение>
<Подразделение>
<Ид>49278eed-7ef4-11df-866e-00d0d0817f92</Ид>
<Наименование>Торговые представители</Наименование>
</Подразделение>
<Подразделение>
<Ид>1418c675-7307-11df-b338-0011955cba6b</Ид>
<Наименование>Торговый зал</Наименование>

</Подразделение>

В таком случае было бы проще не упаковывать вложенные подразделения в отдельный контейнер, а добавить свойство "ИДРодителя"
2. starik-2005 2180 28.02.16 23:16 Сейчас в теме
(1) hulio, замечательно, что Вы заметили.
1. По вопросу у УИН, то это как пример того, как можно определять типы данных в XDTO-пакете.
2. По поводу файла, то действительно вывелось все и сразу. Причиной тому - передача "Неопределено" в функцию, в которой выбирается текущий уровень через выборку справочника. Это легко исправляется.
3. По поводу ИД родителя, то это не удовлетворяет условию разбираемой тут задачи, а именно - выгрузка иерархического справочника с помощью рекурсии.

Надеюсь, я смог ответить на все Ваши вопросы.
Оставьте свое сообщение

См. также

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

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

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

11.07.2014    33176    29    1C_MApteka    37    

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

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

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

1 стартмани

29.06.2020    4828    1    shmalevoz    19    

Telegram бот на 1С

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

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

1 стартмани

24.09.2019    13273    31    budidich    19    

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

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

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

1 стартмани

10.09.2019    9588    30    sivin-alexey    8    

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

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

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

5 стартмани

30.03.2018    24413    34    Ditron    68    

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

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

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

1 стартмани

06.09.2019    7542    12    duhh    17    

Конвейер проверки качества кода

Инструментарий разработчика Практика программирования Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    22291    21    Stepa86    44    

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

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

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

10 стартмани

20.08.2019    11938    22    zfilin    64    

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

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

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

1 стартмани

20.12.2011    21274    3    hrip    10    

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

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

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

2 стартмани

15.08.2019    12957    39    RocKeR_13    13    

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

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

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

3 стартмани

04.05.2019    17923    71    MarkoSokolov    47    

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

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

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

2 стартмани

23.02.2019    26094    72    mi1man    55    

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

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

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

2 стартмани

28.03.2016    25575    10    Smaylukk    3    

Строим маршруты на картах в 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    22783    88    Ditron    75    

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

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

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

1 стартмани

24.01.2019    12471    68    John_d    32    

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

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

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

1 стартмани

26.11.2018    11361    1    wtlz    1    

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

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

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

5 стартмани

31.08.2017    16647    11    vipchep    0    

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

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

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

1 стартмани

05.10.2018    36345    52    akimych    48    

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

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

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

1 стартмани

13.09.2018    20297    13    RocKeR_13    16    

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

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

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

1 стартмани

05.09.2018    43884    37    dusha0020    18    

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

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

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

1 стартмани

28.12.2012    102219    1158    Smaylukk    348    

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

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

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

1 стартмани

01.08.2018    22653    191    RSConsulting    15    

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

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

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

1 стартмани

26.06.2018    22907    36    MKFreeUser    14    

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

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

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

1 стартмани

11.06.2018    16178    5    slimper    1    

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

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

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

1 стартмани

08.09.2016    26429    17    PloAl    8    

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

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

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

1 стартмани

10.06.2018    27579    82    Goleff74    41    

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

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

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

1 стартмани

08.06.2018    14267    71    Malfarion    16    

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

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

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

1 стартмани

02.06.2018    16734    10    DO_WHILE_LOOP    7    

Определение кратчайших путей, критических путей одним запросом Промо

Математика и алгоритмы v8 1cv8.cf Абонемент ($m)

Еще два примера применения алгоритма каскадного матричного умножения, впервые описанного в статье «Транзитивное замыкание запросом» http://infostart.ru/public/158512/

1 стартмани

07.04.2014    36930    22    ildarovich    31    

Интеграция между 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    29503    167    Ko1t    77    

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

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

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

1 стартмани

09.04.2018    21206    18    kiv1c    34    

Чтение и запись из таблиц гугл (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    36119    237    Ko1t    72    

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

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

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

1 стартмани

01.03.2018    13787    54    khabibullin.tu    14    

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

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

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

10 стартмани

24.02.2018    33873    42    KorotkovRV    16    

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

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

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

1 стартмани

19.12.2017    16844    12    PloAl    20    

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

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

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

1 стартмани

09.11.2017    21936    56    🅵🅾️🆇    40    

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

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

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

1 стартмани

06.10.2017    28158    56    rpgshnik    48    

Подсистема Вики - интеграция 1С и сайта под управлением MediaWiki

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

Редактирование статей сайта Mediawiki из 1С. Формирование функционального описания конфигурации на сайте Вики.

1 стартмани

19.09.2017    27258    35    shmalevoz    20    

«Горыныч - то НЕ НАСТОЯЩИЙ!» … или О Конвертации Данных ред.3 (КД 3) и обменах в универсальном формате Enterprise Data… доступным русско-народным языком

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 v8 КД Абонемент ($m)

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

1 стартмани

13.06.2017    20422    140    Davlad_A    16    

Обработка для автоматического формирования XSD-пакета (xsd-файл) для загрузки в XDTO пакет в 1С 8.3

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

Обработка для автоматического формирования XSD-пакета (xsd-файл) для загрузки в XDTO пакет в 1С 8.3

1 стартмани

25.04.2017    22056    66    mityushov.vv    20    

Процессор вывода результата компоновки данных в JSON. И не только...

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

У каждого разработчика возникают задачи интеграции решений. Основная масса решений призвана вывести данные из «1С:Предприятие 8» в обусловленном формате. Разработчики используют огромную часть своих драгоценных ресурсов на реализацию определенной структуры вывода и необходимого формата. А что если...

1 стартмани

14.02.2017    22713    44    pbazeliuk    27    

Разбор адреса на составляющие с помощью Яндекс API и Google API

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

Есть адрес строкой, а нужно разбить его на составляющие? Для этого не обязательно писать собственный код, пользуемся Яндекс API и Google API.

1 стартмани

10.02.2017    25746    104    Ivon    24    

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

WEB Инструментарий разработчика Практика программирования v8 1cv8.cf Россия Абонемент ($m)

Описана методика создания парсеров json-файлов для любой конфигурации 1С. Приложена тестовая конфигурация и обработки-парсеры для обычного и управляемого приложений. Материал предназначен для разработчиков на базе 1С, занимающихся вопросами автоматизации бизнес процессов, обмена данными, сопряжения 1С с web-сайтами и сервисами.

4 стартмани

09.01.2017    23577    37    O-Planet    30    

Выгрузка метаданных конфигурации 1С в Visio 2010/2013 (для 8.3)

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

Обработка выгрузки метаданных конфигурации 1С в ER-диаграмму Visio 2010/2013 (для 8.3)

2 стартмани

30.11.2016    19065    120    pfihr    18    

Работа с двоичными данными на примере чтения файлов изображений. Новые возможности 8.3.9

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

В статье приводятся новые функции по работе с двоичными данными, появившимися в версии платформы 8.3.9 , на примере анализа формата и размера изображений. А также пример отправки изображения через API ВКонтакте с помощью новых объектов (без использования ОбъединитьФайлы())

1 стартмани

14.11.2016    23860    16    Anton64    22