# Перенос на другой физический сервер

> ℹ️ Перед процедурой переноса приложения ознакомьтесь с [техническими требованиями](https://help.1forma.ru/maintenance_guide/installation/application/iis-deployment/hardware_requirements.md)

> ℹ️ В последовательности действий, перечисленных ниже, описывается перенос сайтов с forms- и win-аутентификацией. Если в вашей компании используется только forms-приложение, win-приложение создавать не нужно

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

## На сервере БД

1\. Создайте резервные копии \*.bak баз D10Task и TaskFilesDB. Затем выполните восстановление этих баз из резервных копий на новом экземпляре SQL-сервера.

2\. Скопируйте с исходного SQL-сервера папку C:\\Program Files (x86)\\TCSQL и перенесите ее вместе со всем содержимым на новый SQL-сервер в папку с таким же расположением. В папке TCSQL содержатся файлы для хранимых процедур и функций.

3\. Выполните скрипты [InstallFunctionsAndAssembly.sql](https://help.1forma.ru/files/InstallFunctionsAndAssembly.sql) и [grant.sql](https://help.1forma.ru/files/grant.sql) на БД D10Task. Первый скрипт выполняет установку функций для расчета разницы рабочего времени и выдает права на их выполнение (при выполнении может выдаваться сообщение о том, что объект существует, это нормально). Второй скрипт выдает права на выполнение хранимых процедур.

4\. Скопируйте нужные папки (в т.ч. 1Forma и 1Forma\_win, а для версий младше 2.215 также папку C:\\Program Files (x86)\\TCJobService) с исходного сервера на новый. По умолчанию папки 1Forma и 1Forma\_win находятся в c:/inetpub/wwwroot.

5\. В настройках перенесенных баз выставите максимальный Уровень совместимости (sp\_dbcmptlevel).  
Установка уровня совместимости

## Продолжайте на новом сервере

6\. В папках 1Forma и 1Forma\_win откройте файлы web.config, в секциях TCConnectionString и RedisConnectionString укажите актуальные данные и сохраните изменения.

Если не получается сохранить файл в ту же папку, сохраните его в другую папку и затем скопируйте в нужную. Обратите внимание, что при сохранении тип документа должен быть "All Files (\*.\*)".

Пример ConnectionString (строки подключения):

```xml
<add name\="TCConnectionString" connectionString\="packet size=4096;user id=ПОЛЬЗОВАТЕЛЬ\_SQL;data source=НАЗВАНИЕ\_SQL\_СЕРВЕРА;  
persist security info=True;initial catalog=НАЗВАНИЕ\_БД;password=ПАРОЛЬ\_ПОЛЬЗОВАТЕЛЯ\_SQL;Max Pool Size=2500;MultipleActiveResultSets=false"  
providerName\="System.Data.SqlClient" />
```

Пример RedisConnectionString (строки подключения для Redis, устаревшее):

```xml
<add name\="RedisConnectionString" connectionString\="localhost:6379,allowAdmin=true,abortConnect=false,keepAlive=60,syncTimeout=30000"/>
```

где вместо localhost может быть адрес нового сервера.

## На сервере IIS

7\. Создайте два сайта – 1forma и 1forma\_win. В качестве каталога содержимого для них укажите папки 1Forma и 1Forma\_win соответственно.

Настройки пулов см. в [инструкции по настройке IIS](https://help.1forma.ru/maintenance_guide/installation/application/iis-deployment/iis-app-pool/tech_req_1f_prepare_iis.md).

В настройках сайта 1Forma\_win для параметра Windows Authentication включите Enabled.

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

8\. Зайдите в "Первую Форму" в режиме администратора, перейдите в раздел "misc" — "Системные настройки" — "Провайдеры загружаемых файлов" и исправьте строку подключения к файловой базе TaskFilesDB так, как она прописана в файле web.config. Нажмите кнопку Проверить соединение, если тест успешен — сохраните и закройте панель администратора.

9\. В разделе "misc" — "Системные настройки" — "Общие настройки приложения" исправьте параметры, выделенные на скриншоте ниже.

В параметре "Путь к приложению" укажите путь для входа пользователей (в данном случае — имя веб-сервера).

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

10\. В разделе "misc" — "Журналы и статистика" — "Лог выполняемых заданий" убедитесь в том, что в журнал регулярно попадают записи. Если нет, проверьте ошибку, которая генерируется в EventViewer.
