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

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

Разработка - Обмен данными 1С

КонвертацияДанных Обмен ПравилаОбмена ДопОбработки ОтборКомпоновкиДанных

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

I. Теоретическая часть

В Конвертации данных 2 (далее, КД 2) отсутствует возможность полноценного добавления в правила своих процедур и функций. Существует некоторое подобие функций — Алгоритмы, которые представляют собой сохраненные отдельно куски кода, вызываемые в нужных местах. Но алгоритмы не позволяют реализовать возможности процедурного программирования в полной мере.

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

Как раз для решения этой проблемы и предназначены Подключаемые обработки. Найти их можно на вкладке Конвертация/Подключаемые обработки.

В штатной справке по КД2 о подключаемых обработках написано следующее:

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

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

Вариант 2: Подключаемая обработка поставляет форму интерфейсной настройки параметров обмена. Например, пользователю в удобном виде может быть предоставлена возможность настроить отбор выгружаемых / загружаемых данных.

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

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

ДопОбработки.<ИмяОбработки>.<ИмяЭкспортируемойПроцедурыИлиФункции()>

Аналогично производится и обращение к форме обработки (если обработка является интерфейсной)

ДопОбработки.<ИмяОбработки>.ПолучитьФорму("<ИмяФормы>")

Для того, чтобы передать параметры из КД2 в форму и обратно, необходимо заполнить таблицу параметров обработки.

К сожалению, для возврата каких-либо параметров из формы придётся открывать её только модально. Пример передачи параметров в форму и обратно:

ФормаОбработки = ДопОбработки.<ИмяОбработки>.ПолучитьФорму("<ИмяФормы>");

//передача параметров
Для Каждого Параметр Из ПараметрыДопОбработок["<ИмяОбработки>"] Цикл
	ФормаОбработки[Параметр] = Параметры[Параметр];
КонецЦикла;

РезультатОткрытияФормы = ФормаОбработки.ОткрытьМодально();

//возврат параметров
Если РезультатОткрытияФормы <> Неопределено Тогда
	
	Для Каждого Параметр Из ПараметрыДопОбработок["<ИмяОбработки>"] Цикл
		Параметры[Параметр] = ФормаОбработки[Параметр];
	КонецЦикла;
КонецЕсли;

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

В обработке Универсальный обмен данными в формате XML (V8Exchan83) убрали возможность использования подключаемых доп. обработок. В обработке V8Exchan82 такая возможность осталась. Для того, чтобы вернуть возможность поддержки подключаемых обработок, необходимо перенести текст процедуры ЗагрузитьОбработку из V8Exchan82 в V8Exchan83.

 
 Исправленный текст процедуры ЗагрузитьОбработку()

 

Теперь завершим теоретическую часть и перейдем к практике.

II. Практическая часть

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

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

Непосредственно сама задача: В УПП есть регистр сведений, в котором хранятся отборы компоновки данных, помещенные в ХранилищеЗначений. Необходимо их перенести в ERP.

Логика решения задачи следующая:

1) Выполняется обход дерева отбора компоновки данных и собираются все объекты ссылочных типов;

2) Найденные объекты ссылочных типов выгружаются с помощью команды ВыгрузитьПоПравилу();

3) Сериализуется ОтборКомпоновкиДанных в XML-строку. Далее подменяются типы данных источника на типы данных приемника в строке;

4) ОтборКомпоновкиДанных помещается в параметр и выгружается в базу-приемник. В приемнике уже десериализуется.

Данный подход работает только в случае, когда поиска всех объектов ссылочных типов, входящих в отбор, происходит в базе-приемнике по внутреннему идентификатору (UUID).

Код ПВД:

