Восстановление MS SQL 2005 и 2008 базы данных из состояния SUSPECT

1. Останавливаем службу SQL Server и копируем файлы базы данных (*.mdf и *.ldf) в другую папку, чтобы можно было восстановить их в случае неудачи
2. Делаем Detach database (отсоединить базу данных), удаляем журнал транзакций (файл с расширением ldf) и делаем Attach database (присоединить базу данных). В мастере выбираем наш mdf файл и жмем ОК

emergency-150x150

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

Присоединить один mdf файл без журнала транзакций, если у вас SQL 2005 и выше, можно командами

EXEC sp_attach_single_file_db @dbname='db_name', @physname='D:\Db\db_name.mdf'

или

CREATE DATABASE db_name ON (filename = 'd:\db\db_name.mdf') FOR ATTACH_REBUILD_LOG

Если не получилось, то создаем новую базу данных с таким же именем, останавливаем сервер. Подменяем файл mdf файлом от нашей базы, стартуем службу SQL Server и открываем Query analyzer(SQL 2000) или Management studio(SQL 2005/2008) в зависимости от нашей версии сервера

Пишем следующее:

ALTER DATABASE db_name SET EMERGENCY, SINGLE_USER 
GO

где вместо db_name пишем имя своей БД
Жмем F5

После этого наша БД должна быть видна в статусе EMERGENCY

Приступаем к восстановлению

DBCC CHECKDB('db_name', REPAIR_ALLOW_DATA_LOSS) 
GO

ALLOW_DATA_LOSS-150x150

В SQL 2005 и выше нет инструкции REBUILD_LOG, вместо этого выполняется CHECKDB с параметром REPAIR_ALLOW_DATA_LOSS. После того как сервер закончит выполнять запрос и вернет результат, меняем REPAIR_ALLOW_DATA_LOSS на REPAIR_REBUILD и выполняем запрос еще раз, это должно убрать оставшиеся ошибки в базе данных. После всего этого наша база становится в нормальное состояние и уже доступна для работы с ней, но только в однопользовательском режиме, поэтому завершаем наш процесс возвращением базы в многопользовательский режим

Пишем:

alter database db_name set ONLINE, MULTI_USER
GO

Все. База онлайн и готова к работе. И не забываем делать бэкапы.

Загрузка\выгрузка печатных и экранных форм

Для того, чтобы выгрузить или загрузить новую печатную/экранную форму в программу, необходимо перейти в настройки программы → Сервис → Управление печатными формами / Управление экранными формами

Откроется окно со списком всех печатных/экранных форм, которые есть в базе данных клиники

Столбцы:

Наименование— наименование печатной формы

Группа — группа печатных форм. Каждая группа вызывается на печать из одного единственного места в программе. Например, в архиве карт можно распечатать все печатные формы входящие в группу medCards

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

Видимая — при необходимости можно убрать галочку с этого пункта, в этом случае форма не будет отображаться в списке печатных форм

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

Выгрузка в файл. 

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

1. Проставляем «Выбор» напротив необходимых нам форм

2. Жмем кнопку «Сервисные функции» — «Экспорт»

После этого появится окно с выбором папки для сохранения, необходимо ввести наименование будущего файла и нажать «ОК»

Загрузка печатных форм из файла

Когда есть необходимость загрузить печатные формы из файла, необходимо проделать следующие действия.

1. Жмем кнопку «Сервисные функции» — «ИМПОРТ»

2. Выбираем файл после чего нажимаем «ОК»

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

 

Работа нескольких компьютеров с одним фискальным регистратором. Работа с FRServer.exe

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

Схема подключения:

К одному из компьютеру подключен фискальный аппарат. Еще 1-2-3 или более компьютеров объединены в рамках локальной сети вместе с первым компьютером. Необходимо чтобы на компьютере 2 можно было отправлять команды на фискальный регистратор, который подключен к компьютеру 1.

Алгоритм установки:

1. Устанавливаем на компьютер 1 службу Firebird. Файл установки можно запросить у технической поддержки. Он будет называться например Firebird-2.1.5.18496_0_Win32.exe Процесс установки стандартный, везде нажимаем кнопку «Далее»

Также необходимо открыть порт в брандмауре или в антивирусе 3050, если они включены

2. Необходимо создать отдельную папку, например в корневой папке с файлами Archimed, и называем ее к примеру FISKREG

3. В папку помещаем файлы(все файлы запрашиваем в технической поддержке):

а) Плагин для работы с фиск регистратором, у каждой модели (Штрих, Атол и т.д.) используется свой плагин

б) Приложение FRServer.exe и сразу же создаем ярлык к данному приложению, который помещаем в Автозагрузку компьютера.

в) Файл базы данных, с которой работает приложение FRServer.exe , пример названия файла FR.FDB.

Настройка:

Для начала запускаем приложение FrServer.exe оно появится в правом нижнем углу рабочего стола
1

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

2

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

2. Путь к базе данных

3. Жмем кнопку «Натройки ФР» и прописываем порт, к которому подключен фискальный регистратор.

