Дневник megavtogal.com

МЕНЮ
  • Контакты
  • Статьи

1с обмен данными с sql таблицей

Обновлено: 06.01.2025

Коды процедур и функций:

Процедура ЗагрузитьДанные() Экспорт
SQLСервер = "(local)";
ПользовательSQLСервера = "";
ПарольSQLСервера = "";
БазаДанныхSQLСервера = "RK7_SHOWROOM";


//Подключаемся к SQL серверу
Попытка
Connection = Новый COMОбъект("ADODB.Connection");
Исключение
Возврат;
КонецПопытки;

Connection.ConnectionString = "driver=; server="+СокрЛП(SQLСервер)+
"; uid="+СокрЛП(ПользовательSQLСервера)+
"; pwd="+СокрЛП(ПарольSQLСервера)+
"; Database="+СокрЛП(БазаДанныхSQLСервера);
Попытка
Connection.Open();
Исключение
Сообщить(ОписаниеОшибки());
Возврат;
КонецПопытки;

//Выполним запрос
МассивПолей = Новый ТаблицаЗначений;
МассивПолей.Добавить("NAME");
МассивПолей.Добавить("ALTNAME");

СтруктураОтбор = Новый Структура;
СтруктураОтбор.Вставить("Status","3");


Попытка
Connection.Close();
Исключение
Возврат;
КонецПопытки;

Функция ВыполнитьЗапросSQL(МассивПолей, СтруктураОтбор,ИдТаблицыSQL)
//Объявляем таблицу значений

ТЗ_SQL = Новый ТаблицаЗначений;

ADO_RS = Новый COMОбъект("ADODB.Recordset");

//Сформируем строку выбираемых полей
ТекстSelect = "";
ВсегоПолей = МассивПолей.Количество();
н = 0;
Для Каждого ТекПоле Из МассивПолей Цикл
н = н + 1;
ТекстSelect = ТекстSelect + ТекПоле + ?(н=ВсегоПолей,"",",");
КонецЦикла;

//Сформируем строку условия
ТекстWhere = "";
ВсегоОтборов = СтруктураОтбор.Количество();
н = 0;
Для Каждого ТекОтбор Из СтруктураОтбор Цикл
н = н + 1;
ТекстWhere = ТекОтбор.Ключ + " = " + ТекОтбор.Значение + ?(н=ВсегоОтборов,""," AND ");
КонецЦикла;

//ДЛЯ КАЖДОЙ ТАБЛИЦЫ ОТДЕЛЬНЫЙ ЗАПРОС И ЗАПИХИВАТЬ РЕЗУЛЬТАТ В ТАБЛИЦУ ЗНАЧЕНИЙ.

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

Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С, и при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других технологических платформ для бизнес-приложений, с твердой уверенностью скажет вам, что ему нравится больше всего в 1С. Конечно конструктор запросов - самый удобный и продуманный механизм написания запросов для получения данных из реляционных структур, который я лично когда-либо встречал. А теперь 1С нам предоставили такую замечательную возможность использовать его не только с 1С, но и с любыми другими таблицами. Вот только в эту "бочку мёда" насыпана куча "ложек дёгтя". Обо всём по порядку:

1) Настройка и использование - без "танцев с бубном" не получится

a) Добавляете внешний источник данных - вроде ничего сложного.

б) Ставите галочку "Выбрать из списка" - обязательно - это нужно, чтобы проверить работоспособность уже вначале, и избавить себя от лишних заморочек.

- обязательно нажимаем ". " - подключение именно ODBC. Не OLEDB как мы все привыкли, а на уровень ниже