Регистр = "pll_ОграниченияОтображенияСвойств";

Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ 
|	pll_ОграниченияОтображенияСвойств.Номенклатура КАК Источник,
|	pll_ОграниченияОтображенияСвойств.Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
|	pll_ОграниченияОтображенияСвойств.Свойство,
|	pll_ОграниченияОтображенияСвойств.УникальныйИдентификатор,
|	pll_ОграниченияОтображенияСвойств.Условие
|ИЗ
|	РегистрСведений.pll_ОграниченияОтображенияСвойств КАК pll_ОграниченияОтображенияСвойств";

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

Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
	ХранилищеУсловий = Выборка.Условие.Получить();
	ОтборКомпоновки = ХранилищеУсловий.НастройкиКомпоновкиДанных.Отбор;
	
	//проверка на заполненность отбора компоновки
	Если НЕ ОтборКомпоновки.Элементы.Количество() Тогда
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Пустой отбор компоновки! Выгрузка отменена. Регистр: " + Регистр + ", номенклатура: " + Выборка.Источник + 
		", свойство: " + Выборка.Свойство+", УИД строки: "+Выборка.УникальныйИдентификатор;
		Сообщение.Сообщить();
		
		Продолжить;
	КонецЕсли;	
	//Вызов доп. обработки по обходу дерева	
	РезультатОбхода = ДопОбработки.ОбходДерева.ОбойтиДерево(ОтборКомпоновки, Параметры.ВыгруженныеОбъекты);
	
	//ВыгруженныеОбъекты - массив ссылочных объектов
	Параметры.ВыгруженныеОбъекты = РезультатОбхода.ВыгруженныеОбъекты;
	ОтборКомпоновки = РезультатОбхода.ОтборКомпоновки;	
	
	//Выгружаем ссылочные объекты
	Для каждого Элемент из Параметры.ВыгруженныеОбъекты Цикл
		ВыгрузитьПоПравилу(Элемент);
	КонецЦикла;
	
	//Преобразовываем отбор компоновки в XML-строку
	ЗаписьXML = Новый ЗаписьXML; 
	ЗаписьXML.УстановитьСтроку();
	
	СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ОтборКомпоновки);
	СтрокаXML = ЗаписьXML.Закрыть();
	
	//подменяем типы данных в XML-строке
	СоответствиеОбъектов = Новый Соответствие;
	СоответствиеОбъектов.Вставить("pll_ЦветПолимерногоПокрытия", "ЗначенияСвойствОбъектов");
	//...
	//...
	//СоответствиеОбъектов.Вставить("", "");
	//здесь описываются какие типы данных нужно подменить
	// где Ключ - Тип данных УПП, значение - Тип данных ERP
	
	Для каждого Элемент Из СоответствиеОбъектов Цикл
		СтрокаXML = СтрЗаменить(СтрокаXML, "d3p1:CatalogRef."+Элемент.Ключ, "d3p1:CatalogRef."+Элемент.Значение);
	КонецЦикла;
	
	ИсходящиеДанные = Новый Структура("Источник, Свойство, ЭтоГруппа, ОтборКомпоновки, УникальныйИдентификатор");
	ЗаполнитьЗначенияСвойств(ИсходящиеДанные,Выборка);	
	ИсходящиеДанные.ОтборКомпоновки = СтрокаXML;
	
	ВыгрузитьПоПравилу(,,ИсходящиеДанные,,"КВСХ_ОграниченияВводаСвойств");
КонецЦикла;

Код модуля обработки по обходу дерева при выгрузке:

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

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

Процедура ДобавитьВМассив(Объект, ВыгруженныеОбъекты)
	
	Если ОбщегоНазначения.ЗначениеСсылочногоТипа(Объект) И ВыгруженныеОбъекты.Найти(Объект) = Неопределено Тогда
		ВыгруженныеОбъекты.Добавить(Объект);
	КонецЕсли;
	
КонецПроцедуры

Послесловие

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

К сожалению, для использования доп. обработок в правилах обмена необходимо дорабатывать функционал обработки "Универсальный обмен данными в формате XML".

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

Правила обмена разрабатывались в системе Конвертация данных, редакция 2.1 (2.1.8.2) для конфигураций 1С:ERP Управление предприятием 2 (2.4.10.62) и Управление производственным предприятием, редакция 1.3 (1.3.86.3). Справочник pll_ЦветПолимерногоПокрытия и регистр сведений pll_ОграниченияОтображенияСвойств являются самостоятельно добавленными объектами и отсутствуют в типовой версии Управление производственным предприятием.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. aximo 1601 15.06.20 07:24 Сейчас в теме
прошу привести практический пример из реальной жизни использования подключаемых обработок.
2. Drivingblind 127 15.06.20 07:30 Сейчас в теме
(1) вся вторая часть статьи - реальный пример из практики. Если он кажется недостаточно реальным, то вот ещё один вариант: открытие формы доп. обработки для сопоставления номенклатур разных баз при загрузке данных.
3. aximo 1601 15.06.20 07:36 Сейчас в теме
(2) "РезультатОбхода = ДопОбработки.ОбходДерева.ОбойтиДерево(ОтборКомпоновки, Параметры.ВыгруженныеОбъекты);" - возможно ли данную задачу решить запросом с выборкой обхода результата по группировкам (не применяя "внешние обходы"?)
4. Drivingblind 127 15.06.20 08:23 Сейчас в теме
(3) в теории, наверное, можно. Одну и ту же задачу можно решить по-разному. Как вариант, попробовать привести дерево значений к таблице значений и обойти ТЗ с помощью запроса. На практике, мне кажется, проще и быстрее будет обойти дерево рекурсивно с помощью доп. обработки. Но я могу ошибаться.

