Подключение 1с отчетности в копии базы

Обновлено: 04.07.2024

Для начала хочу сказать, что механизм «Копии базы данных» доступен только для лицензии КОРП и только после получения дополнительной лицензии (лицензия на выделенную функциональность, которая также устанавливается на сервер) и тоже впервые появившейся в версии платформы 1с 8.3.14. Так как на момент написания публикации механизм «Копии базы данных» имеет статус бета-версии.

Коротко поясню, что такое база OLAP . База OLAP это копия базы данных изолированная от основной базы (возможно даже расположенная под управлением другой СУБД или на другом физическом сервере) и используемая только для чтения, т.е. для получения отчетов в основном для отчетов, которые сильно нагружают базу данных.

Собственно новый механизм 1с «Копии базы данных» и позволяет средствами платформы создавать и работать с базами OLAP . Возможно два варианта хранения копий базы данных это непосредственно в базе данных под управлением любой из СУБД (Microsoft SQL Server, Oracle Database, PostgreSQL) или же в специальной службе «Дата акселератор» являющейся частью механизма «Копии базы данных», которая загружает выбранные таблицы базы данных в оперативную память сервера, что на много повышает скорость чтения данных.

СОЗДАНИЕ КОПИИ БАЗЫ ДАННЫХ МЕХАНИЗМАМИ ПЛАТФОРМЫ 1С.

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


После активации на сервере дополнительной лицензии на выделенную функциональность в управляемом приложении в стандартных обработках появится обработка «Управление копиями базы данных», также режим совместимости должен быть установлен «Не использовать».


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

«Имя» - Задается имя копии базы данных, как она будет представляться в 1с.

«Встроенный дата акселератор» - Если колонка имеет значение «ДА» то для копии базы данных будет использоваться служба дата акселератора и остальные колонки дальше заполнять не нужно. Если значение колонки «НЕТ» то копия базы данных будет расположена на SQL сервере.

«Тип репликации» - Если установлено значение «Стандартная» то система 1с способна сама поддерживать копию базы данных в актуальном состоянии и переносить изменения с основной базы в копию при помощи специальных регламентных заданий, объекта «МенеджерКопииБазыДанных» и метода программного интерфейса КопииБазыДанных.Обновить(). Если установлено другое значение, то Система «1С:Предприятие» не предпринимает никаких действий по синхронизации данных между основной базой данных и копией. Ответственность за создание таблиц с требуемой структурой, а также за механизм и регулярность репликации данных, целиком лежит на персонале, настраивающем параметры копии базы данных.

«Сервер баз данных» - Указывает сервер на котором будет расположена база данных.

«Тип СУБД» - СУБД используемая для размещения таблиц-копий, допускается использование какой-либо из следующих СУБД: Microsoft SQL Server, Oracle Database, PostgreSQL. СУБД кластера серверов и копии базы данных могут различаться.

«База данных» - Имя базы данных на сервере.

«Создать базу данных» - Если установлено значение «Да» то база данных будет создана, если пользователь через которых происходит подключение к СУБД обладает соответствующими правами. Если значение «Нет» то будет использоваться существующая база данных.

«Пользователь» - Указывается пользователь СУБД.

«Пароль» - Указывается пароль пользователя СУБД.

Справа, в дереве метаданных, необходимо указать те объекты метаданных, для которых будет создана копия.

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

Для того чтобы отчет мог выполниться на копии, необходимо чтобы все таблицы, используемые при формировании отчета, были расположены в копии базы данных. Отчеты могут обращаться к множеству объектов метаданных. В некоторых случаях эти объекты метаданных могут явно не встречаться в тексте запроса на языке "1С", поэтому настройка списка объектов метаданных для размещения в копии может вызывать трудности.


Для упрощения этой процедуры можно воспользоваться обработкой Подбор таблиц для Дата акселератора с помощью, которой можно подбирать таблицы не только для копии базы данных для службы «Дата акселератор», но и для копии на базы расположенные на SQL сервере. Она позволяет настроить копию несколькими способами:

- По данным технологического журнала анализирует текст запроса к СУБД и получает объекты метаданных.

- По данным текста запроса на языке 1С получает объекты метаданных.

- По данным отчета конфигурации на базе СКД анализирует тексты запросов на языке "1С" и получает объекты метаданных.

