Лекции по «Информационные технологии в экономике»

Автор работы: Пользователь скрыл имя, 03 Октября 2013 в 14:49, курс лекций

Краткое описание

Лекция №1 Обзор информационных систем. Концепция системы 1С:Предприятие. Основные понятия системы 1С:Предприятие
Развитие различных сфер человеческой деятельности на современном этапе невозможно без широкого применения вычислительной техники и создания информационных систем различного направления. Обработка информации в подобных системах стала самостоятельным научно-техническим направлением. Научно-техническая революция (НТР) - коренное, качественное преобразование производительных сил на основе превращения науки в ведущий фактор развития общественного производства.

Прикрепленные файлы: 1 файл

6. Лекционный комплекс.doc

— 393.00 Кб (Скачать документ)

 

Таблица _1SDNLOCK - Номера документов

Краткое описание: таблица предназначена  для хранения информации о зарезервированных  номерах документов, т.е. тех. номерах  документов, которые вводятся в  данный момент в систему, но еще не сохранены (не записаны в таблицу журналов _1SJOURN)

 

Название поля

Описание

DNPREFIX

Идентификатор вида документа или  справочника. Для документа также  включает время (всегда 0 0). Тип –  Строка(28).

DOCNO

Зарезервированный номер. Тип – Строка(10) (определяется максимальным номером в системе, максимальное значение - 20).


 

Таблица _1SSTREAM - Последовательность документов

Краткое описание: таблица предназначена  для хранения информации о последовательностях.

 

Название поля

Описание

ID

Идентификатор последовательности (числовое представление). Тип – Число(4).

DATE_TIME_DOCID

Дата+Время+идентификатор документа, на котором установлена последовательность. Это поле аналогично полю DATE_TIME_IDDOC таблицы _1SJOURN. Тип – Строка(23).


 

Таблица _1SSYSTEM - Системная

Краткое описание: таблица предназначена  для хранения информации о датах  точки актуальности и рассчитанного  периода бухгалтерских итогов, также  в таблице хранится информация о  параметрах УРБД.

 

Название поля

Описание

CURDATE

Дата точки актуальности. Тип - Дата (для SQL DateTime).

CURTIME

Время точки актуальности. Время  хранится в десятичном виде: (Часы*3600+Минуты*60+секунды)*10000. Преобразовав значение этого поля в 36-ричное значение, получим вторую подгруппу  значений поля DATE_TIME_IDDOC (сред(DATE_TIME_IDDOC ,9,6)) таблицы 1SJOURN. Тип - Число(4).

EVENTIDTA

ID документа, на котором установлена  ТА. Тип - Строка(9).

DBSIGN

Код базы УРИБ (ТекущаяИБКод()). Тип - Строка(3).

DBSETUUID

GUID базы УРИБ. Тип - Строка(36).

SNAPSHPER

Периодичность итогов регистров остатков (устанавливается в меню Операции - Управление оперативными тогами - Периодичность  сохранения остатков). F – 5 дней. C –  Декада (10 дней). T – 15 дней. M – месяц. Тип - Строка(1).

ACCDATE

Дата актуальности бухгалтерских итогов. Тип - Дата (для SQL DateTime).

FLAGS

??? Тип - Число(4).


 

Периодичность итогов регистров оборотов: «D» - День, «W» - Неделя, «C» - Декада, «M» - Месяц, «Q» - Квартал, «Y» - Год.

Таблица _1SUIDCTL - Уникальности

Краткое описание: таблица предназначена для хранения информации о последнем ID коде документов и справочников.

 

Название поля

Описание

TYPEID

Идентификатор вида справочника, или  же 0 для всех документов (у всех документов сквозная нумерация ID). Тип – Число(4).

MAXID

Максимальный используемый идентификатор (ID).


 

Таблица _1SUSERS - Соединения

Краткое описание: таблица предназначена  для хранения информации о подключенных пользователях. В таблице всегда одна строка. Именно по наличию строки в этой таблице 1С судит об аварийном завершении программы и предлагает переиндексировать ИБ в случае dbf-версии.

 

Название поля

Описание

USRSCNT

Количество подключенных пользователей  к 1С в режиме 1С предприятия.

NETCHGCN

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


 

 

Лекция № 13 Сохранение и восстановление данных

 