Тем более, на примере выше ТЗ пришлось бы ещё и преобразовывать обратно в Отбор СКД.
5. Yashazz 3317 15.06.20 09:01 Сейчас в теме
Грамотно, дельно, полезно. Спасибо, плюсую!
Drivingblind; +1 Ответить
6. Drivingblind 127 15.06.20 12:15 Сейчас в теме
7. xioxao 30.07.20 16:58 Сейчас в теме
Плюсанул не глядя, инфа уникальная. Спасибо автору.
Drivingblind; +1 Ответить
8. Drivingblind 127 31.07.20 12:15 Сейчас в теме
Оставьте свое сообщение

См. также

Копирование числовых ячеек из 1С в Excel Промо

Загрузка и выгрузка в Excel Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

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

15.01.2019    23115    itriot11    24    

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

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

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

12.06.2020    4024    aximo    17    

Лайфхаки конвертации данных 2.1

Обмен данными 1С v8 КД Россия Бесплатно (free)

В данной статье будут рассмотрены десять приемов работы с конвертацией данных 2.1. Указанные приемы явно не описываются в документации (справке), но их полезно знать и применять. Для наглядности приёмы работы сопровождаются описанием реализации и практическими примерами.

07.06.2020    5280    Alexsandr_Retunskiy    7    

Как мы РИБ на веб-сервисы переводили

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

Решение проблем обмена РИБ с 10+ баз с помощью веб-сервисов и базы обмена.

13.05.2020    3560    RSConsulting    22    

Excel vs 1С: битва с неожиданным исходом Промо

Анализ учета Универсальные обработки Загрузка и выгрузка в Excel Финансовые Управленческие v8 1cv8.cf Россия Бесплатно (free)

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019    35690    bolefirenko    116    

Механизм XDTO

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

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

12.05.2020    4769    totchaz    3    

5 ситуаций, когда в экосистеме 1C нужны веб-сервисы

Обмен данными 1С v8 Бесплатно (free)

В 1С существует немало возможностей для обмена данными, включая файловый обмен и COM Connector. В этой статье я расскажу, когда при интеграции 1С не обойтись без веб-сервисов, а также в чем плюсы использования SOAP или, наоборот, HTTP. Кроме этого речь пойдет про рабочие инструменты и примеры использования веб-сервисов. Веб-сервисы — достаточно простая штука. Существует множество инструкций по их созданию, так что запустить свой сервис может почти каждый. Сложности возникают тогда, когда веб-сервисы начинают куда-то встраивать, например, в системы 1С.

24.03.2020    7473    Neti    4    

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

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

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

16.04.2019    19832    m-rv    17    

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

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

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

04.03.2020    4451    partizand    6    

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

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

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

29.02.2020    4712    VAAngelov    11    

[БСП] Обмен через Конвертацию данных 2.1

Обмен через XML v8 1cv8.cf Бесплатно (free)

Добавим новый план обмена и настроим в БСП типовой обмен через правила конвертации данных (КД 2.1)

03.02.2020    7117    John_d    16    

Из Excel в 1С запросом Промо

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

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

14.08.2018    19724    m-rv    5    

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

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

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

24.01.2020    4697    e-9    2    

Обмен через Конвертацию данных 2.1 во внешней обработке + Запуск внешней обработки по расписанию (БСП)

Обмен через XML v8 1cv8.cf Бесплатно (free)

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

22.01.2020    5607    John_d    30    

Как сделать обмен данными через универсальный формат быстрее? Реализация многопоточного обмена данными

Обмен данными 1С Обмен через XML v8 1cv8.cf Бесплатно (free)

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

31.12.2019    7870    ids79    17    

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

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

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

04.03.2016    61188    starik-2005    99    

Заметки по Конвертации данных 3.0

Обмен данными 1С v8 1cv8.cf Бесплатно (free)

Написал небольшие заметки по конвертации данных 3.0.

18.11.2019    13864    John_d    16    

Обсудим планы обмена. Способы регистрации объектов к обмену

Обмен данными 1С v8 1cv8.cf Бесплатно (free)

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

16.11.2019    17987    aximo    35    

И снова "Конфигурация узла распределенной ИБ не соответствует ожидаемой"

