четверг, 30 июля 2020 г.

Переразбивка SQL\ SQL для 1c

sql для 1с

Добавляем диск 20 гб, форматируем в 64 кб
на диске С создаем папку под диски: Mount_Disk
В ней подпапки:
TempDB_1
TempDB_2
,,,,,,
TempDB_N
n=кол логических ядер системы

в папках TempDB_N создаем папку SQL
даем права юзера под которым крутится скуль
в управлении компьютером инициируем диски
переносим темпдб и лог
ALTER DATABASE tempdb MODIFY FILE ( NAME = tempdev , FILENAME = 'C:\DISK_MOUNT\TempDB_1\SQL\tempdb.mdf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = templog , FILENAME = 'C:\DISK_MOUNT\TempDB_Log\SQL\templog.ldf' )
templog.ldf
Источник: https://www.k7d.ru/it/perenos-tempdb-na-drugoy-disk/
tempdb.mdf
Источник: https://www.k7d.ru/it/perenos-tempdb-na-drugoy-disk/

ALTER DATABASE tempdb MODIFY FILE ( NAME = tempdev , FILENAME = 'T:\tempdb.mdf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = templog , FILENAME = 'T:\templog.ldf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = temp2 , FILENAME = 'T:\tempdb_mssql_2.ndf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = temp3 , FILENAME = 'T:\tempdb_mssql_3.ndf' )
ALTER DATABASE tempdb MODIFY FILE ( NAME = temp4 , FILENAME = 'T:\tempdb_mssql_4.ndf' )

среда, 22 июля 2020 г.

Публикация веб-сервисов на IIS 7.x, 8.x

Windows Server 2012.

  1.  Включаем роль IIS
    Обязательно при настройке роли включить ASP.NET
    e8f3129af0a5a670ce75c0d6c7d84812.png                   
  2. Открываем базу в конфигураторе. Важно!  Запускать 1С нужно через правую кнопку мыши и пункт «Запуск от имени администратора». Далее в конфигураторе выбираем   меню "Администрирование" пункт "Публикация на веб-сервере". Нажимаем на кнопку «Опубликовать».
    e6fe6c867d2e681c515ba4945dcef093.png
    Если при этом будет сообщение об ошибке «Нет доступа к файлу «С:\inetpub\wwwroot\hotel\» то это значит, что вы выполнили запуск не от имени администратора.
  3. Включите поддержку 32 битных приложений в IIS.
    Для этого нужно выбрать в свойствах сервера IIS  DefaultAppPool, справа Advanced Settings, в открывшемся окне (см. картинку) 
     9b7d7377ad57142ffd4ea7d7afb08935.png
    установить параметр «Enable 32-bit application» в значение true
    e952462d7742d9f22a21b7707dc1e6fa.png
  4. Настраиваем авторизацию.
    1.  Для этого открываем свойства опубликованного пула приложений hotel
      7ac93754d9c2d120708a4e7c655e3ad1.png

      заходим в Authenticationc38a9e43215db4a5bd7f48cb50aa5d3c.png
      подсвечиваем Anonymous Authentication, справа выбираем ссылку Edit…, и, в открывшемся окне выбираем Application pool identity
    2. Открываем ссылку с публикацией веб-сервиса вида
      http://<IP address>/hotel/ws/1CHotelReservationInterfaces.1cws?wsdl
      где <IP address> указываете адрес вашего сервера
    3.  Должно появится окно с авторизацией в базу. Можете ввести имя пользователя и пароль существующего пользователя базы. Можно ничего не вводить.
      9a9c02de627b8054476418d2110a34b7.png
      Главное что в журнале регистрации 1С появится запись вида:
      230858dd7753d5f156b5b199ddec0e02.png
      Из этой записи нас интересует имя пользователя под которым IIS пытается открыть базу 1С:Отель.Должно быть такое имя: <ИМЯ ДОМЕНА>\<ИМЯ КОМПЬЮТЕРА>$ В нашем примере это FISHKA\1C$, где FISHKA – это имя домена, 1С – это имя компьютера на котором работает IIS
    4. В базе 1С:Отель создаем пользователя online, с ролью BackgroundJob, и интерфейсом BackgroundJob.
      У этого пользователя выключаем галочку «Показывать в списке пользователей» и включаем галочку «Аутентификация операционной системы», в имени пользователя пишем ту строку, которую увидели в журнале регистрации, т.е. \\<ИМЯ ДОМЕНА>\<ИМЯ КОМПЬЮТЕРА>$
      d4f5607ba308400b912cb55e4763d10e.png  7fd5b3120a0d1dd1dd383fab2d5c97d2.png  
    5. Для проверки открываем в браузере http://<IP address>/hotel/ws/1CHotelReservationInterfaces.1cws?wsdl
      Должна открыться страница с XML файлом
      95ad74a2750b32ff2b57637d29fa461a.png
      если появляется такой результат, значит веб-сервис опубликован успешно.

Нестандартный порт. 

Если вы хотите использовать нестандартный порт, т.е. порт отличный от 80. Но нужно в IIS настроить привязки.

Для этого Открываем свойства DefaultWebSite.

Выбираем справа "Bidings..."

Добавляем строку Type = http, port = ваш номер порта, IP Address = *

Пример для порта 21540

eeb3a9f866ae19923b29859b812fcf04.png

Возможные ошибки.

  1. HTTP Error 500.21 - Internal Server Error
    Причина: Не установлена роль ASP.NET.
    Решение: Поставить ASP.NET 
    d03ee4b2c7077e177a8058adb8268d17.png
  2. Если при открытии страницы c веб-сервисом спрашивает логин и пароль то нужно настроить пользователя от имени которого IIS подключается в базу 1С:Отель. См. п.4.
  3. HTTP Error 500.0 - Internal Server Error
    Причина: Не разрешен запуск 32-бит приложений
    Решение: Дать разрешение на запуск 32-бит приложений. см. п. 3

удаление файла по маске \ удаление списка баз у всех пользователей

del /s c:\531\"HOW TO RETURN FILES.txt"

удаление списка баз у всех пользователей:
del /s C:\Users\*.v8i

четверг, 16 июля 2020 г.

Настройка Firewall для сервера 1С, MSSQL на примере ОС Windows (Бренд мауер)

Для 1с
Список портов по умолчанию:
  • 1541 – порт менеджера кластера;
  • 1540 – порт агента сервера;
  • 1560-1591 – порты для рабочих процессов;
  1. Заходим в оснастку настройки Firewall. Проще всего через “Выполнить” (Win+R) -> “Дополнительные параметры”.
  2. Создаем правило для входящих подключений.
  3. “Правило для какого типа вы хотите создать?” –  отмечаем “Для порта”
  4. “Укажите протокол, к которому будет применяться это правило” – отмечаем “Протокол TCP”
  5. “Укажите порты, к которым будет применяться это правило.” – если у нас порта стандартные, то: “1540, 1541, 1560-1591”
  6. “Укажите действие, которое должно выполняться, когда подключение удовлетворяет указанным условиям” – выбираем “Разрешить подключение”
  7. “Для каких профилей применяется правило?” – можно отметить все
  8. Затем вводим название и описание нашего правило и жмем “Готово”.
  9. На этом все. Если нет необходимости подключаться через консоль администрирования сервера  с локальных компьютеров, то порт 1540 пропускаем.

Для MSSQL:
TCP и порта 1433
UDP и порта 1434  - Managment Studio

Админская шара
TCP 445 

понедельник, 13 июля 2020 г.

Восстановление КОНФИГУРАЦИИ 1с из бекапа средствами MS SQL

К сожалению, на момент починки не смог найти статью с похожей проблемой:
//infostart.ru/public/390768/
//infostart.ru/public/391766/ 
Поэтому решил описать свой опыт, для более простых случаев, когда под рукой есть более-менее свежий бекап.

Итак, что имеем:
  1. MS SQL Server 2008 + 1C 8.2.19
  2. Свежий ночной бекап (если такового нет, прочтения вышеуказанных ссылок вам не избежать)
  3. В Предприятие зайти невозможно - дает ошибку на какой-то тип
  4. Конфигуратор открывается нормально, можно сохранить в файл конфигурацию и конфигурацию БД, любые другие операции с конфигурацией БД (обновление, сравнение, открытие) приводят к вылету Конфигуратора.
  5. Тестирование и исправление (Реструктуризация таблиц) также ведут к моментальному вылету Конфигуратора.

Поиск способа решения:
  1. Проверка БД средствами SQL показала что ошибок нет
  2. Выгрузка в dt и загрузка обратно без ошибок, но ничего не дает: успешно получаем такую же базу с битой конфигурацией.
  3. Загрузка конфигурации целиком из файла также безуспешно.
  4. Создание новой базы из сохраненной конфигурации и копирование из нее нужных данных - имена таблиц SQL будут не совпадать.
Решение:
  1. Делаем бекап поврежденной базы (бекапы лишними не бывают) (у меня она называется ForGamesWithRestore)!
  2. Сохраняем конфигурацию из поврежденной базы (если она отличается от конфигурации в бекапе).
  3. Разворачиваем бекап в параллельную базу (напр. назовем ее FromBackUp).
  4. В поврежденной базе чистим таблицу ConfigSave (это изменения конфигурации, которые не удалось применить к Конфигурации БД):
    DELETE FROM ForGamesWithRestore.dbo.ConfigSave
    GO
    
  5. Очищаем таблицы Config, DBSchema, Params в поврежденной базе, и копируем их базы FromBackUp:
     
    DELETE FROM ForGamesWithRestore.dbo.Config
    GO
    DELETE FROM ForGamesWithRestore.dbo.DBSchema
    GO
    DELETE FROM ForGamesWithRestore.dbo.Params
    GO
    INSERT INTO ForGamesWithRestore.dbo.Config SELECT * FROM From_BackUp.dbo.Config
    INSERT INTO ForGamesWithRestore.dbo.DBSchema SELECT * FROM From_BackUp.dbo.DBSchema
    INSERT INTO ForGamesWithRestore.dbo.Params SELECT * FROM From_BackUp.dbo.Params
    
  6. Если структуры конфигураций базы и бекапа не отличались, то на этом все.
  7. Если отличия в метаданных были, то важно понимать что на текущем этапе таблицы SQL не соответствуют структуре конфигурации, напр. в моем случае  в таблице с измененным справочником присутствовали две колонки, про которые Конфигуратор не знал.
  8. Пробуем обновить Конфигурацию из файла (сохраняли на шаге 2). При возникновении ошибок читаем ссылки указанные в начале

вторник, 7 июля 2020 г.

Прописать список баз 1С для всех пользователей

Прописать список баз 1С для всех пользователей

Автор  | 05.11.2014
Прописать список баз 1С для всех пользователей
Установка и настройка программы 1С
Для того, чтобы прописать список баз  для всех пользователей домена или отдельного сервера (сервер терминалов/RDP) необходимо выполнить следующие операции:
  • запустить 1С на тестовом ПК/сервере, прописать все необходимые базы
  • скопировать файл из C:\Users\user_name\AppData\Roaming\1C\1CEStart\ibases.v8i (в нем хранится список баз по умолчанию для конкретного пользователя) в любое удобное место, например, C:\all_bases
  • открыть файл C:\Users\All Users\1C\1CEStart\1CEStart.cfg и внести следующие изменения:
CommonInfoBases=C:\all_bases\ibases.v8i
Готово, теперь у всех пользователей данного сервера будет один единый список баз 1С.


После этих действий могут смешаться ваш файл баз, и файл баз пользователя.
Из-за одинаковых названий баз, ругается на отсутствие уникального идентификатора базы и некоторые базы не запускаются.
Решение:
Удалить файл ibases.v8i у каждого пользователя!
Он автоматически пересоздается у каждого пользователя.
Скрипт для удаления ibases.v8i у каждого пользователя!
del /s /f /q «C:Usersibases.v8i» >>del_ibases.v8i.log
del /s C:\Users\*.v8i

Как установить и настроить PHP на Windows Server

  В данной статье мы научимся устанавливать PHP на Windows Server. Существует несколько способов установки PHP, включая PHP Manager for IIS ...