1С Предприятие 8.2: Обмен данными между базами на основе инструментов SQL

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

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

tregger триггер SQL View Views обмен данными регистрация изменений таблицы SQL

Обмен данными (сотрудники организаций) между базами (1С Предприятие 8.2: Бухгалтерия и 1С Предприятие 8.2: Зарплата и управление персоналом) на основе триггера SQL, отслеживающего изменения таблицы

Задача: организовать обмен данными между базами без использования промежуточных файлов и COM подключения к 1С приложению. Желательно использовать инструменты SQL. 

Источники:

  1. Отслеживаем изменения в таблице с помощью триггеров Transact SQL
  2. ADODB: Прямая запись и другие операции с SQL - таблицами (MS SQL server 2000)
  3. Структура хранения базы данных

 Обмениваться необходимо данными по сотрудникам организации из базы ЗиУП. При помощи обработки "Структура хранения БД" находим нужную нам таблицу SQL. После этого необходимо повесить на неё триггер, регистрирующий изменения и записывающий эти изменения в отдельную таблицу в отдельной базе. После этого при помощи Views отслеживаем и фильтруем необходимы изменения и записываем в базу.

 

Создание базы и таблицы.

Итак, приступим. Нам понадобится отдельная база.

Create DataBase ExchangeDB
Alter DataBase ExchangeDB SET Recovery Simple
Alter DataBase ExchangeDB SET Auto_Shrink ON

В этой базе создадим таблицу:

USE [ExchangeDB]
GO
/****** Object: Table [dbo].[_Employee_Changes] Script Date: 11/05/2013 10:10:29 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[_Employee_Changes](
[_IDRRef] [binary](16) NOT NULL,
[_ChangeType] [nvarchar](10) NOT NULL,
[_Unload] [datetime] NOT NULL,
[_Load] [datetime] NULL,
[_Code] [nchar](10) NULL,
[_Description] [nvarchar](100) NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO

Поясню некоторые поля таблицы. Поле "_ChangeType" предназначено для записи типа изменения ("inserted", "delited", "updated"). Поле "_Unload" показывает время изменения. Поле "_Load" используется для записи времени загрузки изменения (для разных баз можно использовать отдельное поле). Результат показан на рис. 1

Рис. 1

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


Создание триггера SQL.

Я повесил Job такого содержания:

USE [Zup]
GO
/****** Object: Trigger [dbo].[_Employee_changes_trigger] Script Date: 10/28/2013 12:00:16 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
--====================================
if exists (select * from sys.triggers where name ='_Employee_changes_trigger')
drop trigger _Employee_changes_trigger
Go
Create trigger [dbo].[_Employee_changes_trigger]
on [Zup].[dbo].[_Reference124] FOR INSERT, UPDATE, DELETE NOT FOR REPLICATION
as
-- SET NOCOUNT ON добавлен чтобы не было лишних результатов выполнения операции
set NOCOUNT ON;

-- определеяем тип произошедших изменений INSERT,UPDATE, or DELETE
declare @change_type as varchar(10)
declare @count as int
set @change_type = 'inserted'
select @count = COUNT(*) FROM DELETED
if @count > 0
  begin
       set@change_type = 'deleted'
        select @count = COUNT(*) from INSERTED
        if @Count > 0
        set @change_type = 'updated'
  end
-- обработка удаления
if @change_type = 'deleted'
  begin
        insert into ExchangeDB.dbo._Employee_Changes(
 _IDRRef, 
_ChangeType,
_Unload,
_Load,
_Code,
_Description
) select
_IDRRef,
'delited',
GETDATE(),
NULL,
_Code,
_Description from deleted
end
else
  begin
-- триггер не различает вставку и удаление, так что добавим ручную обработку
-- обработка вставки
if @change_type = 'inserted'
  begin
    insert into ExchangeDB.dbo._Employee_Changes( 
_IDRRef, 
_ChangeType,
_Unload,
_Load,
_Code,
_Description
) select
_IDRRef,
'inserted',
GETDATE(),
NULL,
_Code,
_Description from inserted
end
-- обработка обновления
else
  begin
    insert into ExchangeDB.dbo._Employee_Changes(
 _IDRRef, 
_ChangeType,
_Unload,
_Load,
_Code,
_Description
) select
_IDRRef,
'updated',
GETDATE(),
NULL,
_Code,
_Description from inserted
end
end -- завершение if
-- завершение 

 В соответствующей таблице должен появитьяс триггер, как показано на рис. 2

Рис. 2

Результат работы триггера представлен на рисунке 3.

Рис. 3

 Создание Views

Далее создаем View таблицы "Сотрудники организации" с необходимыми нам полями (далее разбор на конкретном примере со своей нетиповой спецификой):

USE [ExchangeDB]
GO
/****** Object: View [dbo].[V_Reference124] Script Date: 11/05/2013 11:48:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[V_Reference124]
AS
SELECT ZuP.dbo._Reference124._IDRRef, ZuP.dbo._Reference124._Marked, ZuP.dbo._Reference124._Code, ZuP.dbo._Reference124._Description,
ZuP.dbo._Reference53._Description AS CurrentPosition, ZuP.dbo._Reference124._Fld1812 AS HiringDate, ZuP.dbo._Reference124._Fld1813 AS TerminationDate,
ZuP.dbo._Reference124._Fld9932 AS DriverLicence, ZuP.dbo._Reference9960._Code AS GarageCode, ZuP.dbo._Reference9960._Description AS Garage
FROM ZuP.dbo._Reference124 LEFT OUTER JOIN
ZuP.dbo._Reference9960 ON ZuP.dbo._Reference124._Fld10102RRef = ZuP.dbo._Reference9960._IDRRef LEFT OUTER JOIN
ZuP.dbo._Reference53 ON ZuP.dbo._Reference124._Fld1811RRef = ZuP.dbo._Reference53._IDRRef
GO

Создаём View для таблицы изменений (различные добавленные линейные водители):

USE [ExchangeDB]
GO
/****** Object: View [dbo].[V_Distinct_Employee_ChangesLD_Inserted] Script Date: 11/05/2013 13:58:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[V_Distinct_Employee_ChangesLD_Inserted]
AS
SELECT dbo.V_Reference124._IDRRef, dbo.V_Reference124._Marked, dbo.V_Reference124._Code, dbo.V_Reference124._Description, dbo.V_Reference124.CurrentPosition,
dbo.V_Reference124.HiringDate, dbo.V_Reference124.TerminationDate, dbo.V_Reference124.DriverLicence, dbo.V_Reference124.GarageCode,
dbo.V_Reference124.Garage
FROM (SELECT DISTINCT _IDRRef
FROM dbo._Employee_Changes
WHERE (_ChangeType = 'inserted') AND (_Load IS NULL)) AS Changes LEFT OUTER JOIN
dbo.V_Reference124 ON Changes._IDRRef = dbo.V_Reference124._IDRRef
WHERE (dbo.V_Reference124.CurrentPosition = N'Линейный водитель')
GO

Создаем View для таблицы изменений (различные обновленные линейные водители)

USE [ExchangeDB]
GO
/****** Object: View [dbo].[V_Distinct_Employee_ChangesLD_Updated] Script Date: 11/05/2013 14:12:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE VIEW [dbo].[V_Distinct_Employee_ChangesLD_Updated]
AS
SELECT dbo.V_Reference124._IDRRef, dbo.V_Reference124._Marked, dbo.V_Reference124._Code, dbo.V_Reference124._Description, dbo.V_Reference124.CurrentPosition,
dbo.V_Reference124.HiringDate, dbo.V_Reference124.TerminationDate, dbo.V_Reference124.DriverLicence, dbo.V_Reference124.GarageCode,
dbo.V_Reference124.Garage
FROM (SELECT DISTINCT _IDRRef
FROM dbo._Employee_Changes
WHERE (_ChangeType = 'updated') AND (_Load IS NULL)) AS Changes LEFT OUTER JOIN
dbo.V_Reference124 ON Changes._IDRRef = dbo.V_Reference124._IDRRef
WHERE (dbo.V_Reference124.CurrentPosition = N'Линейный водитель')
GO

Таким образом, мы получили 3 Views (рис.4)

Рис. 4

Данные View по изменениям сотрудников представлены на рис. 5

Рис. 5

 

Регламентное задание

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

//SQL загрузка
//************Функции***************

Функция ВернутьЗначениеИзМассиваБулево(СомМассив)
   
Массив = Новый Массив();
   
Массив = СомМассив.Выгрузить();
   
Пометка = Массив.Получить(0);
    Если
Пометка = 0 тогда
        Возврат Ложь;
    Иначе
        Возврат Истина;
    КонецЕсли;
КонецФункции

Функция
ПреобразоватьДату(ДатаПреобразования)
    Возврат
Дата(Число(Сред(ДатаПреобразования,7,4))-2000,Сред(ДатаПреобразования,4,2),Лев(ДатаПреобразования,2));
КонецФункции

//************Процедуры*************
Процедура ТМ_ЗагрузкаВодителейСКЛ() Экспорт
   
СтрокаКоннекта = "Provider=SQLOLEDB;Password=*****;Persist Security Info=True;User ID=ExchangeDBwriter;Initial Catalog=ExchangeDB;Data Source=localhost";
   
Connection = Новый COMОбъект("ADODB.Connection");
   
Command = Новый COMObject("ADODB.Command");
   
RecordSet = Новый COMObject("ADODB.RecordSet");
    
Connection.ConnectionString = СтрокаКоннекта;
   
Connection.ConnectionTimeOut = 120;
   
Connection.CursorLocation = 3;
   
Connection.IsolationLevel = 4096;
    
ТЗ = Новый ТаблицаЗначений;
   
ТЗ.Колонки.Добавить("Код");
   
ТЗ.Колонки.Добавить("ПометкаУдаления");
   
ТЗ.Колонки.Добавить("Наименование");
   
ТЗ.Колонки.Добавить("ДатаПриема");
   
ТЗ.Колонки.Добавить("ДатаУвольнения");
   
ТЗ.Колонки.Добавить("НомерЛицензии");
   
ТЗ.Колонки.Добавить("Гараж");
    Попытка
       
Connection.Open();
    Исключение
        Возврат;
    КонецПопытки;
    
//сначала загружаем новые элементы
   
Text="select * from V_Distinct_Employee_ChangesLD_Inserted";
   
Command.ActiveConnection = Connection;
   
Command.CommandTimeout = 120;
   
Command.CommandText = Text;
    Попытка
       
RecordSet.Open(Command);
    Исключение
       
Connection.Close();
        Возврат;
    КонецПопытки;
    Пока НЕ (
RecordSet.EOF) Цикл
       
НоваяСтрока = ТЗ.Добавить();
        
НоваяСтрока.Код = RecordSet.Fields("_Code").Value();
       
ПометкаУдаления = ВернутьЗначениеИзМассиваБулево(RecordSet.Fields("_Marked").Value());
       
НоваяСтрока.ПометкаУдаления = ПометкаУдаления;
       
НоваяСтрока.Наименование = RecordSet.Fields("_Description").Value();
       
НоваяСтрока.ДатаПриема = ПреобразоватьДату(RecordSet.Fields("HiringDate").Value());
       
НоваяСтрока.ДатаУвольнения = ПреобразоватьДату(RecordSet.Fields("TerminationDate").Value());
       
НоваяСтрока.НомерЛицензии = RecordSet.Fields("DriverLicence").Value();
       
НоваяСтрока.Гараж = Справочники.ТМ_Гаражи.НайтиПоНаименованию(RecordSet.Fields("Garage").Value());
        
RecordSet.MoveNext();
    КонецЦикла;
   
Recordset.Close();

   
//записываем данные в базу
   
Для каждого стр из тз цикл
       
//ищем сотрудника
       
ВодительСсылка = Справочники.ТМ_Водители.НайтиПоКоду(стр.Код);
        Если
ВодительСсылка = Справочники.ТМ_Водители.ПустаяСсылка() тогда
           
ВодительОбъект = Справочники.ТМ_Водители.СоздатьЭлемент();
        Иначе
           
ВодительОбъект = ВодительСсылка.ПолучитьОбъект();
        КонецЕсли;
       
ВодительОбъект.Код = стр.Код;
       
ВодительОбъект.Наименование = стр.Наименование;
       
ВодительОбъект.ПометкаУдаления = стр.ПометкаУдаления;
       
ВодительОбъект.ДатаПриема = стр.ДатаПриема;
       
ВодительОбъект.ДатаУвольнения = стр.ДатаУвольнения;
       
ВодительОбъект.НомерУдостоверенияВодителя = стр.НомерЛицензии;
       
ВодительОбъект.Гараж = стр.Гараж;
        Попытка
           
ВодительОбъект.Записать();
           
//отмечаем загруженных
           
CommandText = "UPDATE _Employee_Changes Set _Load = GetDate() where _Code='"+стр.Код+"' and _Load is NULL";
           
Connection.Execute(CommandText,,128);
        Исключение
            Продолжить;
        КонецПопытки;
    КонецЦикла;

   
//теперь пишем обновленных
   
тз.Очистить();
   
Text="select * from V_Distinct_Employee_ChangesLD_Updated";
   
Command.CommandText = Text;
    Попытка
       
RecordSet.Open(Command);
    Исключение
       
Connection.Close();
        Возврат;
    КонецПопытки;
    Пока НЕ (RecordSet.EOF) Цикл
        НоваяСтрока = ТЗ.Добавить();
        
НоваяСтрока.Код = RecordSet.Fields("_Code").Value();
       
ПометкаУдаления = ВернутьЗначениеИзМассиваБулево(RecordSet.Fields("_Marked").Value());
       
НоваяСтрока.ПометкаУдаления = ПометкаУдаления;
       
НоваяСтрока.Наименование = RecordSet.Fields("_Description").Value();
       
НоваяСтрока.ДатаПриема = ПреобразоватьДату(RecordSet.Fields("HiringDate").Value());
       
НоваяСтрока.ДатаУвольнения = ПреобразоватьДату(RecordSet.Fields("TerminationDate").Value());
       
НоваяСтрока.НомерЛицензии = RecordSet.Fields("DriverLicence").Value();
       
НоваяСтрока.Гараж = Справочники.ТМ_Гаражи.НайтиПоНаименованию(RecordSet.Fields("Garage").Value());
        
RecordSet.MoveNext();
    КонецЦикла;
   
Recordset.Close();

   
//записываем данные в базу
   
Для каждого стр из тз цикл
       
//ищем сотрудника
       
ВодительСсылка = Справочники.ТМ_Водители.НайтиПоКоду(стр.Код);
        Если
ВодительСсылка = Справочники.ТМ_Водители.ПустаяСсылка() тогда
           
ВодительОбъект = Справочники.ТМ_Водители.СоздатьЭлемент();
        Иначе
           
ВодительОбъект = ВодительСсылка.ПолучитьОбъект();
        КонецЕсли;
       
ВодительОбъект.Код = стр.Код;
       
ВодительОбъект.Наименование = стр.Наименование;
       
ВодительОбъект.ПометкаУдаления = стр.ПометкаУдаления;
       
ВодительОбъект.ДатаПриема = стр.ДатаПриема;
       
ВодительОбъект.ДатаУвольнения = стр.ДатаУвольнения;
       
ВодительОбъект.НомерУдостоверенияВодителя =?(ЗначениеЗаполнено(ВодительОбъект.НомерУдостоверенияВодителя),ВодительОбъект.НомерУдостоверенияВодителя,стр.НомерЛицензии);
       
ВодительОбъект.Гараж = стр.Гараж;
        Попытка
           
ВодительОбъект.Записать();
           
//отмечаем загруженных
           
CommandText = "UPDATE _Employee_Changes Set _Load = GetDate() where _Code='"+стр.Код+"'  and _Load is NULL";
           
Connection.Execute(CommandText,,128);
        Исключение
            Продолжить;
        КонецПопытки;
    КонецЦикла;
    
Connection.Close();
КонецПроцедуры
//SQL загрузка

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. psamt1k 06.11.13 15:14 Сейчас в теме
Изменения табличных частей, полагаю, так тоже можно сделать?
ЗЫ: поправьте пожалуйста первую ссылку, нерабочая.
2. jan27 727 06.11.13 17:03 Сейчас в теме
(1)да. у меня ссылка работает
Прикрепленные файлы:
3. EdmundoAlvares 06.11.13 21:51 Сейчас в теме
6. jan27 727 06.11.13 23:21 Сейчас в теме
4. awk 727 06.11.13 23:13 Сейчас в теме
(0) Все хорошо, но код на 1С делает все ненужным. Его нужно свести к:

Command.CommandText = "SELECT TOP 100
...
FROM ...
FOR XML";
...
RecordSet.Open(Command);
...
Пока НЕ (RecordSet.EOF) Цикл
Объект1С = CериализаторXML.ПрочитатьXML(ЗаписьXML);
Объект1С.Записать();


То есть делаем FOR XML получаем нативный сериализованый в XML формате объект 1С десериализуем и записываем.
zarucheisky; jan27; +2 Ответить
5. jan27 727 06.11.13 23:20 Сейчас в теме
(4) с недоверием отношусь к 1С-ому xml
7. script 230 09.11.13 21:22 Сейчас в теме
(4) awk,
Вы поселили вирус в голове человека.
Он ведь гордился своим решением, даже на инфостарт выложил.
Оно было сложным и технологичным, содержало 300 строк кода на разных языках,
а вы его .... убили своими 10 строчками. Так ведь и комплекс не полноценности развиться может.
Опасно однако ....
8. awk 727 09.11.13 23:35 Сейчас в теме
(7) script, Я то же делал такие решения:

1. Кода было много времени и мало знаний.
2. Когда было много знаний и мало времени.

Когда же ситуация типовая:

1. Нет ни времени ни знаний
2. Куча знаний и времени

То надо пользоваться типовыми методами - например КД + БСП.
9. jan27 727 10.11.13 14:51 Сейчас в теме
(8) пока окончательно не развился комплекс неполноценности, просветите что такое БСП?
:)))
10. cool.vlad4 45 10.11.13 17:12 Сейчас в теме
(9) jan27, библиотека стандартных подсистем,
jan27; awk; +2 Ответить
11. jan27 727 11.11.13 22:45 Сейчас в теме
(10)спасибо, чет не состыковал....)
12. jan27 727 13.11.13 18:04 Сейчас в теме
(4) при использовании "...FOR XML..." RecordSet содержит одно поле и одну строку типа ComSafeArray
13. awk 727 13.11.13 22:50 Сейчас в теме
14. jan27 727 14.11.13 05:32 Сейчас в теме
(13) а как вытащить xml оттуда?
24. hazyaka 16.07.15 17:45 Сейчас в теме
(4) awk, а есть поподробнее статьи для новичков? не могу дофатазировать что там..
15. xten 45 19.12.13 17:04 Сейчас в теме
Я правильно понимаю, что такой обмен возможно реализовать между любыми конфигурациями?
16. jan27 727 20.12.13 10:17 Сейчас в теме
(15) да. можно даже с другими базами (не 1С) - главное, чтобы на SQL бегали
17. dyak84 30.01.15 12:56 Сейчас в теме
А как зделать с отбором по организации в документах Реализация???????????????Зарание спасибо за ответ
18. jan27 727 30.01.15 16:15 Сейчас в теме
19. hanio 52 01.03.15 19:54 Сейчас в теме
Подскажите пожалуйста а как отключить триггеры?
20. jan27 727 02.03.15 13:21 Сейчас в теме
(19) например, так: drop trigger _Employee_changes_trigger
21. zekrus 153 16.04.15 13:39 Сейчас в теме
А что мешает выполнить полный обмен на стороне SQL (не используя идентификаторы базы источника)?
22. jan27 727 16.04.15 15:58 Сейчас в теме
(21) да, собственно, ничего не мешает... а чем Вам идентификаторы помешали?
23. zarucheisky 16.04.15 16:35 Сейчас в теме
Проще, для сериализуемых объектов включить CDC ( Change Data Capture), c независимыми РС можно использовать CDT (Change Data Tracking), но осторожно.

Остальное, в принципе, так же и ничего нового. Вплоть до создания view с человеческими именами & табличных функций.
Оставьте свое сообщение

См. также

Кэширование COM-соединения. Три способа Промо

Практика программирования Перенос данных из 1С7.7 в 1C8.X Внешние источники данных WEB v8 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    42368    YPermitin    41    

ВИДы на жительство. Использование внешних источников данных в прикладных задачах

Внешние источники данных v8 Бесплатно (free)

На Infostart Meetup Novosibirsk выступил ведущий разработчик МКК «Ваш Инвестор» Вадим Фоминых. Он на практических примерах показал коллегам, как его команда использует внешние источники данных в прикладных задачах, призвал не отказываться от этого инструмента и объяснил – почему.

19.04.2021    1166    Shmell    4    

Бухгалтерия 3.0. Ошибка загрузки билетов из Smartway

Внешние источники данных v8::БУ 8.3.14 БП3.0 Россия БУ Бесплатно (free)

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

18.03.2021    220    maria_vl    1    

Правила обмена больше не нужны

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

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    6882    Nikola23    35    

Перенос данных из учетных программ Парус в конфигурации 1С Промо

Внешние источники данных v7.7 v8 БП2.0 ЗУП2.5 ЗКБУ БГУ 1С7:Бух 1С7:ЗиК 1С7:ББУ Россия БУ Госбюджет Бесплатно (free)

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

05.11.2012    53017    sklowsky    16    

DaJet Exchange: обмен данными с 1С (часть 1)

Внешние источники данных v8 Бесплатно (free)

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

11.01.2021    2921    zhichkin    14    

Структура обработки загрузки номенклатуры поставщика с примерами и комментариями (часть 1)

Внешние источники данных v8 УНФ Бесплатно (free)

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

12.10.2020    924    malikov_pro    0    

Загрузка данных из Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21) "

Розничная торговля Внешние источники данных v8 БП3.0 Розничная и сетевая торговля (FMCG) Фармацевтика, аптеки Россия Бесплатно (free)

В статье представлен шаблон обработки для загрузки некоторых данных из программы Algoritm-S в конфигурацию "Бухгалтерия предприятия 3.0 (3.0.79.21)

04.08.2020    1529    RPGrigorev    0    

Сканируем без сканера или MXL to JPG Промо

Внешние источники данных Универсальные функции Печатные формы документов v8 1cv8.cf Бесплатно (free)

Хотите конвертировать документы в формат изображения менее чем за минуту, не имея сканера? Тогда эта статья для вас.

24.05.2012    34504    shakmaev    47    

Интеграции с сервером SQL. Быстро и просто

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Решаем вопросы экспорта/импорта данных в базы отличного от 1С происхождения.

06.07.2020    3002    Infector    4    

Структура обработки загрузки цен и остатков поставщика с примерами и комментариями

Внешние источники данных WEB v8 1cv8.cf Россия Бесплатно (free)

В статье опишу структуру обработки по загрузке цен и остатков от поставщика с примерами.

27.06.2020    1968    malikov_pro    0    

Диадок. Подключаемый модуль. Отладка

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Небольшой пример, как работать с подключаемым модулем Диадок (для изменения УПД перед выгрузкой на сайт Диадок.). Отладка подключаемого модуля, если не смогли подключить стандартную отладку.

17.06.2020    7863    John_d    10    

Как мы загружаем данные в "Центр управления кассами Магнита"

Внешние источники данных Интеграция v8 1cv8.cf Бесплатно (free)

Статья о том, как мы делали механизм загрузки больших объемов данных в "Центр управления кассами Магнита"

08.05.2020    5484    chernenko_vv    25    

Интеграция СуперОкна7 и УНФ

Интеграция Внешние источники данных v8 УНФ Россия Бесплатно (free)

Изучаем базу данных СуперОкна7, смотрим возможности передачи и получения информации.

08.05.2020    2631    vostok1.dz    3    

Синхронизация БИТ:СКУД 8 с Parsec.Net 2.5

Интеграция Внешние источники данных v8 1cv8.cf Бесплатно (free)

Настройка синхронизации БИТ:СКУД 8 с Parsec.Net.2.5, выгрузка данных из внешней системы контроля доступа.

04.05.2020    4502    RPGrigorev    0    

Получение данных из Сигур

Внешние источники данных v8 1cv8.cf Бесплатно (free)

Получение данных из СКУД Сигур (без танцов с бубном)

25.12.2019    5670    skaoxy    6    

Выгрузка из 1С номенклатуры со штрихкодами без программирования

Загрузка и выгрузка в Excel Внешние источники данных v8 УТ11 Россия Бесплатно (free)

Я так и не смог найти простой инструкции или обработки, чтобы выгрузить из 1С: Управление торговлей 11 номенклатуру вместе со штрихкодами, поэтому решил написать собственную инструкцию.

28.08.2019    20503    user1114182    4    

Вставка BLOB в таблицы ORACLE средствами 1С 8.х с использованием Microsoft OLEDB Provider

Внешние источники данных v8 1cv8.cf Россия Бесплатно (free)

Столкнулся с необходимостью выгружать картинки из 1С 8 в ORACLE-таблицу.

08.08.2019    4961    nomad_irk    0    

Выгрузка данных в таблицу MS SQL SERVER

Внешние источники данных v8 Бесплатно (free)

Процедура по выгрузке данных из 1C (таблица значений) в таблицу MS SQL SERVER через COM.

02.07.2019    10457    EvgenSav    18    

1С и компьютерное зрение: новый подход к контролю за ассортиментом магазина

Розничная торговля Внешние источники данных Розничная торговля v8 1С:Франчайзи, автоматизация бизнеса УУ Бесплатно (free)

Машинное зрение в магазинах и 1С. Как поднять эффективность торгового предприятия (магазин. кафе, шоурум и т.д.) с совершенно неожиданной стороны? Как получить реальные демографические данные покупателей и, самое главное, как это использовать в повседневной работе магазина? Как можно расширить привычные ABC и XYZ анализ, добавив в них пласт данных о трафике и демографии покупателей? Что необходимо для 1С, чтобы использовать данные видеоанализа людского трафика?

20.06.2019    9452    osipov_cvizi    16    

MS Access и 1С. Что, когда и зачем?

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

Об использовании MS Access в связке с 1С. Можно ли использовать продукты Office на сервере. Когда Access может быть полезен. Примеры работы и другое.

09.04.2019    32705    YPermitin    46    

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

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

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

21.03.2019    28821    barelpro    87    

Загрузка ЭЛН (электронных листов нетрудоспособности) из файлов

Внешние источники данных Зарплата Зарплата v8 УПП1 Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Что делать, если по каким-то причинам нет возможности разместить 1С и Крипто-Про на одном рабочем месте? Правильно - открывать конфигуратор и пилить. Благо, там не сложно. Непосредственно решение для УПП 1.3. Для ЗиК 2.5 и Комплексной автоматизации должно быть аналогично.

07.02.2019    7337    SatanClaws    5    

Работа с кассой Atol через веб-сервер ДТО-10

Внешние источники данных ККМ Фискальный регистратор Кассовые операции Кассовые операции v8 Россия НДС Бесплатно (free)

Поддержка многопользовательской печати на одном устройстве ККТ. Поддержка изменений в законодательстве (Переход на ФФД 1.05 и НДС 20%).

31.12.2018    48170    medangel    65    

RabbitMQ, Python и Windows. Step By Step

Внешние источники данных v8 Бесплатно (free)

Работа с шиной RabbitMQ, используя Python на Windows. Пошаговый быстрый старт.

13.12.2018    10534    w.r.    9    

Из 1С в IIKO: Передаем перемещения УТ в приходные накладные

Внешние источники данных Оптовая торговля Оптовая торговля v8 УТ11 Рестораны, кафе и фаст-фуд УУ Бесплатно (free)

Рассмотрение вариантов передачи документа "Перемещение товаров" из Управление торговлей 11 в документ "Приходная накладная" IIKO.

12.09.2018    9239    oyti    9    

IIKO (Айко). Обмениваемся накладными с 1С

Внешние источники данных v8 БП3.0 Рестораны, кафе и фаст-фуд БУ УУ Бесплатно (free)

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

01.06.2018    19541    oyti    23    

Юридически значимый электронный документооборот с Контур.Диадок

Внешние источники данных v8 НУ НДС Бесплатно (free)

Пример использования компоненты DiadocComApi http://diadocsdk-1c.readthedocs.io/ru/latest/

31.05.2018    13161    savostin.alex    8    

Интеграция Zimbra и 1С

Внешние источники данных Управление взаимоотношениями с клиентами (СRM) Управление взаимоотношениями с клиентами (СRM) v8 Россия УУ Бесплатно (free)

В публикации описывается способ интеграции 1С с почтовым сервером Zimbra, используя SOAP сервис. Рассматривать вопрос интеграции будем на примере бизнес задачи, из блока CRM. Реализации общей адресной книги(GAL-Global Address List) между сотрудниками. Сотрудники(компания) ведет весь учет в 1С, в том числе и элементы CRM, а Zimbra выступает лишь в роли почтового сервиса. Сделать данную публикация побудило отсутствие в интернете готовых примеров совместной работы 1С и Zimbra. Надеюсь, она поможет кому-либо сократить время на реализацию похожей задачи.

16.04.2018    12701    Гексагон    18    

Обмен сведениями о пособиях с ФСС для Зарплата и Управление персоналом 2.5.129.3

Внешние источники данных Зарплата Зарплата v8 v8::СПР ЗУП2.5 Россия БУ ФОМС, ПФ, ФСС Бесплатно (free)

Ошибка отправки файла при обмене сведениями о пособиях с ФСС. Зарплата и Управление Персоналом, редакция 2.5 (2.5.129.3).

06.03.2018    20126    Igorexa    30    

Загрузка данных из DocsVision

Внешние источники данных v8 Бесплатно (free)

Необходимо было реализовать загрузку данных из программы документооборота "DocsVision 5" в "1С:Документооборот 8". Данное описание оставляю больше для себя, чтобы не забыть, ну и, может, еще кому поможет, т.к. не нашел нигде нормального описания.

17.01.2018    9683    apxi    4    

Создание мобильного клиента 1С на Android с использованием HTTP-сервисов

Внешние источники данных Мобильная разработка v8 v8::Mobile Бесплатно (free)

Краткий курс по созданию мобильного приложения на Android, который связывается с сервером 1С через HTTP-сервис. Публикация рассчитана на тех, кто хорошо знаком с программированием на платформе 1С и владеет основами программирования на платформе Android (умеет создавать Activity и знает, как устроена структура проекта).

03.11.2017    34955    cdiamond    21    

Как сделать конфигурацию «1С:Предприятие 8» приложением QuickBooks. Проходим авторизацию OAuth 1.0a+OpenID 2.0

Внешние источники данных Практика программирования v8 Бесплатно (free)

Пришло время, когда интеграция со сторонними организациями и их приложениями стала необходимостью для успешного ведения бизнеса. В этой статье будет рассмотрено прохождение авторизации OAuth 1.0a+OpenID 2.0 и превращение конфигурации «1С:Предприятие 8» в приложение QuickBooks.

10.09.2017    21326    pbazeliuk    30    

Редактирование пользовательских полей в Битрикс24 через REST API

Внешние источники данных v8 1cv8.cf Россия Бесплатно (free)

Меняем значения пользовательских полей в Битрикс24 через REST API на примере редактирования контактов

06.02.2017    16576    user662672_explorer2000    4    

Нагрузочное тестирование сервера 1С при использовании WEB сервисов

Производительность и оптимизация (HighLoad) Внешние источники данных WEB v8 ИТ-компания Бесплатно (free)

Проведение нагрузочного тестирования WEB-сервисов, развернутых на платформе 1С. Целью тестирования является ознакомление с возможностями платформы 1С при работе с большим количеством запросов через опубликованные WEB сервисы на IIS 7.5

01.02.2017    28593    BraunAlex    34    

Передаем контакты из 1С в Битрикс24 через REST API

Внешние источники данных v8 УТ11 Россия Бесплатно (free)

Хочу поделиться опытом использования Битрикс24 REST API для экспорта контактов из 1С УТ 11

09.01.2017    61563    user662672_explorer2000    114    

Используем механизмы обмена данными БСП для произвольного обмена

Универсальные функции Внешние источники данных БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

Механизм БСП заточен на обмен XML по правилам обмена. Чтобы использовать его для любого другого обмена, коих в мире немало, требуются доработки. В статье описан вариант, как из положения выйти.

23.08.2016    35898    Патриот    33    

Технология проведения миграции данных в крупных проектах

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

В статье систематизируется проектный опыт проведения миграции данных в крупных проектах, связанных с переходом Заказчиков на работу в конфигурациях «1С:Предприятие 8».

17.05.2016    36972    cinimex    26    

7 причин, почему интеграцию необходимо строить на очередях. Практика RabbitMQ. Отказ от Zato ESB и OData в 1С

Внешние источники данных v8 Бесплатно (free)

Этот набросок является продолжение предыдущей статьи "7 причин, почему интеграция стала приятной. Не упускайте ряд потрясающих возможностей". В большей части это описание боли, через которую пришлось пройти на практике, используя сервисную шину данных Zato ESB и OData протокол совместно с «1С:Предприятие 8».

18.03.2016    69347    pbazeliuk    129    

1C + ЭДО Мегафон

Практика программирования Внешние источники данных v8 1cv8.cf Бесплатно (free)

Тестируем модуль обмена 1С с ЭДО Мегафон (модуль прилагается пользователям ресурса ЭДО Мегафон бесплатно).

1 стартмани

21.12.2015    14185    JetBrain    4    

Linq to ODATA

Внешние источники данных v8 1cv8.cf Бесплатно (free)

1С сейчас совершенствует REST интерфейс приложения, автоматически генерируемый платформой, и протокол обмена ODATA версии 3. С недавнего времени появилась возможность обмениваться, используя JSON. На просторах интернета мало информации по использованию Linq для ODATA для 1С. Поэтому решил поделиться опытом. Это продолжение статей https://infostart.ru/public/402433/

29.09.2015    34032    Serginio    11    

Алгоритм выгрузки из 1С в Access

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

Работающий алгоритм выгрузки из 1С в Access. Понадобилось выгрузить отчет в ACCESS, пришлось разбираться.

31.10.2013    31280    dimens    10