Создадим новую периферийную базу в Конфигураторе с признаком "только получатель". Данная периферийная база будет довольно формальной (мы не будем даже инициализировать её) и послужит "опорой" для проверок некоторых условий в конфигурации. Необходимо средствами конфигурирования и встроенного языка 1С:Предприятия создать в конфигурации механизм, который обеспечивал бы запреты на ввод информации в копии базы, а с другой стороны - обеспечивал бы запреты на запуск формирования отчетов в "основной" базе. При этом желательно сделать такие запреты опциональными (отключаемыми) с тем, чтобы можно было в любой момент разрешить формирование отчётов в "основной" базе в случае недоступности по каким-либо причинам копии и т.п. Следовательно, в коде форм журналов документов, отчётов и т.д. перед запуском определённых действий прежде всего нужно определить, в какой базе мы "находимся" - в копии или в "основной" базе. Здесь и пригодится признак "только получатель": если мы в копии, метод "ТекущаяИБТолькоПолучатель()" вернёт единицу. Конечно, данный метод определения "копия - не копия" является не единственно возможным. Кроме того, если вы желаете реплицировать нераспределённую базу, вам придётся самостоятельно внести некоторые коррективы в дальнейшее изложение, и при этом ваша задача несколько упростится.

Примечания: запуск SQL Server Management Studio, которая потребуется для  дальнейшей работы, осуществляется через  меню "Пуск" – "Программы" – "Microsoft SQL Server 2005" - "SQL Server Management Studio". В SQL Server Management Studio нам потребуются окна "Object Explorer" и "Registered Servers". Если этих окон нет на экране, их можно отобразить через меню "View".

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

Примем следующие обозначения:

  • MyMainServer - имя SQL-сервера, на котором расположена наша "основная" база данных.
  • MyMainDatabase - имя нашей "основной" базы данных.
  • MySecondServer - имя SQL-сервера, на котором (будет) расположена наша база данных "только для чтения", являющаяся копией "основной" базы данных.
  • MySecondDatabase - имя нашей базы данных "только для чтения", являющейся копией "основной" базы данных.

Настройка репликации по шагам:

  1. Настройка репликации на SQL-сервере. В окне "Object Explorer" в ветке "Replication" на сервере-источнике (где находится "основная" база данных) необходимо вызвать команду контекстного меню "Configure Distribution...". Если команда контекстного меню "Configure Distribution..." изначально отсутствует, а вместо неё присутствует команда "Disable Publishing and Distribution...", репликация на этом сервере уже настроена, и весь этот пункт можно пропустить. Откроется окно мастера. Далее по шагам:
    • Шаг "Distributor". Выбрать имя текущего сервера (по умолчанию). Таким образом, сервер назначается дистрибьютором самому себе.
    • Шаг "Snapshot Folder". Выбрать папку, в которой будут созданы файлы подписки (папка может быть сетевой).
    • Шаг "Distribution Database". Создание системной базы данных для репликации. Имя базы данных можно оставить по умолчанию – "distribution". Папки для хранения файлов .mdf (файл базы данных) и .ldf (файл лога базы данных) могут совпадать (т.е. может быть указана одна и та же папка). Примечание: файлов distribution.MDF и distribution.LDF в этой папке на данный момент быть не должно (если они есть, их необходимо предварительно удалить, иначе на последнем шаге работы мастера произойдёт ошибка).
    • Шаг "Publishers". Добавление публикаторов. Здесь ничего добавлять не надо, т.к. текущий сервер уже добавлен по умолчанию.
    • Шаг "Wizard Actions". Должен стоять флажок "Configure distribution" (по умолчанию).

В результате будет создана системная  база данных "distribution", а ветке "Replication" появятся пункты контекстного меню "Publisher Properties...", "Distributor Properties..." и "Disable Publishing and Distribution...", а пункта "Configure Distribution" уже не будет. Примечание: если настройка репликации не получилась или сделана неверно, для повторной настройки следует вначале отменить настройку репликации через пункт контекстного меню "Disable Publishing and Distribution...", на втором шаге открывшегося мастера выбрав "Yes, disable publishing on this server".

  1. Сжатие "основной" базы данных перед копированием. Чтобы в момент сжатия были удалены все записи лог-файла .ldf, которые ещё не попали в резервную копию (а по умолчанию этого не произойдёт), необходимо выполнить запрос, который "скажет" системе, что все записи лог-файла уже якобы попали в резервную копию. Для этого необходимо выполнить следующий запрос:
  2. backup log MyMainDatabase with no_log