После этого необходимо произвести настройки непосредственно в Архимеде на всех компьютерах

Файл FrClient.dll необходимо поместить в папку plugins, которая также находиться в корневой папке Archimed. Этот файл должен быть установлен на всех компьютерах, с которых будет производиться отправка команд на фискальный регистратор

Запускаем Настройки. Заходим в раздел Плагины и выбираем FRClient.dll

3Жмем правой кнопкой и выбираем пункт «Настройки»

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

ПРИМЕР:

kmed1:C:\archi\New\fr2\FR.FDB

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

 

 

 

Доступность услуги пользователю

1) Основной механизм установки доступности пользователям .
Нужно зайти в настройки –справочники-услуги-товары и услуги.
Далее открываем каждую услугу и проходим по вкладке «доступность услуги пользователям»
Безымянный
Тут можно проставить галочки напротив врачей, которые могут оказать данную услугу.
2) Вспомогательный механизм. ВАЖНО!!! Этот механизм можно использовать 1 раз при установки правил на целую группу. При повторном использовании данного механизма на ту же группу все предыдущие настойки доступности в этой группе будут удалены. Поэтому данный механизм лучше использовать в группах где на все услуги можно указать одинаковых исполнителей.
Пример.
Жмем правой кнопкой на группу услуг «Урология».
Выбираем Групповая установка параметров – Доступность услуги пользователям.
1
После этого появится вот такое окно 2
Галочками в начале выбираем врачей, а потом услуги и сохраняем.
После этого в этой группе остальные услуги можно корректировать, только как указано в механизме 1. Иначе если использовать механизм 2 он всегда будет стирать предыдущие настройки и записывать новые.

Закрытие и открытие фискальной смены

Каждое утро при начислении первой услуги программа будет спрашивать об открытии новой фискальной смены.

Поэтому перед тем, как начать работать с платными услугами, необходимо создать и раздать всем медрегистраторам учетные записи в системе, чтобы дежурный медрегистратор мог открыть смену под своей учетной записью. Сделать это можно в настройках справочника «Пользователи и пароли» — «Пользователи».

Открыть смену можно при начислении первой услуги, либо в самой вкладке «Текущая смена».

Каждый вечер необходимо закрывать текущую кассовую смену. Но перед этим необходимо с помощью отчетов проверить баланс за весь день. Сделать это можно нажав на кнопку «X-отчёт». После проверки следует закрыть смену нажатием на кнопку «Z-отчёт».

После этого откроется сам отчёт с минимальной информацией по закрытой смене.

В отчёте отображается количество продаж, возвратов, аннулированных чеков, общая сумма, а также ответственный за смену.

ВНИМАНИЕ! Для просмотра более подробных отчетов необходимо перейти в приложение «Отчеты» (ярлык на рабочем столе).

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

Здесь же имеются и другие отчеты, которые можно распечатывать:

  • Текущий отчет смены;
  • Все чеки за смену;
  • Возвратные чеки;
  • Чеки с привязкой к услугам;
  • Все услуги за смену.

Исправить значения счетчиков

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

DBCC CHECKIDENT ('имя_вашей_таблицы', RESEED, новое_значение_идентификатора);
GO

ПРИМ: широко используется если база является составляющей реплицируемых таблиц

Проверить значения identity в таблицах базы

Открываем Среду Microsoft Sql Server Management Studio

Если нам необходимо проверить счетчики по всем таблицам, то копируем запрос

select name, IDENT_CURRENT(name)
 from sys.tables
 where type_desc = 'USER_TABLE'
order by name asc

В результате получаем  значения primary key во  всех таблицах базы

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

DBCC CHECKIDENT ('имя_вашей_таблицы', NORESEED);
GO

ВАЖНО в клиниках,  где настроены триггеры репликации необходимо чтобы значения входили в тот интервал id, который был изначально настроен для конкретной базы данных

Переместить identity на последнее значение id

ВНИМАНИЕ! Скрипт работает только для клиентов, у которых НЕТ репликации

Заходим в SQL Server и делаем бэкап

Далее выполняем скрипт:

set nocount on;
 declare @id int;
 declare @maxid dt_id;
 declare @name varchar(250);
 declare @i int;
 declare @sql nvarchar(max);
 declare cur cursor local forward_only static for
 select o.id
 , o.name
 from sysobjects o
 join
 syscolumns c on (c.id = o.id)
 and (c.name = 'id')
 and (c.status & 0x80 = 0x80)
 where o.type = 'u'
 order by o.name;
 open cur;
 fetch next from cur into @id, @name;

set @i = 0;
 while (@@fetch_status = 0)
 begin
 set @i = @i + 1;
 print str(@i) + ' ' + str(@id) + ' ' + @name;
 set @sql = N'select @maxid = max(id) from ' + @name;
 exec sp_executesql @sql, N'@maxid int out', @maxid out;
 if @maxid is not null
 dbcc checkident(@name, reseed, @maxid);
 fetch next from cur into @id, @name;
 end;