А вот здесь будьте ОЧЕНЬ ВНИМАТЕЛЬНЫ.
Это драйвер ODBC - в случае использования клиент-серверной версии он должен обязательно быть на сервере. Если вы ведёте разработку на одной системе, а рабочая версия на другой (как это обычно бывает) убедитесь что вас не ждут сюрпризы. Странная рекомендация, но выбирайте самый древний или самый общий драйвер в случае, если вас не особо заботит скорость и за пределы возможностей стандарта SQL92 вы выходить не намерены. Это обеспечит вам лучшую совместимость. Например для SQL Server 2008 лучшим драйвером будет SQL Server Native Client 11, но рекомендую выбирать просто SQL Server, иначе этот самый native client придётся устанавливать либо на сервер, либо на все клиентские машины (в случае использования файловой версии), а выигрыша особого для простых задач он не даст.

д) Стандартные диалоги выбора Сервера

е) На вопрос сохранения пароля рекомендую ответить "да", иначе так и не получится это дело запустить.

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

з) А теперь запускаете, открываете конструктор запросов - выбираете тупо все записи из таблицы и ОПА - ошибка. Что делать? Если у вас управляемый интерфейс - заглянуть в меню сервис, а если обычный.
Я лично использовал вот такой код:

Параметры = ВнешниеИсточникиДанных . DAX . ПолучитьОбщиеПараметрыСоединения ();
Параметры . АутентификацияСтандартная = Истина;
Параметры . ИмяПользователя = "sa" ;
Параметры . Пароль = "pas" ;
Параметры . СтрокаСоединения = "DRIVER=;SERVER=servet;UID=sa;PWD=;DATABASE=database" ;
Параметры . СУБД = "MSSQLServer" ;

ВнешниеИсточникиДанных . DAX . УстановитьОбщиеПараметрыСоединения ( Параметры );
ВнешниеИсточникиДанных . DAX . УстановитьПараметрыСоединенияПользователя ( ИмяПользователя (), Параметры );
ВнешниеИсточникиДанных . DAX . УстановитьПараметрыСоединенияСеанса ( Параметры );

ВнешниеИсточникиДанных . DAX . УстановитьСоединение ();

Может каких-то кусков и не нужно, но это работает. Выполнить код нужно ОДИН РАЗ. После чего будет нормально подключаться. мистика конечно - зачем это было нужно не понятно.

2) Источники данных только для чтения
Да, чудес не бывает. но иногда так хочется.

3) НЕЛЬЗЯ ИХ ИСПОЛЬЗОВАТЬ ВМЕСТЕ С ВНУТРЕННИМИ ИСТОЧНИКАМИ ДАННЫХ
Меня лично этот факт убил наповал

Как же так. то, чего так ждали и уже представляли и облизывались, как мы сейчас в одном запросе соединим наши данные с 1С-кой свернём - сгруппируем, вставим в отчет, а не тут-то было.

Но, естественно, опытных людей это не останавливает. какая мысль пришла в голову? Правильно - временные таблицы:

4) НЕЛЬЗЯ ИХ ИСПОЛЬЗОВАТЬ ВМЕСТЕ С ВРЕМЕННЫМИ ТАБЛИЦАМИ

А вот это уже не похоже на технологические трудности, а очень смахивает на то что нам хотят "чтобы жизнь раем не казалась" сделать :).

5) Можно использовать только в соединениях СКД
Для тех кто не знает - это в СКД на вкладке "Связи наборов данных". Часто вы ими пользуетесь? Удобно? Видимо так нас хотят принудить к использованию их чаще. Вот только там есть колонка "Условие связи" и "Параметр связи". Ни в одной типовой конфигурации не нашел примера их использования, в документации и у Хрусталевой тоже как-то всё не прозрачно. Кто-нибудь сможет мне объяснить как работает "условие связи"? Если там написать РеквизитИсточника = РевизитПриемника это не работает. Конечно условие можно записать в поле "Выражение" - в большинстве случаев этого хватает. вот только как-то не очень просто получается.

Итого ранее эта задача решалась где-то так:

ДатаНач = КомпоновщикНастроек . Настройки . ПараметрыДанных . Элементы [ 5 ]. Значение ;
ДатаКон = КомпоновщикНастроек . Настройки . ПараметрыДанных . Элементы [ 4 ]. Значение ;
Если ДатаКон > '20100101' Тогда
ДатаКон = '20100101' ;
КонецЕсли;

КЧ = Новый КвалификаторыЧисла ( 15 , 2 );
КС = Новый КвалификаторыСтроки ( 255 );

МассивЧисло = Новый Массив ();
МассивЧисло . Добавить ( Тип ( "Число" ));

МассивСтрока = Новый Массив ();
МассивСтрока . Добавить ( Тип ( "Строка" ));

МассивДата = Новый Массив ();
МассивДата . Добавить ( Тип ( "Дата" ));

//В таблицу будем заполнять бухгалтерскую себестоимость
ТипЧисло = Новый ОписаниеТипов ( МассивЧисло ,, КЧ );
ТипСтрока = Новый ОписаниеТипов ( МассивСтрока ,, КС );
ТипДата = Новый ОписаниеТипов ( МассивДата );

//таблица для загрузки данных из SQL
ТЗ = Новый ТаблицаЗначений ();
ТЗ . Колонки . Добавить ( "НоменклатураКод" , ТипСтрока );
ТЗ . Колонки . Добавить ( "Qnty" , ТипЧисло );
ТЗ . Колонки . Добавить ( "Период" , ТипДата );

ТЗ . Индексы . Добавить ( "Период" );

//Подключаемся к SQL
СтрокаПодключения = "Provider=SQLOLEDB.1;Persist Security Info=True;User Source=;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=Reports" ;
Connection = Новый COMОбъект ( "ADODB.Connection" );
Command = Новый COMОбъект ( "ADODB.Command" );
RecordSet = Новый COMОбъект ( "ADODB.RecordSet" );
Дата = "" ;
Попытка
Connection . Open ( СокрЛП ( СтрокаПодключения ));
Command . ActiveConnection = Connection ;
Command . CommandText = "Select * from PH where period >= '" + Строка ( Формат ( ДатаНач , "ДФ=ггггММдд" )) + "' and period <= '" + Строка ( Формат ( ДатаКон , "ДФ=ггггММдд" )) + "'" ;
RecordSet = Command . Execute ();
RecordSet . MoveFirst ();
Исключение
Возврат ТЗ ;
КонецПопытки;

Пока RecordSet . EOF = Ложь Цикл
Строка = ТЗ . Добавить ();
Строка . НоменклатураКод = RecordSet . Fields ( RecordSet . Fields . Item ( 1 ). Name ). Value ;
Строка . Qnty = RecordSet . Fields ( RecordSet . Fields . Item ( 12 ). Name ). Value ;
Строка . Период = RecordSet . Fields ( RecordSet . Fields . Item ( 13 ). Name ). Value ;
RecordSet . MoveNext ();
КонецЦикла;

Запрос = Новый Запрос ();
ВрТаблица = Новый МенеджерВременныхТаблиц ();
Запрос . МенеджерВременныхТаблиц = ВрТаблица ;
Запрос . УстановитьПараметр ( "врТаблицаДанных" , ТЗ );
Запрос . УстановитьПараметр ( "ДатаНач" , ДатаНач );
Запрос . УстановитьПараметр ( "ДатаКон" , ДатаКон );
Запрос . Текст = "ВЫБРАТЬ
| врТаблицаДанных.НоменклатураКод,
| врТаблицаДанных.Qnty,
| врТаблицаДанных.Период
|ПОМЕСТИТЬ ТаблицаДанных
|ИЗ
| &врТаблицаДанных КАК врТаблицаДанных
|ГДЕ
| врТаблицаДанных.Период >= &ДатаНач
| И врТаблицаДанных.Период <= &ДатаКон" ;
Запрос . Выполнить ();
ТЗ = Неопределено;

Запрос = Новый Запрос ;
Запрос . МенеджерВременныхТаблиц = ВрТаблица ;
Запрос . Текст = "Здесь запрос с участием верменной таблицы" ;

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