По полученным данным обработка выбирает для копирования в копию необходимые объекты метаданных и запускает процесс обновления данных в копии так, чтобы она была готова к выполнению запроса. Единственный выявленный мною ее недостаток, что данная обработка не умеет определять таблицы для добавления в копию, если к ним идет обращение через две точки т.е. через два соединения. К примеру «Договор.Организация.Директор» т.е. таблица типа «Справочники.Сотрудники» на которую ссылается реквизит «Директор» не будет добавлена в копию базы данных ее необходимо будет добавить руками в обработке «Управление копиями базы данных». Так как данное обращение к справочнику сотрудники в запросе не совсем правильно, то можно сказать, что правильные запросы обработка и обрабатывает верно.

ИСПОЛЬЗОВАНИЕ МЕХАНИЗМА ПЛАТФОРМЫ КОПИИ БАЗЫ ДАННЫХ В ОТЧЕТАХ СКД И ЗАПРОСАХ.

Для того, чтобы отчет на СКД стал брать данные из копии базы данных необходимо его слегка доработать.


В настройках отчета на закладке «Дополнительные настройки» необходимо выставить параметры:

Требуемая актуальность данных – Если значение установлено в «Актуальные» то данные будут получаться только из основной базы данных. При установке значения «Любые» при формировании отчета будут использоваться данные из копии, которая содержит все таблицы, необходимые для выполнения запроса и эти таблицы содержат данные с требуемой актуальностью. Если нужной копии базы данных нет, то запрос будет исполнен в основной базе данных. Если стоит значение «Авто» то решение о работе с копией принимается платформой автоматически.

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

В принципе этих двух значений в отчете на СКД достаточно, чтобы отчет стал выполняться на копии базы данных, при соблюдении остальных условий.


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

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

ВыводитьКопиюБазыДанных - содержит имя копии базы данных, которая использована для получения данных.

В нашем конкретном примере отчет формировался в периоде с 01.01.2014 по 01.05.2019 время выполнения следующее:

На основной базе формируется - 15 сек.

На обычной копии БД 5 сек.

На дата акселераторе - 1 сек.

Время выполнение всегда стабильное.

Также и в коде объект «Запрос» может быть выполнен в копии базы данных. Задание требуемой актуальности данных управляется с помощью свойств объекта «Запрос» Запрос.ТребуемаяАктуальностьДанных и Запрос.ТребуемоеВремяАктуальностиДанных аналогичные свойствам параметров вывода компоновки данных, приведенных выше.

После получения данных с помощью объекта «Запрос», платформа предоставляет возможность получить информацию о том, откуда получались данные и насколько они актуальны. Такую информацию можно получить из свойств объекта «РезультатЗапроса»:

ДанныеАктуальны - позволяет определить, актуальны или нет данные, полученные запросом.

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

КопияБазыДанных - содержит имя копии базы данных, которая использована для получения данных.

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

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

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

1. Все таблицы, использованные в запросе или во всех источниках данных системы компоновки данных, должны располагаться в одной копии. Под термином «все» понимаются следующие таблицы, использованные в запросе (явно или неявно):

  • Таблицы, фигурирующие в качестве источников запроса.
  • Таблицы, из которых получаются какие-либо данные в запросе (например, при обращении «через точку»).
  • Таблицы, которые задействованы в условиях ограничений доступа к данным (если таковые присутствуют).

2. Актуальность данных копии удовлетворяет требованиям разработчика.

НЕ ВСЕ ТАК ГЛАДКО, ОГРАНИЧЕНИЯ ИСПОЛЬЗОВАНИЯ.

Механизм копии базы данных имеет условия выполнения на копии базы данных:

  • Запрос выполняется вне транзакции;
  • Не используется объект встроенного языка "МенеджерВременныхТаблиц".
  • "Требуемая актуальность данных" установлено в значение "Авто" или "Любые".
  • Все таблицы, необходимые для исполнения запроса, имеются в копии баз данных.
  • Актуальность данных в копии удовлетворяет тем требованиям, которые установил пользователь или разработчик. Актуальность данных определяется исходя из значения параметра ТребуемоеВремяАктуальностиДанных.

При соблюдении этих условий запрос или отчет на СКД будет выполнен на копии базы данных.

В свою очередь для того, чтобы отчет на СКД или запрос были выполнены на «Дата акселератор» к выше перечисленным условиями еще необходимо добавить условия:

  • В запросе не используется табличные части
  • В запросе не используется В ИЕРАРХИИ

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

И самое главное, ограничение механизма «Дата акселератора» заключается в том, что он оптимизирован для выполнения аналитических запросов, обрабатывающих большие объемы данных в СУБД и возвращающих в качестве результата небольшое количество записей, т.е. запрос или отчет на СКД должен быть приближен к OLAP-кубу. Это является рекомендованным сценарием использования механизма. При использовании Дата акселератора в других сценариях, время исполнения запроса механизмом Дата акселератором может быть больше, чем при использовании основной базы данных.