Распределенная БД (УРИБ, УРБД) Обмен данными 1С v8 Бесплатно (free)

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

05.11.2019    6022    Kobra_RU    11    

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

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

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

25.06.2018    28018    olegtymko    47    

Использование XML-схемы из макета внешней обработки

Обмен через XML Универсальные функции v8 1cv8.cf Бесплатно (free)

Простой способ использования XML-схем из макета внешней обработки.

28.10.2019    10504    Olesia_Matusevich    10    

Преобразование XML в таблицу значений или иной объект 1С методом XSL преобразования

Универсальные функции Обмен через XML v8 1cv8.cf Бесплатно (free)

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

24.10.2019    10626    kraspila    28    

Обертка функций Excel на русском. Ускорение процесса разработки.

Загрузка и выгрузка в Excel Универсальные функции v8 Бесплатно (free)

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

24.10.2019    7080    DmitryKotov    6    

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

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

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

11.05.2018    22708    V.Stavinsky    11    

Реализация продвинутой обработки запросов HTTP сервиса

Обмен данными 1С Конфигурирование 1С v8 1cv8.cf Россия Бесплатно (free)

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

05.10.2019    3283    malikov_pro    4    

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

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

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

04.10.2019    6842    handscenter    12    

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

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

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

23.09.2019    12776    Yashazz    27    

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

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

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

10.08.2015    148215    tormozit    65    

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

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

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

10.09.2019    9453    ivanek    21    

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

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

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

02.09.2019    20897    user5300    41    

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

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

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

22.08.2019    14280    ids79    8    

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

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

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

05.05.2017    27316    unichkin    3    

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

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

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

13.08.2019    10841    vikulinamari    7    

Программное создание xml (а можно и HTML) на основе xml схемы (XSD), через фабрику XDTO

Обмен через XML v8 1cv8.cf Бесплатно (free)

Объект XDTO, Фабрика XDTO, ПакетXDTO - как же это все сложно, или нет?

20.05.2019    9768    Eret1k    12    

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

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

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

15.05.2019    7550    forusing    4    

РИБ 200 узлов. Середина пути Промо

Распределенная БД (УРИБ, УРБД) v8 Розница Россия Бесплатно (free)

Между настройкой и поддержкой РИБ на 2 узла и на 10 большой разницы нет, а вот когда число удаленных точек переваливает за сотню, приходится решать уже совсем другие вопросы

25.10.2016    39269    comol    215    

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

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

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

22.04.2019    9384    maks_20    9    

Преобразование EXCEL в таблицу значений без COM и других извращений

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Получение таблицы значений из excel в 1С v8, без COM, внешних источников данных и т.д. EXCELВТаблицуЗначений() - За 10 строчек кода! Реализация протестирована на 1С 8.3.12.1714 (x64).

18.04.2019    26950    Eret1k    44    

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

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

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

15.04.2019    20607    vik070777    12    

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

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

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

07.08.2015    66366    tormozit    27    

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

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

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

21.03.2019    25538    barelpro    82    

Cannot insert duplicate key. Кто виноват и что делать

Распределенная БД (УРИБ, УРБД) Тестирование и исправление v8 Бесплатно (free)

Ошибка "CANNOT INSERT DUPLICATE KEY" в базах 1С и связанная с ней "магия".

25.02.2019    20938    YPermitin    32    

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

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

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

15.01.2019    14733    wowik    13    

Загрузка из EXCEL в 1С на платформе 8.3.6/8.3.7/8.3.8/8.3.9/8.3.10 (с картинками) Промо

Практика программирования Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Импорт содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в таблицу значений.

06.04.2015    234657    StepByStep    75    

Запись одной книги Excel на нескольких листах средствами 1С (без внешних компонент)

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Пользователи часто просят сохранить им стопиццот отчетов в один файл Excel, чтобы отчеты были в одном файле. Ну или клиент хочет счет, накладную и счет-фактуру получить в одном документе. 1С умеет это делать без всяких там COM-объектов. Давайте разберемся, куда нажимать и что крутить.

14.01.2019    21151    starik-2005    26    

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д)

Загрузка и выгрузка в Excel v8 1cv8.cf Бесплатно (free)

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д). На примере загрузки в табличную часть документа Поступление товаров и услуг в УТ 11.4.

09.01.2019    12525    rasdag    14    

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

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

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

26.12.2018    25730    ids79    31    

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

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

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

11.09.2014    72096    StepByStep    27    

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

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

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

14.12.2018    39493    ids79    72