ВнешнийНабор = ИнициализироватьИсточникДанных ();
НаборДанных = Новый Структура ();
НаборДанных . Вставить ( "ТаблицаSQL" , ВнешнийНабор );
ТиповыеОтчеты . СформироватьТиповойОтчет ( ЭтотОбъект , Результат , ДанныеРасшифровки , ВыводВФормуОтчета , НаборДанных );

Собственно строчек кода немного и они достаточно стандартны. при этом можно пользоваться полным функционалом конструктора запросов, а в СКД отдать только функцию КОМПОНОВКИ ДАННЫХ

Но на вид чуть, конечно, не так красиво. да и выгрузка в таблицу значений каждый раз - нужно код писать и проверять, не ошибся ли в названии реквизитов. а то, что нам дали в 1С, выглядит как-то половинчато. Я ещё не определился, чем удобнее пользоваться. Вы решайте, и пишите о ваших решениях, и что вас к ним подтолкнуло.

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

Источники:

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

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

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

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

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


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

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

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

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


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


Создание Views

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

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

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

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


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


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

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

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

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

//************Процедуры*************
Процедура ТМ_ЗагрузкаВодителейСКЛ () Экспорт
СтрокаКоннекта = "Provider=SQLOLEDB;Password=*****;Persist Security Info=True;User 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С, отказоустойчивости системы.

Программные продукты фирмы 1С имеют два основных формата хранения базы данных: файловая база данных и база данных, размещенная на SQL Server средствами СУБД

В список поддерживаемых СУБД входят:

  • Microsoft SQL Server
  • PostgreSQL
  • Oracle Database
  • IBM Db2.

Файловые базы данных, как правило, используют небольшие компании с 1-5 пользователями, где нет большого объема документооборота, а также не произойдет быстрого роста объема базы данных.

Когда нужно переходить с файловой базы 1С на СУБД MS SQL?

Если конфигурация долго открывается и также долго открываются и проводятся документы, если периодически выскакивают ошибки «Нарушена целостность базы данных» или «Файл базы данных поврежден», файл ИБД *.1СD имеет объем более 5ГБ, планируется рост пользователей или в результате внедрения еще одной конфигурации 1С планируется достаточно быстрый рост объема данных, пора задуматься о вопросе, как перенести файловую базу 1С на SQL поскорее и узнать, что такое сервер 1С.

Преимущества SQL

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

При высокой отказоустойчивости и поддержке бесконечно большой базы данных SQL-сервер дает возможность одновременной работы большому числу пользователей. Конечно, наиболее мощные СУБД – MS SQL Server/Oracle стоят недешево, но бесплатный вариант PostgreSQL также широко используется в среде 1С. Да, SQL требует настройки сервера 1С и администрирования, но подобные услуги оказывает широкий круг компаний-франчайзи 1С, и конечно же – наша.

Работа с файловой базой плохо защищена, потому что доступ к копированию файла БД открыт любому пользователю, плохо масштабируется и начинает «тормозить», когда пользователей становится больше пяти из-за высокого уровня изоляции транзакций, а также имеет ограничения по размеру в 5-10 Гб. При этом отдельные функции конфигурации при таком варианте просто не работают (к примеру, регламентные задания).

Да, быстрая настройка, отсутствие дополнительного ПО и низкая цена – весьма привлекательные «черты» файловых БД, но выбор в их пользу может иметь место только при построении самой простой информационной системы.

Рис.2 Пример частой ошибки при работе с файловой базой объемом более 5Гб

Рис.2 Пример частой ошибки при работе с файловой базой объемом более 5Гб

Этапы перехода на внешнюю СУБД

Для переноса файловой базы 1С 8.3 на сервер SQL проделаем следующие шаги:

Шаг №1 Выгрузка ИБ

Откроем конфигуратор файловой версии базы 1С.