ТРЕБОВАНИЯ К СРЕДЕ ДЛЯ РАБОТЫ СЕРВИСА «ДАТА АКСЕЛЕРАТОР».

Сервис недоступен при использовании режима совместимости 8.3.13 и ниже.
Рекомендуемые системные требования:

  • Операционная система семейства Linux:
    • объем оперативной памяти 512Гб;
    • изменить стратегию управления оперативной памятью – всегда выделять столько памяти, сколько требует приложение. Значение параметра overcommit_memory=1. Устанавливается с помощью команды sudo sysctl -w vm.overcommit_memory=1.
    • объем оперативной памяти 512Гб;
    • использование файла подкачки объемом не менее 512Гб.

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

    Дата публикации 02.04.2021

    Пользователи программ "1С:Предприятие 8" могут подключиться к сервису 1С-Отчетность, чтобы отправлять отчетность прямо из 1С и обмениваться другими документами с контролирующими органами: ФНС, ПФР, ФСС, Росстат, Росприроднадзор, Росалкогольрегулирование, ФТС.

    Подготовка и отправка заявления на подключение

    Помощник "Подключение к 1С-Отчетности" поможет выполнить подключение. Его можно открыть из элемента справочника "Организации" (рис. 1).


    Для защиты информации и обеспечения юридической значимости документооборота требуется специальная программа - криптопровайдер. Помощник подключения проверяет, установлена ли такая программа на компьютере. В случае, если такая программа не установлена, выводится диалоговое окно с предложением ее установить (рис. 2).

    Сервис 1С-Отчетность работает с криптопровайдерами: ViPNet CSP (ОАО "ИнфоТеКС") или CryptoPro CSP (ООО "КРИПТО-ПРО"). Для ознакомления с условиями распространения этих программ перейдите по ссылкам из формы (см. на рис. 2).

    Программа ViPNet CSP распространяется бесплатно, CryptoPro CSP - на платной основе.

    Для установки программы-криптопровайдера нажмите на одну из кнопок "Установить бесплатно программу ViPNet CSP" или "Установить программу CryptoPro CSP" (рис. 2).

    По кнопке "Установить бесплатно программу ViPNet CSP" загружается файл дистрибутива программы ViPNet CSP и предлагается ее установить. После установки ViPNet CSP нужно перезагрузить компьютер и снова открыть программу 1С - подключение к 1С-Отчетности будет продолжено.

    По кнопке "Установить программу CryptoPro CSP" можно скачать бесплатную версию программы, ограниченную по времени. Чтобы программа CryptoPro CSP работала без ограничений нужно приобрести ее, затем установить с помощью данной кнопки. При установке потребуется ввести номер лицензии.


    На следующем шаге помощника укажите организацию, которую нужно подключить к 1С-Отчетности (рис. 3).


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

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

    Из сервиса 1С:Контрагент могут быть заполнены: ФИО руководителя; Краткое наименование (для юр.лица); КПП (для юр.лица); ОГРН; Юр.адрес (для юр.лица); Должность руководителя (для юр.лица); Код ФНС; Рег. номер ПФР; Код ПФР; Рег. номер ФСС.

    Если доступен сервис 1С:Контрагент, то в помощнике не будут отображаться следующие поля: Юр.адрес (для юр.лица), Должность руководителя. В этом случае, указанные данные перемещаются в расширенные настройки, потому что программа считает достоверными сведения из ЕГРЮЛ и ЕГРИП, предоставляемые сервисом.

    Если на компьютере найден сторонний сертификат, изданный на организацию, из него могут быть заполнены следующие сведения: Краткое наименование (для юр. лица); ОГРН; Должность (для юр. лица); Подразделение (для юр. лица); Рег. номер ФСС (если есть); Электронная почта.

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


    Введите регистрационный номер программы в поле "Рег. номер программы" (рис. 5).


    Щелкните по гиперссылке рядом с надписью "Гос. органы" чтобы выбрать гос. органы, в которые будет отправляться отчетность и выполняться обмен другими электронными документами (рис. 6).


    При этом появляется форма выбора гос. органов (рис. 7).

    В сервисе "1С-Отчетность" можно подключить электронный документооборот со следующими гос. органами:

    1) Налоговая инспекция (можно подключить несколько)

    2) Росстат (можно подключить несколько)

    3) Пенсионный фонд

    4) Фонд социального страхования

    5) Росалкогольрегулирование (РАР)

    6) Росприроднадзор (РПН)

    7) Федеральная таможенная служба (ФТС)


    Проставьте флажки по тем гос. органам, к которым необходимо подключиться, и заполните поля, как показано на рис. 8.


    Если организация представляет отчетность не в один налоговый орган (или орган Росстата), указывается несколько кодов. Для этого используйте кнопку "Добавить" (рис. 9).


    По кнопке и гиперссылке рядом с надписью "Владелец эл. подписи" можно выбрать сотрудника-владельца ключа электронной подписи (рис. 10). В поле "Должность" указывается должность сотрудника.

    Законным представителем юридического лица (Заявителем) во взаимоотношениях с контролирующими органами является лицо, имеющее право без доверенности действовать от имени юридического лица (руководитель организации), а индивидуального предпринимателя - сам предприниматель. Выпуск КСКПЭП по доверенности от индивидуального предпринимателя запрещен. Сотрудник организации, не являющийся руководителем, которому необходим выпуск КСКПЭП, считается Уполномоченным представителем. Уполномоченный представитель действует на основании доверенности, выдаваемой в порядке установленном ГК РФ.

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




    По гиперссылке рядом с надписью "Удостоверение личности" вводятся данные документа сотрудника-владельца ключа электронной подписи (рис. 13).

    В качестве документа, удостоверяющего личность сотрудника-владельца, прикрепите скан паспорта гражданина РФ, либо иностранного паспорта. Для этого используйте переключатель "Вид документа".


    При нажатии на кнопку "Проверить" напротив поля с телефоном на указанный номер телефона отправляется SMS с кодом, который вводится в поле подтверждения.

    При нажатии на кнопку "Проверить" напротив поля с электронной почтой - на указанный адрес электронной почты отправляется письмо с кодом подтверждения, который вводится в поле подтверждения.

    При работе в локальной программе "1С":


    Щелкнув по гиперссылке "Расширенные настройки" можно уточнить место хранения ключа электронной подписи и другие настройки (рис. 15).


    • В защищенном "облачном" хранилище (рекомендуется);
    • На этом компьютере при помощи CryptoPro CSP/ ViPNet CSP.

    Если программа-криптопровайдер не установлена, то вместо второго пункта появится надпись "Необходимо установить криптопровайдер" с гиперссылкой "Установить".

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

    При выборе варианта "На этом компьютере при помощи CryptoPro CSP/ ViPNet CSP" будет использоваться одна из программ-криптопровайдеров CryptoPro CSP или ViPNet CSP. В этом случае, ключ электронной подписи хранится на диске компьютера или на переносном устройстве (дискете, флеш-накопителе, токене и др.).

    ВАЖНО! Рекомендуется выбирать первый вариант, т.к. он является современным и удобным! Вам не нужно заботиться о том, чтобы переносной носитель информации с ключом всегда был под рукой. Также при смене компьютера не понадобится устанавливать программу-криптопровайдера на нем.


    Заявление может быть подписано электронной подписью (переключатель "Электронной подписью") (про электронное подписание см. ниже). Подписать заявление электронной подписью можно, если есть действующий сертификат.

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

    Чтобы ознакомиться с бланком заявления щелкните по ссылке "Ознакомиться" (см. на рис. 17).




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


    После создания ключа электронной подписи отправка заявления продолжится (рис. 21).



    Если сертификат электронной подписи оформляется на уполномоченного представителя (см. рис. 11), окно успешной отправки будет выглядеть, как показано на рис. 23, т.е. будет добавлен пункт 2 "Отнесите доверенность в каждую ИФНС".


    Электронное подписание заявления

    Если у организации есть действующий сертификат и на компьютере установлена соответствующая программа-криптопровайдер, то заявление можно подписать электронной подписью. Помощник подключения проверяет наличие такого сертификата в системе. Если сертификат найден, то устанавливается флажок "Электронной подписью" и появляется блок реквизитов "Скан-копии" (рис. 24).

    Электронное подписание подписание по сравнению с бумажным имеет свое преимущество в том, что встреча с представителем обслуживающей организации не потребуется.


    Прикрепите к заявлению скан-копии документов, используя гиперссылки "Выбрать файл" рядом с надписями "Паспорт" и "Свидетельство СНИЛС" (рис. 25). Используйте гиперссылку "Требования к изображениям", чтобы узнать требования к файлам сканов документов.

    В случае если доступен сканер, рядом с надписями "Паспорт" и "Свидетельство СНИЛС" отобразится гиперссылка "Отсканировать".

    Если сертификат оформляется на уполномоченного представителя, то в блоке "Скан-копии" также появляется поле для загрузки документа, подтверждающего полномочия уполномоченного представителя. Как правило, таким документом является доверенность.

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


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


    Что делать дальше:

    1) Сообщите об отправке заявления:

    2) Заключите договор и подготовьте необходимые документы.

    3) Дождитесь, когда обслуживающая организация одобрит ваше заявление.

    4) Завершите настройку 1С-Отчетности.

    Использовать сервис 1С-Отчетность можно только после одобрения заявления и заключительной настройки программы.

    Одобрение заявления на подключение к 1С-Отчетности и завершение настройки

    Для автоматической настройки программы нажмите кнопку "Настроить автоматически" и следуйте инструкции.


    В ходе настройки могут возникать вопросы об установке сертификатов - отвечайте на них утвердительно (рис. 28).



    После завершения подключения к сервису 1С-Отчетность можно отправлять отчетность в подключенные контролирующие органы и выполнять электронный обмен с ними другими документами.


    При подписании расписки электронной подписью в получении изданного сертификата может понадобиться ввести пароль закрытого ключа сертификата (рис. 31).


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

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

    Не удивительно, что в периоды отчетности или закрытия месяца многие компании сталкиваются с замедлением работы своих систем на базе 1С или НЕ 1С. Ведь один тяжелый отчет при формировании может "съесть" больше ресурсов, чем работа всей системы за неделю и даже больше.


    В мире энтерпрайза за пределами экосистемы 1С принято разделять базы на две категории:

    • Операционные (OLTP), где ведется основная работа бизнеса. Работа этих систем критична для бизнеса, а остановка в случае нештатных ситуаций может стоить компании значительных средств.
    • Отчетные (OLAP), предназначены для сбора различных видов отчетов. За счет изолирования от операционной базы, формирование тяжелой аналитической отчетности не повлияет на производительность и стабильность ее работы. Обычно остановка этих баз не так сильно отзывается на работе компании.

    Создать отдельную базу для отчетов можно несколькими путями:

    1. Сделать копию операционной базы данных.
    2. Организовать хранилище данных.

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

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

    Внимание!!

    Размещать отчетную базу лучше на отдельном сервере, чтобы снизить до минимума влияние ее работы на операционную деятельность. Это актуально для всех способов, что будут описаны ниже.

    Ах да, все примеры для клиент-серверных баз в контексте работы со SQL Server. Что-то будет актуально и для PostgreSQL.

    Классический подход

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

    Формирование и последующее разворачивание бэкапа делается через SQL Server Managment Studio в несколько простых шагов.

    Здесь простой пример как вручную создать бэкап, а потом развернуть его и при этом не сломать основную стратегию бэкапирования на сервере. Вы же делаете регулярные бэкапы, не так ли?!

    Сделать бэкап можно через удобный интерфейс с помощью SQL Managment Studio (SSMS), который также поставляется с некоторыми дистрибутивами SQL Server в комплекте, но можно использовать и последнюю версию с сайта Microsoft.

    Для этого нужно иметь соответствующие права доступа на инстансе SQL Server, зайти в SSMS и перейти к настройкам резервного копирования.


    Откроется окно настроек резервного копирования в разделе "Общие". Поскольку пример у нас простейший, то тут достаточно указать путь сохранения файла бэкапа и опцию "Архивная копия только для копирования". Последняя настройка нужна для того, чтобы SQL Server не учитывал этот бэкап в последовательности резервных копий при работе основной стратегии бэкапирования. Подробнее здесь.


    Далее запускам и ждем завершения операции создания резервной копии.


    Когда увидим заветное окно о завершении, то можно говорить о грандиозном успехе! Все получилось!


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

    С помощью SQL Managment Studio (SSMS) также развернем копию базы. Для этого перейдем к разделу "Базы данных" в SQL Managment Studio (SSMS).


    Далее укажем основные параметры: путь к файлу резервной копии и имя базы данных. Если база данных уже существует и ее нужно полностью обновить, то на вкладке "Параметры" установите "Перезаписать существующую базу данных (WITH REPLACE)".


    Ожидаем процесс восстановления базы.



    Отлично, копия базы готова!

    Вот и все! У нас есть актуальная (пока что!) база, для которой можно создать новую информационную базу на сервере 1С и использовать изолированно от рабочего окружения.

    Мы не рассматриваем все настройки для работы с бэкапированием, т.к. цели такой и не было. При такой схеме работы Вам еще может понадобиться указывать путь к файлам базы данных да диске, изменить модель восстановления отчетной базы с "Полный" на "Простой" и другое. Подробнее обо всем этом можете прочитать по ссылке.

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

    • Копия базы быстро теряет актуальность.
    • Подходит только для формирования отчетов в закрытом периоде, где данные уже не изменяются. В открытом периоде данные могут быть некорректные / неактуальные.
    • Актуализация только по требованию, когда нужны свежие данные "еще вчера".

    Просто, эффективно, но медленно!

    Скриптуем все!

    Но что, если нужно обновлять отчетную базу чаще? Например, раз в сутки?

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

    Например, так мы сформируем бэкап.

    А потом обновим отчетную базу.

    Чтобы этот процесс выполнялся автоматически раз в сутки создадим задание на SQL Server.

    Просто добавим задание, которое автоматически будет создавать резервную копию и разворачивать вне рабочее время.

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

    • Простота настройки, хоть и чуть сложнее предыдущего примера.
    • Копия базы актуальна на предыдущий день.
    • Не подходит для формирования оперативных отчетов.
    • Не подходит для формирования отчетности по прошлым периодам, если там интенсивно выполняется корректировка данных. Ну никто же так не делает! :)

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

    Реплицируем через репликацию

    Другой способ - это репликация стандартными средствами SQL Server. На самом деле, это не самый подходящий вариант передачи изменений баз 1С в их копию, потому что для его эффективной работы необходимо было бы добавить первичные ключи во все таблицы. Платформа 1С этого не делает. Конечно, можно было бы добавить ключи самостоятельно и, о боже, поддерживать при реструктуризации. Но, даже это бы не помогло, потому что для некоторых таблиц ключ просто невозможно добавить. Например, для таблицы "DBSchema", в которой только одно поле с типом "varbinary(max)".


    Вообще, есть несколько основных видов репликации:

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

    Из-за отсутствия первичных ключей в таблице может использоваться только публикация моментальных снимков. Но есть ли в этом смысл? Проще использовать актуализацию базы данных через формирование и разворачивание бэкапа.

    Мне удавалось запустить репликацию базы данных 1С через метод "Репликация транзакций", который был бы идеальным, если бы платформа корректно создавала первичные ключи для таблиц. Но мир не идеален, поэтому пришлось выполнять несколько дополнительных действий:

    1. Добавляем первичные ключи во все таблицы где есть кластерный индекс.
    2. После добавляем ключи в таблицы "кучи", если это возможно.
    3. Для таблиц, где первичный ключ добавить нельзя (например, та же таблица "DBSchema") добавляем свое числовое поле "ID" с автоинкрементом, которое и будет первичным ключом. Платформа 1С ничего об этом поле знать не будет.

    Да, репликация работала, но это такая лютая схема, что лучше ее никогда не использовать и не продвигать дальше этапа экспериментов. К тому же, нужно позаботиться о том, чтобы в базе приемнике не изменялись данные. Но Вы можете попробовать :). Результаты моих экспериментов постепенно выкладываются здесь.

    И так, что имеем.

    • Быстрая синхронизация при использовании репликации транзакций.
    • Отлаженные механизмы обмена как для хороших каналов связи, так и с низким качеством соединения.
    • Большие сложности применения для информационных баз 1С.
    • Сопровождение на столько сложное, что для простых обновлений баз 1С может потребоваться администратор БД или эксперт 1С!
    • Нарушение лицензионного соглашения фирмы 1С в части использования недокументированных возможностей.

    Таким образом, это для лютых извращенцев, которые не ищут легких путей! :)

    Копия в реальном времени

    И последний способ создания копии базы для отчетов - это использование групп высокой доступности AlwaysOn. Это очень мощная технология, которая позволяет создавать копию базы данных практически в реальном времени. С ее помощью можно настроить репликацию данных базы на другой инстанс SQL Server, при этом вторая база данных будет только для чтения.

    Репликация при AlwaysOn может быть двух типов:

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

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

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


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

    • SQL Server 2012 и выше редакции Enterprise Edition. Также функционал доступен для Standard Edition, но с ограничениями:
      • Максимум 2 реплики (первичная и вторичная)
      • Нет доступа на чтение для второй реплики
      • Только одна база в каждой группе доступности.

      Таким образом, нужен квалифицированный администратор, лицензии на Windows Server и SQL Server редакции Enterprise. Цена может подходить не для всех. Процесс настройки рассматривать в статье не будем, но ознакомиться с самой простой конфигурацией по шагам Вы можете по следующим ссылкам:

      Сейчас же остановимся на некоторых особенностях работы баз 1С с репликами AlwaysOn. Допустим, у нас сделана настройка асинхронной реплики. База данных на втором узле практически всегда находится в актуальном состоянии. Но находится она в режиме только для чтения! Мы развернули отдельный сервер 1С, добавили эту базу и попытались зайти в нее в режиме 1С:Предприятие. Первое, что мы увидим будет.

      Платформа 1С не поддерживает работу с базой в режиме "Только для чтения", т.к. пытается сохранять различные настройки форм, отчетов, историю работы в служебные таблицы. В этом случае есть несколько решений:

      Готовые решения тут отсутствуют, т.к. случаи очень разные, но общий подход должен быть понятен. Есть и другие нюансы при работе с AlwaysOn, не только в контексте 1С. Подробнее Вы можете прочитать здесь.

      Если Вас интересует технология AlwaysOn, то в репозитории есть специальный раздел о нем со скриптами, мануалами и прочим.

      Мысли напоследок

      Вы дочитали до конца и задались вопросом: "Почему не использовать стандартные возможности платформы?". Например, создать базу и наполнять ее через обмены или вообще сделать узел УРБД. Справедливый вопрос! Но и ответ простой - скорость и производительность!


      Стандартными обменами никогда не достичь передачи данных в реальном времени. Ни конвертация данных, ни даже организация событийного обмена через RabbitMQ никогда не достигнут скорости передачи данных по сравнению с AlwaysOn или репликацией транзакций. С другой стороны, они дешевле. И точно быстрее, чем актуализация отчетной базы через бэкапы.

      Еще вопрос - почему не формировать тяжелые отчеты в основной базе? Тут все просто - аналитические отчеты обычно требуют обработки большого массива данных. В этом случае может быть не важно на сколько оптимально вы написали запрос, ведь если данные анализируются за несколько лет, то никакой индекс или статистика могут не помочь. СУБД просто выберет сканирование таблиц в запросе и придется с этим жить. Все, конечно, зависит от запроса.

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

      На мой взгляд, самым продвинутым способом создания базы для отчетности остается AlwaysOn, но он требует дополнительной квалификации, расходов на лицензии и некоторую адаптацию конфигураций 1С.

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

      Самым доступным и распространенным остается способ через бэкапирование и разворачивание резервных копий со всеми вытекающими недостатками и ограничениями.

      Отправлять электронные формы отчетов — это удобно. Кроме того, для ряда компаний электронный формат сдачи является обязательным. Чтобы начать сдавать отчеты через интернет, используя сервис «1С-Отчетность», нужно выполнить несколько простых шагов.

      Для подключения необходимо выполнить 3 простых шага:

      Установить программу и криптопровайдер

      Оправка отчетности готова!

      Подробная инструкция

      Шаг 1. Выбираем организацию

      Для этого перейдите в «Меню» → «Главное» → «Организации». Из списка выберите ту, которую нужно подключить к сервису.

      Шаг 1. Выбираем организацию.

      Шаг 2. Переходим на страницу подключения

      В карточке организации нажмите кнопку «Подключение к 1С-отчетности».

      Шаг 2. Переходим на страницу подключения.

      Шаг 3. Выбираем криптопровайдер

      Если на компьютере установлен один из криптопровайдеров, программа автоматически определит его. В этом случае пропустите следующий шаг и переходите к шагу 5.

      Шаг 3. Выбираем криптопровайдер.

      Шаг 4. Устанавливаем криптопровайдер

      Если сервис не обнаружит криптопровайдер, то он предложит установить бесплатный «ViPNet CSP» или платный «CryptoPro CSP».

      Криптопровайдер — модуль, необходимый для совершения криптографических операций, защиты информации и обеспечения юридической значимости документооборота. Без него невозможна отправка документов в «1С-отчетности».

      Для установки нажмите на одну из кнопок: «Установить бесплатно программу ViPNet CSP» или «Установить программу CryptoPro CSP».

      Шаг 4. Устанавливаем криптопровайдер.

      Шаг 5. Заполняем реквизиты

      В окне подключения заполните все запрашиваемые реквизиты организации:

      • подключаемая организация;
      • ОГРН;
      • юридический адрес организации.

      Чтобы обмениваться юридически значимыми электронными документами с контрагентами, рекомендуем подключиться к сервису «1С-ЭДО».

      Шаг 5. Заполняем реквизиты.

      Шаг 6. Выбираем направления отчетности

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

      Шаг 6. Выбираем направления отчетности.

      После этого откроется форма для выбора контролирующих органов. В сервисе «1С-Отчетность» можно сдавать отчетность по семи направлениям:

      • ФНС;
      • Росстат;
      • ПФР;
      • ФСС;
      • Росалкогольрегулирование (РАР);
      • Росприроднадзор (РПН);
      • Федеральная таможенная служба (ФТС).

      Отметьте необходимые ведомства и заполните поля с кодами и регистрационными номерами.

      Шаг 6_1. Выбираем направления отчетности.

      Если нажать кнопку «Добавить», то можно добавить еще несколько направлений ФНС или Росстата.

      Шаг 6_2. Выбираем направления отчетности.

      Шаг 7. Заполняем дополнительные сведения

      Справа от окошка с выбранной организацией нажмите «Расширенные настройки». Здесь можно указать фактический адрес организации, номер телефона организации и настроить оповещения по отчетам в ФНС.

      Шаг 7. Заполняем дополнительные сведения.

      Для пользователей 1С Fresh: в форме «Расширенные настройки» можно выбрать один из вариантов хранения электронной подписи: в «облаке» или на компьютере. Если вы выберете первый вариант, то вам не нужно устанавливать программу для защиты информации. Отчетность можно отправлять с любого устройства и из любого места, где есть доступ в интернет.

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

      Также заполните поля «Телефон» и «Электронная почта» и запустите проверку, нажав одноименную кнопку. На телефон придет СМС с кодом проверки. На электронную почту придет письмо с кодом подтверждения.

      Шаг 7_1. Заполняем дополнительные сведения.

      Шаг 8. Подписываем заявление

      1. При формировании нового заявления выберите пункт «Использовать из другой программы 1С»

      Шаг 8. Подписываем заявление.

      2. Нажмите «Выбрать»

      Шаг 8. Подписываем заявление.

      3. Если наименование организации совпадает с тем, что записано в сертификате, появится список доступных к использованию сертификатов.

      Шаг 8. Подписываем заявление.

      Шаг 8. Подписываем заявление.

      Если ранее вы уже были подключены к сервису «1С-Отчетность» от лица подключаемой организации, и у вас в системе есть действующий сертификат ЭП, программа предложит подписать отправляемое заявление с помощью электронной подписи.

      Шаг 8. Подписываем заявление.

      Заполните блок реквизитов «Скан-копии». Прикрепите в него необходимые документы: паспорт и СНИЛС.

      Шаг 8_2. Подписываем заявление.

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

      Шаг 8_3. Подписываем заявление.

      Шаг 9. Отправляем заявление

      Шаг 9. Отправляем заявление.

      Укажите место хранения контейнера закрытого ключа. По умолчанию контейнер сохраняется в скрытую системную папку на локальном диске компьютера.

      Шаг 9_1. Отправляем заявление.

      Далее задайте пароль для контейнера ключа и подтвердите его. Пароль должен содержать в себе не менее 6 символов. Рекомендуем использовать спецсимволы и цифры. Чем сложнее пароль, тем он безопасней.

      Шаг 9_2. Отправляем заявление.

      Выполните генерацию ключа с помощью «Электронной рулетки». Передвигайте курсор в пределах окна сервиса либо нажимайте любые клавиши на клавиатуре.

      Шаг 9_3. Отправляем заявление.

      Шаг 9_4. Отправляем заявление.

      Шаг 10. Ждем одобрения заявления и завершаем настройку

      Для просмотра информации о статусе заявления перейдите в «Отчеты» → «Регламентированные отчеты» → «Настройки» → «Список». В открывшемся списке заявлений с помощью кнопки «Обновить статусы заявлений» можно просмотреть свежую информацию о заявлениях. Когда заявление на подключение примут, статус сменится на «Одобрено».

      Шаг 10. Ждем одобрения заявления и завершаем настройку.

      Завершите настройки сервиса. Нажмите на кнопку «Настроить автоматически». Если на экране появятся вопросы об установке сертификатов, выбирайте ответ «Да».

      Шаг 10_1. Ждем одобрения заявления и завершаем настройку.

      Также сервис может потребовать ввести пароль закрытого ключа сертификата.

      Шаг 10_2. Ждем одобрения заявления и завершаем настройку.

      Шаг 11. Отправка отчетности

      После успешного подключения к сервису «1С-Отчетность» вы можете перейти к отправке отчетности в подключенные контролирующие органы.

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