Здесь "MyMainDatabase" - имя нашей "основной" базы данных. Далее необходимо собственно сжать нашу "основную" базу данных: в окне "Object Explorer" в ветке "Databases" - "MyMainDatabase" вызвать команду контекстного меню "Tasks" - "Shrink" - "Database". Установить флажок "Reorganize files before releasing...", и нажать "ОК". Сжатие может занять некоторое время (десятки минут).

  1. Устранение проблемы с полями типа IDENTITY. Если в некоторых таблицах автоинкрементные поля с признаком IDENTITY не содержат признака "NOT FOR REPLICATION", при вставке нового элемента в таблицу в базе данных подписчика (например, при добавлении элемента справочника) репликация остановится. 1С:Предприятие автоматически никогда не ставит подобный признак. Чтобы у полей IDENTITY появилось свойство "NOT FOR REPLICATION", необходимо искусственно создать и удалить публикацию. 
    В окне "Object Explorer" в ветке "Replication" - "Local Publications" текущего сервера необходимо вызвать команду контекстного меню "New Publication...". Откроется окно мастера. Далее по шагам:
    • Шаг "Publication Database". Выбрать нашу "основную" базу данных.
    • Шаг "Publication Type". Выбрать тип публикации "Transactional Publication" (второй сверху).
    • Шаг "Articles". Выбор, что публиковать. Поставьте флажок "Tables", чтобы выбрались все таблицы. Затем раскройте ветку "Tables" и уберите флажки с двух таблиц:
      • _1SDBSET (список распределённых баз). Эта таблица убирается для того, чтобы копия стала периферийной базой.
      • _1SDNLOCK (номера новых несохранённых справочников и документов).

Кроме того, автоматически будут  не отмечены флажками те таблицы, которые  не имеют первичного ключа (их реплицировать  нельзя в принципе).

    • Шаг "Filter Table Rows". Фильтры задавать не надо.
    • Шаг "Snapshot Agent". Все флажки должны быть сняты, т.к. инициализация этой публикации нам не потребуется.
    • Шаг "Agent Security". Указываем параметры безопасности (первая кнопка "Security Settings"), под какими учётными записями будет идти репликация. Выбрать "Run under the SQL Server Agent..." и "By impersonating the process account". 
      "Snapshot Agent" и "Log Reader Agent" настраиваются одинаково, т.е. флажок "Use the security settings from the Snapshot Agent" должен стоять.
    • Шаг "Wizard Actions". Флажок "Create the publication" должен стоять.
    • Шаг "Complete the Wizard". Задайте имя публикации, совпадающее с именем нашей "основной" базы данных.
    • Удалите только что созданную публикацию в дереве Object Explorer командой контекстного меню "Delete".
  1. Отключение баз данных. Необходимо перевести базы в состояние off-line. В окне "Object Explorer" в ветке "MyMainServer" - "Databases" - "MyMainDatabase" необходимо вызвать команду контекстного меню "Tasks" - "Take offline". 
    Если вы настраиваете репликацию не в первый раз, и копия базы данных уже существует, в окне "Object Explorer" в ветке "MySecondServer" - "Databases" - "MySecondDatabase" также необходимо вызвать команду контекстного меню "Tasks" - "Take offline". 
    Примечание: если процесс перевода базы в состояние off-line идёт слишком долго (несколько минут), возможно, кто-то "сидит" в базе данных. В этом случае надо найти и удалить нужное подключение через Activity Monitor в ветке Management на нужном сервере, иначе процесс перевода базы в состояние off-line может никогда не завершиться.
  1. Копирование файлов. Необходимо скопировать файлы базы данных с одного сервера на другой. Если файлы большие, копирование может занять продолжительное время.
    • Удалите MySecondDatabase.mdf и MySecondDatabase_log.ldf в папке назначения, если они существуют.
    • Скопируйте MyMainDatabase.mdf и MyMainDatabase_log.ldf (в процессе копирования можно выполнять п.6 настоящей инструкции).
    • Переименуйте скопированные файлы в MySecondDatabase.mdf и MySecondDatabase_log.ldf.
  2. Получение необходимых хранимых процедур для подписчика. Для базы данных подписчика необходимо наличие определённых хранимых процедур, которые были бы созданы автоматически, если бы репликация настраивалась стандартным способом, а не "в обход" (копированием файлов баз данных). Поскольку в данном случае репликация настраивается "в обход", необходимые хранимые процедуры придётся получить искусственно, создав пустые базы публикатора и подписчика с той же конфигурацией (md). Порядок действий:
    • Необходимо создать две базы данных на sql-сервере MyMainServer: "Pub" и "Sub".
      • В окне "Object Explorer" в ветке "MyMainServer" - "Databases" необходимо вызвать команду контекстного меню "New Database".
      • В разделе "General" задаётся "Database name" (задайте "Pub").
      • В разделе "Options" следует задать свойство "Compatibility Level" как "SQL server 2000 (80)".

Информация о работе Лекции по «Информационные технологии в экономике»