В конфигураторе выбираем пункт меню «Администрирование» и «Выгрузить информационную базу».

Итогом процесса выгрузки будет файл *.dt.

Шаг №2 Создание кластера

Для данного пункта запустим консоль управление сервером 1С.

Важно: Для работы сервера 1С обязательно требуется установка лицензии на сервер 1С.

Лицензия бывает 32х-разрядная и 64х-разрядная. Разрядность определяет количество ОЗУ доступное серверу 1С: у 32х до 4ГБ, а 64х более 4ГБ.

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

В открывшемся приложении выберите «Кластер-Создать кластер», а если кластер уже создан, выберите существующий.

Шаг №3 Создание базы данных в кластере

Следующим шагом в процессе миграции базы 1С будет создание новой конфигурации в кластере. Существует два возможных варианта создания базы 1С на сервере 1С:

  • Через консоль администрирования кластера 1С;
  • Через окно запуска 1С:Предприятие.

Создание информационной базы в кластере через консоль администрирования кластера 1С

Чтобы создать базу 1С в СУБД SQL, выбираем «Создание новой информационной базы» и заполнить обязательные поля:

  • Имя – название вашей базы 1С;
  • Сервер баз данных – указываем имя кластера 1С;
  • База данных – название базы данных в вашей СУБД SQL;
  • Пользователь сервера БД – логин от администратора СУБД SQL;
  • Пароль сервера БД – пароль от администратора СУБД SQL.

Далее добавляем эту ИБД в список 1С для последующего запуска конфигуратора 1С и загрузки ранее подготовленного файла выгрузки базы. После того как база в кластере создана, добавляем ее в список баз 1С. Для этого запускаем 1С:Предприятие и «Добавить…» базу 1С.

Далее выбираем «Добавление в список существующей информационной базы» и переходим «Далее».

После появления формы добавления базы 1С, заполняем последние строки в списке и переключаем режим работы на «На сервере 1С:Предприятие».

Рис. 11 Окно заполнения данных для подключения базы 1С

Рис. 11 Окно заполнения данных для подключения базы 1С

Запуск 1С:Предприятие и добавление конфигурации

Этот способ быстрее предыдущего и бывает полезен, когда, например, вы не установили у себя компоненту консоли управления при установке платформы. Чтобы им воспользоваться, запускаем 1С:Предприятие и в открывшемся окне приложения жмем кнопку «Добавить».

Далее выбираем «Создание информационной базы».

После перехода в следующий пункт меню выбираем « Создание информационной базы без конфигурации для разработки новой конфигурации» или «Загрузки выгруженной ранее информационной базы».

Следующим шагом будет выбор пункта «На сервере 1С:Предприятие».

Мы попадем в искомое нами окно заполнения полей для создания базы на сервере 1С.

Шаг №4 Завершение переноса

Сервер

Перенос базы 1С на SQL-сервер

Поможем определить необходимость переноса базы 1С на SQL и подготовить инфраструктуру

Перенос данных

Перенос данных 1С

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

После запуска конфигуратора переходим в раздел «Администрирование» и выбираем пункт «Загрузить информационную базу».

Далее выбираем ранее сохраненный файл выгрузки и начинаем непосредственно процесс загрузки базы на СУБД SQL.

Готово! Ваша конфигурация успешно переведена из файлового режима на SQL-сервер.

Если повторная работа в конфигураторе не требуется, выбираем вариант «Нет» и запускаем базу в режиме «Предприятия» для проверки ее работоспособности.

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

Читайте также:

      
  • Где располагается и как настраивается панель быстрого доступа в окне ms powerpoint 2007
  •   
  • Создать из выделенного в excel где найти
  •   
  • Какие значения может иметь признак активности счета в 1с
  •   
  • Как вернуть значок браузера на телевизоре
  •   
  • Почему при обновлении опера оставляет старые версии
  • Контакты
  • Политика конфиденциальности