Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же утрачен.
На сегодня облачные хранилища часто заменяют физические носители информации. Как правило, облачные хранилища предоставляют бесплатно от 2 до 15 ГБ дискового пространства, кому-то этого будет вполне достаточно.
ПО Effector Saver позволяет настроить периодичное резервное копирование информационной базы 1С в облако. И задать количество хранения файлов резервной копии, отдельно для каждого хранилища.
Таким образом, вы можете установить удобное время для бэкапа и управлять количеством копий базы данных.
Далее в статье рассмотрим как с помощью Effector Saver настроить бэкап информационной базы 1С:Предприятия в облако Яндекс.Диск.
На компьютере где производится настройка, должна быть установлена программа 1С:Предприятие и подключена необходимая база данных.
Скачиваем программу с оф. сайта Скачать Effector Saver
Запускаем файл инсталляции Мастера установки. На последнем этапе Мастера установки, соглашаемся с запуском программы и нажимаем «Завершить».
На панели инструментов нажимаем «Задачи» «Добавить задачу».
Выбираем тип новой задачи «Резервное копирование 1С:Предприятие 8», нажмите «Создать».
Во вкладке «Подключение к 1С» нажимаем «Выбрать базу 1С:Предприятия из списка и заполнить основные параметры».
В открывшемся окне «Выбор базы 1С:Предприятия» указываем необходимую базу и нажимаем «Выбрать».
Поля «Наименование:», «Исполняемый файл:», «Вариант базы:» и «Каталог базы:» автоматически заполнятся в соответствии с выбранной базой.
Необходимо только заполнить имя и пароль пользователя указанной базы, под которым будет запускаться резервное копирование средствами Конфигуратора 1С:Предприятия.
Если используете программную лицензию 1С, то установите флаг «Использовать программную лицензию 1С».
На вкладке «Отключение пользователей», устанавливаем флаг «Завершить
В Effector Saver доступно два варианта завершения работы пользователей:
- если у вас файловой база выберите «Вызвать штатное завершение работы пользователей»;
- если у вас клиент-серверная база выберите «Завершить сеансы на сервер 1С:Предприятие». Если в кластере 1С:Предприятия создан пользователь «администратор кластера», установите флажок «Кластер требует авторизации». Заполните поля: «Имя администратора кластера:» и «Пароль администратора кластера:». Если порт подключения к Агенту сервера отличный от стандартного, установите флажок «Используется нестандартный порт агента сервера». Заполните поле «Порт агента сервера:» (по умолчанию 1540).
На следующей вкладке «Хранилище архивов» указываем, где следует хранить создаваемые архивы.
Для добавления нового хранилища архива, нажимаем на кнопку «+». В открывшемся окне, нажимаем «Создать новое хранилище».
Из выпадающего списка, выберите, «Яндекс.Диск». Доступны и другие варианты: Локальная/сетевая папка, FTP/FTPS, WebDAV, Google Диск, Dropbox, OneDrive, Облако Mail.Ru.
Поле «Название:», оставим как есть. Нажимаем «Авторизация».
Откроется окно браузера, в котором необходимо ввести логин и пароль для доступа к Яндекс.Диску. Затем нажмите «Разрешить», после этого окно браузера автоматически закроется.
Далее укажем папку для хранения бэкапа базы 1С, нажимаем на кнопку с тремя точками и выбираем папку, (если папки нет, создайте ее).
Для управления количеством копий базы данных, устанавливаем флаг «Автоматически удалять устаревшие резервные копии», и заполняем параметр «Хранить количество копий», например 3. Нажимаем «ОК».
На следующей вкладке назначим расписание. В поле «Назначить задание:», выберите нужный интервал времении заполните параметр «Время начала:».
В верхней части окна настройки устанавливаем флажок «Выполнять задачу по расписанию» и нажимаем кнопку «Сохранить».
Резервное копирование информационной базы 1С на Яндекс.Диск будет осуществляться автоматически в соответствии с установленным расписанием.
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же утрачен.
На сегодня облачные хранилища часто заменяют физические носители информации. Как правило, облачные хранилища предоставляют бесплатно от 2 до 15 ГБ дискового пространства, кому-то этого будет вполне достаточно.
ПО Effector Saver позволяет настроить периодичное резервное копирование информационной базы 1С в облако. И задать количество хранения файлов резервной копии, отдельно для каждого хранилища.
Таким образом, вы можете установить удобное время для бэкапа и управлять количеством копий базы данных.
Далее в статье рассмотрим как с помощью Effector Saver настроить бэкап информационной базы 1С:Предприятия в облако Яндекс.Диск.
На компьютере где производится настройка, должна быть установлена программа 1С:Предприятие и подключена необходимая база данных.
Скачиваем программу с оф. сайта Скачать Effector Saver
Запускаем файл инсталляции Мастера установки. На последнем этапе Мастера установки, соглашаемся с запуском программы и нажимаем «Завершить».
На панели инструментов нажимаем «Задачи» & «Добавить задачу».
Выбираем тип новой задачи «Резервное копирование 1С:Предприятие 8», нажмите «Создать».
Во вкладке «Подключение к 1С» нажимаем «Выбрать базу 1С:Предприятия из списка и заполнить основные параметры».
В открывшемся окне «Выбор базы 1С:Предприятия» указываем необходимую базу и нажимаем «Выбрать».
Поля «Наименование:», «Исполняемый файл:», «Вариант базы:» и «Каталог базы:» автоматически заполнятся в соответствии с выбранной базой.
Необходимо только заполнить имя и пароль пользователя указанной базы, под которым будет запускаться резервное копирование средствами Конфигуратора 1С:Предприятия.
Если используете программную лицензию 1С, то установите флаг «Использовать программную лицензию 1С».
На вкладке «Отключение пользователей», устанавливаем флаг «Завершить
В Effector Saver доступно два варианта завершения работы пользователей:
- если у вас файловой база выберите «Вызвать штатное завершение работы пользователей»;
- если у вас клиент-серверная база выберите «Завершить сеансы на сервер 1С:Предприятие». Если в кластере 1С:Предприятия создан пользователь «администратор кластера», установите флажок «Кластер требует авторизации». Заполните поля: «Имя администратора кластера:» и «Пароль администратора кластера:». Если порт подключения к Агенту сервера отличный от стандартного, установите флажок «Используется нестандартный порт агента сервера». Заполните поле «Порт агента сервера:» (по умолчанию 1540).
На следующей вкладке «Хранилище архивов» указываем, где следует хранить создаваемые архивы.
Для добавления нового хранилища архива, нажимаем на кнопку «+». В открывшемся окне, нажимаем «Создать новое хранилище».
Из выпадающего списка, выберите, «Яндекс.Диск». Доступны и другие варианты: Локальная/сетевая папка, FTP/FTPS, WebDAV, Google Диск, Dropbox, OneDrive, Облако Mail.Ru.
Поле «Название:», оставим как есть. Нажимаем «Авторизация».
Откроется окно браузера, в котором необходимо ввести логин и пароль для доступа к Яндекс.Диску. Затем нажмите «Разрешить», после этого окно браузера автоматически закроется.
Далее укажем папку для хранения бэкапа базы 1С, нажимаем на кнопку с тремя точками и выбираем папку, (если папки нет, создайте ее).
Для управления количеством копий базы данных, устанавливаем флаг «Автоматически удалять устаревшие резервные копии», и заполняем параметр «Хранить количество копий», например 3. Нажимаем «ОК».
На следующей вкладке назначим расписание. В поле «Назначить задание:», выберите нужный интервал времени и заполните параметр «Время начала:».
В верхней части окна настройки устанавливаем флажок «Выполнять задачу по расписанию» и нажимаем кнопку «Сохранить».
Резервное копирование информационной базы 1С на Яндекс.Диск будет осуществляться автоматически в соответствии с установленным расписанием.
Часто клиенты просят сделать автоматическую отправку счетов или отчетов на электронную почту, ниже приведены примеры кода для разных версий 1С:
С версиями 8.2 сложнее, так как все почтовые сервисы перешли на SSL, а медоты:
появились только в 8.3.1 , остается использовать stunnel или CDO:
Через stunnel в 1С код, менять не нужно, только установить программу и изменить настройки подключения к почтовому ящику
Скачиваем stunnel c официального сайта (stunnel.org) и запускаем инсталятор, жмем yes при установке спросит страну и ваши данные, это нужно для создания сертификата на вашем компьютере.
После запуска в трее появится его иконка, правой клавишей и редактировать edit configuration
В блокноте откроется файл настроек, там будет пример для gmail дополняем или заменяем его следующим:
Сохраняем файл и делаем Reload configuration
В настройка 1С меняем порты для работы
gmail
pop3 10110
imap 10143
smtp 10025
yandex
pop3 20110
imap 20143
smtp 20025
pop3 30110
imap 30143
smtp 30025
Если в коде прописано, то:
Все, можно отправлять и проверять
P.S. Почтовый ящик в примерах не рабочий, как пример
Effector saver - это специализированная программа для автоматического резервного копирования 1С:Предприятия.Программа позволяет создавать резервные копии баз данных 1С:Предприятия, баз Microsoft SQL или PostgreSQL серверов, пользовательских папок и файлов.Сохранять же резервные копии можно на внешние, сетевые и локальные диски, FTP сервер.Effector saver вмещает большое количество расширенных функций, которые значительно упрощают резервное копирование: планирование и автоматический запуск задач, удобное заполнение настроек и тестирование баз 1С, автоотключение пользователей 1С:Предприятия 8.
Наша цель - создание ежедневных архивов. На компьютере где производится настройка, должна быть установлена программа 1С:Предприятие и подключена необходимая база данных.Скачаем программу с официального сайта https://efsaver.ru/download.htmlЗапускаем файл инсталляции Мастера установки.
На последнем этапе Мастера установки, соглашаемся с запуском программы и нажимаем "Завершить".
Настроим параметры автозапуска "Агента". Для этого в Панели инструментов выбераем "Сервис" & "Параметры программы" & "Параметры запуска".
Выбираем "Запускать агент как приложение" (выбор зависит от установки программы на рабочую станцию или на сервер).
Нажимаем кнопку "Запустить агента" - "Сохранить".
Создаем задачу резервного копирования
Выбираем "Задачи" - "Добавить задачу".
Выбираем чем архивироватьПоле "Наименование" оставим по умолчанию, оно автоматически изменится на имя выбранной базы 1С.
Из выпадающего списка "Вид задачи" выбираем "Архивирование средствами 1С:Предприятие 8".
Указываем базу для архивацииВ закладке "Подключение" нажимаем "Выбрать и заполнить". В открывшемся окне "Выбор базы 1С:Предприятия" указываем нужную нам базу и нажимаем "Выбрать".
Поля "Исполняемый файл", "Вариант базы" и "Каталог базы" автоматически заполнятся значениями в соответствии с выбранной базой или же их можно заполнить вручную.
Заполняем имя и пароль пользователя выбранной базы, под которым будет запускаться резервное копирование средствами конфигуратора 1С:Предприятия.У этого пользователя в базе должны быть соответствующие права. Обратите внимание, имя задачи автоматически изменилось на имя выбранной базы.
Если для защиты 1С используется USB ключ, то не нужно устанавливать флаг "Использовать программную лицензию 1С".
Указываем место размещения архивированной базыПереходим на вкладку "Настройка архивов". Указываем каталог для хранения архивов: нажимаем на кнопку с тремя точками в конце поля "Каталог архивов" и выбераем в диалоговом окне каталог, или, если потребуется, создайте новый каталог с помощью кнопки "Создать папку".
В параметре "Количество одновременно хранимых архивов" установим 10. Effector saver будет удалять более старые резервные копии данной задачи, как только их количество превысит 10 штук.
Выбираем когда производить архивированиеЧтобы установить время выполнения задачи, переходим на вкладку "Расписание".
В нашем примере резервное копирование производится на рабочей станции, поэтому выбираем в поле "Назначить задание", пункт "Ежедневно после загрузки системы".
Если необходимо чтобы между стартом программы и архивированием прошла небольшая пауза, установите "Время задержки" в формате "чч:мм".
В поле "Время начала" установите произвольное время в формате "чч:мм" в тот период, когда последний пользователь прекращает
Активация и сохранение настройки задачиУстанавливаем флаг "Выполнять задачу" в верхней части окна настройки.
Жмём кнопку "Сохранить".{}{}Проверка работы задачиПосле выбора и настройки всех параметров резервного копирования, приступаем непосредственно к проведению самого копирования.
Удостоверьтесь, что пользователи вышли из базы 1С:Предприятия.
В главном окне "Менеджера" кликнув мышкой делаем активной строку со своей задачей.
В меню "Задачи" нажимаем "Выполнить сейчас" и ждём, пока закончится процесс. Ранее мы запустили "Агент", поэтому задача будет выполнена немедленно.{}{}{}{}Всё, готово. Резервная копия успешно создана.
Просмотр результатов работы задачиПосле завершения процесса резервного копирования во вкладке "Журнал" мы увидим дату и результат выполнения задачи по созданию бэкапа.
Для подробного просмотра результата выполнения задачи, выберите в меню "Журнал" - "Открыть запись", или сделайте двойной клик мышкой по записи выполнения задачи.
Во вкладке "Файлы" можно просмотреть список файлов бэкапа, которые были созданы в результате выполнения задачи.
Для просмотра файла бэкапа, выбираем в меню "Файлы" - "Открыть файл", или правый клик мыши по записи выполнения задачи - "Открыть файл".{}{}{}{}{}{}Таким вот образом, за считанные минуты, можно создать автоматическую задачу резервного копирования 1С:Предприятия, и тем самым обезопасить себя от потери важных данных. С резервными копиями, сбой жесткого диска или непреднамеренное удаление пройдет менее болезненно.
{}{}При добавлении новых объектов в типовые конфигурации возможна ошибка при обращении к этому объекту в режиме 1C:Предприятие: "Объект не найден в Справочнике "ИдентификаторыОбъектовМетаданных".
{Справочник.ИдентификаторыОбъектовМетаданных.МодульМенеджера(738)}: Ошибка при выполнении функции ОбщегоНазначения.ИдентификаторОбъектаМетаданных().
Для объекта метаданных "Отчет.РИК_РасчетыСПартнерами" не найден идентификатор в справочнике "Идентификаторы объектов метаданных".
Для разработчика: возможно требуется обновить вспомогательные данные, которые влияют на
- воспользоваться внешней обработкой "Инструменты разработчика: Обновление вспомогательных данных",
- либо запустить программу с параметром командной строки 1С:Предприятия 8 "/С ЗапуститьОбновлениеИнформационнойБазы",
- либо увеличить номер версии конфигурации, чтобы при очередном запуске выполнились процедуры обновления данных информационной базы.
Варианты решения:
1. В некоторых конфигурациях режиме предприятия
Все функции - Обработки - "Инструменты разработчика: Обновление вспомогательных данных", Если обработки нет, то пункт 2
Все функции - Справочники - "Идентификаторы объектов метаданных", нажать кнопку "Обновить данные справочника", Если кнопки обновить нет, то пункт 2
2. Из Конфигуратора запустить с параметром «/С ЗапуститьОбновлениеИнформационнойБазы», т.к. обработки может не оказаться под руками, а изменение версии производится с обновлением конфигурации и базы, что может оказаться не удобным:
Сервис/Параметры - Вкладка Запуск1С:Предприятия - В свойстве «Параметр запуска» добавляем «/С ЗапуститьОбновлениеИнформационнойБазы»
При запуске Предприятия появится окно обновления конфигурации. Потом не забудьте Убрать параметр запуска, чтобы больше не запускалось обновление!
3. Обновить конфигурацию или вручную увеличить номер версии конфигурации, чтобы при очередном запуске выполнились процедуры обновления данных информационной базы.
4. Выполнить:
Заказали виртуальный сервер на FastVPS, купили мини сервер 1С и пришло время установки.
В сети нашлась хорошая статья, где все по порядку:
Итак, устанавливаем минимальный CentOS, настраиваем имена хостов, DNSы и сетевые подключения и приступаем собственно к установке серверных компонентов.
1. Установка Postgre SQL server
Обновление от 03-ноя-2016: в последних версиях CentOS (у меня сегодня был 7.2.1511) отсутствует поддержка libtermcap (и как-то "иначе" реализована libreadline), из-за чего сборки с сайта 1С не устанавливаются - решил поставить сборку от Postgres Professionals https://postgrespro.ru/products/1c_build - вроде работает, но о стабильности и производительности пока судить рано. Так что у кого проблемы с libtermcap.so.2() и/ли libreadline.so.5() при установке PostgreSQL с патчами 1С, можете попробовать этот альтернативный вариант.
Для установки использовался рекомендованный (адаптированный) 1С дистрибутив, для чего потребуется скачать его из раздела поддержки пользователей сайта 1С. В моём случае это был "Дистрибутив СУБД PostgreSQL для Linux x86 (64-bit) одним архивом (RPM)", который я сохранил в /root/temp. Распаковываем архив:
[root@vm-sql01 temp]# tar -vxf postgresql-9.2.1-1.1C_x86_64_rpm.tar.gz
postgresql92-9.2.1-1.1C.x86_64.rpm
postgresql92-libs-9.2.1-1.1C.x86_64.rpm
postgresql92-server-9.2.1-1.1C.x86_64.rpm
postgresql92-contrib-9.2.1-1.1C.x86_64.rpm
[root@vm-sql01 temp]#
Устанавливаем в следующей последовательности:
yum install postgresql92-libs-9.2.1-1.1C.x86_64.rpm
yum install postgresql92-9.2.1-1.1C.x86_64.rpm
yum install postgresql92-server-9.2.1-1.1C.x86_64.rpm
yum install postgresql92-contrib-9.2.1-1.1C.x86_64.rpm
Все недостающие зависимости (пакеты) будут установлены в процессе установки этих rpm, хотя на сайте 1С рекомендуют предварительно установить пакеты readline, libtermcap, krb5-libs и openssl, но в моём случае они либо уже были установлены, либо не были обнаружены в репозиториях.
2. Первый запуск Postgre SQL server
В отличии от сценариев установки большинства знакомых мне sql-серверов, postgres требует предварительной инициализации перед запуском, для чего существует два пути - первый, правильный:
[root@vm-sql01 pgsql]# su postgres -c '/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data --locale=ru_RU.UTF-8'
Файлы, относящиеся к этой СУБД, будут принадлежать пользователю "postgres".
От его имени также будет запускаться процесс сервера.
Кластер баз данных будет инициализирован с локалью "ru_RU.UTF-8".
Кодировка БД по умолчанию, выбранная в соответствии с настройками: "UTF8".
Выбрана конфигурация текстового поиска по умолчанию "russian".
исправление прав для существующего каталога /var/lib/pgsql/9.2/data... ок
создание подкаталогов... ок
выбирается значение max_connections... 100
выбирается значение shared_buffers... 32MB
создание конфигурационных файлов... ок
создание базы template1 в /var/lib/pgsql/9.2/data/base/1... ок
инициализация pg_authid... ок
инициализация зависимостей... ок
создание системных представлений... ок
загрузка описаний системных объектов... ок
создание правил сортировки... ок
создание преобразований... ок
создание словарей... ок
установка прав для встроенных объектов... ок
создание информационной схемы... ок
загрузка серверного языка PL/pgSQL... ок
очистка базы данных template1... ок
копирование template1 в template0... ок
копирование template1 в postgres... ок
ВНИМАНИЕ: используется проверка подлинности "trust" для локальных подключений.
Другой метод можно выбрать, отредактировав pg_hba.conf или используя ключи -A,
--auth-local или --auth-host при следующем выполнении initdb.
Готово. Теперь вы можете запустить сервер баз данных:
/usr/pgsql-9.2/bin/postgres -D /var/lib/pgsql/9.2/data
или
/usr/pgsql-9.2/bin/pg_ctl -D /var/lib/pgsql/9.2/data -l logfile start
-bash-4.1$
Или тот же вывод на английском языке:
[root@vm-sql01 ~]# su postgres -c '/usr/pgsql-9.2/bin/initdb -D /var/lib/pgsql/9.2/data --locale=ru_RU.UTF-8'
could not change directory to "/root"
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "ru_RU.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "russian".
fixing permissions on existing directory /var/lib/pgsql/9.2/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 32MB
creating configuration files ... ok
creating template1 database in /var/lib/pgsql/9.2/data/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... ok
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
/usr/pgsql-9.2/bin/postgres -D /var/lib/pgsql/9.2/data
or
/usr/pgsql-9.2/bin/pg_ctl -D /var/lib/pgsql/9.2/data -l logfile start
[root@vm-sql01 ~]#
Или второй, более простой, но не всегда дающий необходимый результат (зависит от региональных настроек сервера, но у меня иногда приводивший к установке базы данных без поддержки необходимого collation ru_RU.UTF-8):
[root@vm-sql01 pgsql]# service postgresql-9.2 initdb
Инициализируется база данных: [ OK ]
[root@vm-sql01 pgsql]#
В результате была создана структура базы данных (с настройками) в /var/lib/pgsql/9.2/data. Хочу обратить особое внимание на конструкцию --locale=ru_RU.UTF-8, которую необходимо указать при инициализации, иначе сервер может быть инициализирован с неверным набором языковых параметров, что в конечном итоге приведёт к сообщениям
Ошибка установки или изменения национальных настроек информационной базы
Порядок сортировки не поддерживается базой данных
по причине:
Порядок сортировки не поддерживается базой данных
при установке информационной базы. Теперь можно настраивать автоматический запуск sql-сервера и, собственно, запускать его:
[root@vm-sql01 temp]# chkconfig postgresql-9.2 on
[root@vm-sql01 temp]# service postgresql-9.2 start
Запускается служба postgresql-9.2: [ OK ]
[root@vm-sql01 temp]#
Всё. Для локальных подключений сервер настроен. В моём случае сервер 1С и сервер SQL находятся на разных машинах, поэтому потребуется настроить и удалённые подключения с авторизацией.
В случае каких-то проблем, читаем содержимое файлов:
/var/lib/pgsql/9.2/pgstartup.log
/var/lib/pgsql/9.2/data/postgresql-*.log
Для повышения быстродействия документация PostgreSQL рекомендует как минимум унести журнал /var/lib/pgsql/9.2/data/pg_xlog на отдельный физический том и создать симлинк на него в исходном месте; из личных наблюдений - надо ещё и значительно увеличить размер используемой памяти... но необъятное не охватить, поэтому за статьями по оптимизации работы PostgreSQL для 1С предлагаю обращаться в поисковые системы, а оттуда - на профильные форумы.
3. Настройка пользователей (ролей) Postgre SQL server
Для управления PostgreSQL на начальном этапе потребуется сменить текущего пользователя на postgres и создать нового пользователя из командной строки:
[root@vm-sql01 temp]# su - postgres
-bash-4.1$ cd /usr/pgsql-9.2/bin
-bash-4.1$ createuser --interactive -P
Введите имя новой роли:server1c
Введите пароль для новой роли:
Повторите его:
Должна ли новая роль иметь полномочия суперпользователя? (y - да/n - нет) n
Новая роль должна иметь право создавать базы данных? (y - да/n - нет) y
Новая роль должна иметь право создавать другие роли? (y - да/n - нет) n
-bash-4.1$ exit
logout
[root@vm-sql01 temp]#
В принципе, для обслуживания полезно иметь пользователя с правами суперпользователя - создавать его можно тем же путём.
Теперь осталось разрешить удалённое подключение с авторизацией - для этого в файле /var/lib/pgsql/9.2/data/pg_hba.conf потребуется заменить значение ident на md5 в строке "host all all 0.0.0.0/0 md5" и перезапустить сервис.
Не следует забывать и про настройки iptables - для работы Postgre SQL необходимо открыть как минимум порт tcp 5432, хотя привычнее (да и проще) объявить сетевой интерфейс "внутренним" (разрешить все подключения на интерфейсе).
Для управления сервером потребуется pgAdmin, который можно установить из репозиториев используемого для административных целей линукса, либо скачать с сайта проекта.
4. Установка компонентов сервера 1С
Внимание!!! Для избежания проблем с зависимостями, желательно, чтобы разрядность сервера 1С совпадала с разрядностью используемого дистрибутива Linux! Иначе (если ставим 32-битный 1С на 64-битный Linux), при входе в базу, можно получить сообщение типа "Ошибка загрузки библиотеки libWand.so по причине:Библиотека не обнаружена. Часть функций будет недоступна." и клиенты не будут запускаться (хотя конфигуратор - будет). В принципе, я с этой проблемой справился на CentOS 7 (которой не выпускают больше в 32-битном исполнении) - просто поставил не только 'ImageMagick', но и 'ImageMagick.i686' (yum install ImageMagick.i686) - всё заработало (хоть и притянуло за собой гору зависимостей).
Первый шаг установки сервера 1С мало отличается от аналогичного этапа с SQL-сервером - распаковать скачанный дистрибутив сервера командой tar -vxf rpm64.tar.gz. В итоге получим файлы:
1C_Enterprise83-common-8.3.3-715.x86_64.rpm - основные файлы 1С (включая русский и английский интерфейсы)
1C_Enterprise83-common-nls-8.3.3-715.x86_64.rpm - дополнительные языковые модули
1C_Enterprise83-server-8.3.3-715.x86_64.rpm - сервер 1С
1C_Enterprise83-server-nls-8.3.3-715.x86_64.rpm - дополнительные языковые модули
1C_Enterprise83-ws-8.3.3-715.x86_64.rpm - компоненты вэб-сервера 1С
1C_Enterprise83-ws-nls-8.3.3-715.x86_64.rpm - дополнительные языковые модули
1C_Enterprise83-crs-8.3.3-715.i386.rpm - хранилище конфигураций (только в 32-битном комплекте)
Устанавливаем нужные пакеты командами:
yum install 1C_Enterprise83-common-8.3.3-715.x86_64.rpm
yum install 1C_Enterprise83-server-8.3.3-715.x86_64.rpm
Настраиваем автоматический запуск демона и стартуем его:
[root@vh-1c83 temp]# chkconfig srv1cv83 on
[root@vh-1c83 temp]# service srv1cv83 start
Starting 1C:Enterprise 8.3 server: Error: service failed to start!
FAILED
[root@vh-1c83 temp]# service srv1cv83 start
Starting 1C:Enterprise 8.3 server: OK
[root@vh-1c83 temp]#
Хочу обратить внимание - если сразу после установки сервис (как в приведённом примере) не стартовал, а при второй попытке старта он запустился, скорее всего не настроен DNS - об этом чуть ниже. Если верить информации с многочисленных форумов, то наш сервер уже готов обслуживать до 12 клиентов. Для работы большего числа пользователей, необходимо установить лицензию сервера - либо в виде USB HASP и драйвера, либо в виде электронной лицензии. Про установку аппаратных ключей я уже писал, а установка программных лицензий достаточно проста: запускаем конфигуратор (с клиентской машины; кластер уже должен быть настроен и должна быть информационная база), вызываем "Сервис" - "Получение лицензии", вводим номер комплекта (с коробки или "Регистрационный номер" с карточки из конверта "Пинкоды программной лицензии") и пин-код (с той самой карточки из конверта), ставим галочку "Установка на сервер", вводим имя сервера в соответствующем поле, нажимаем "Далее", говорим, что это - "Первый запуск", заполняем форму "Владелец лицензии" (к стати, я не понял что писать в полях "Фамилия", "Имя", "Отчество" - то ли ответственного за эксплуатацию, то ли генерального директора - оставил поля пустыми, и оно получило лицензию, не ругнувшись), "Далее", "Автоматически" - профит! в /var/1C/licenses на сервере появился файлик XXXXXXXXXXXXXX.lic и серверу "стало хорошо" (если это была многопользовательская лицензия, то клиентам тоже "станет хорошо", т.к. они будут получать лицензии на сервере).
Для работы с графическими объектами и экспорта в xls, могут потребоваться дополнительные пакеты: ImageMagick, freetype (входит в зависимости ImageMagick), libgsf (входит в зависимости ImageMagick), corefonts (отсутствует в репозитариях CentOS - см. раздел 6); для "ТАКСИ" и "Управляемого приложения" они необходимы, для классического толстого клиента вроде бы не особо нужны, но 1С всё равно ругается на их отсутствие, хоть и работает.
По умолчанию сервер 1С слушает порт tcp 1541(1540) и для соединений использует диапазон портов 1560-1691.
5. Настройка экземпляра (кластера) сервера 1С
Информации о наличии оснастки управления сервером 1С для Linux мне не попадалось, так что для управления сервером будем использовать традиционную оснастку mmc для Windows "Администрирование серверов 1С:Предприятия", которую следует поставить из дистрибутива технологической платформы для Windows.
В этом месте на тестовом сервере возникли трудности - кластер по умолчанию отсутствовал, а при попытке создания нового кластера, ragent аварийно завершал
При попытке подложить файлы с рабочего сервера на неудачный, сервис 1С не запускается абсолютно без каких-либо диагностических сообщений - подобное поведение я видел при проблемах (неверных контекстах) SELinux, но в данном случае никаких отказов в audit.log не обнаружилось.
В результате детального изучения проблемы с применением strace удалось выяснить, что агент сервера при запуске ищет настройки по пути ~/.1cv8/1C/1cv8/ (в домашнем каталоге запустившего пользователя) и если не находит, пытается создать настройки кластера по умолчанию, для чего ему нужно имя хоста (выяснено экспериментально), и если верить "Руководству администратора", нужен корректно работающий DNS; экспериментально же был установлен факт, что сначала ragent читает файл /etc/hosts, затем обращается к DNS-серверу, а затем вызывает uname и снова лезет в hosts и к DNS и если не находит сопоставления, аварийно завершается. Итак, для нормального запуска потребуется полноценная и правильно настроенная сетевая инфраструктура, ну а в отсутствии работающего DNS достаточно дописать строчку в /etc/hosts и привести его примерно к такому виду:
127.0.0.1 localhost
192.168.122.227 vh-1c83.test.lan vh-1c83
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
За дальнейшими инструкциями пока отсылаю к своей статье про 8.2 - принципиальных отличий пока нет. Единственное замечание - при создании новой информационной базы, если указывать пользователя подключения к базе данных не с правами суперпользователя (а с набором прав из пункта 3), информационная база не создавалась, а в /var/lib/pgsql/9.2/data/pg_log/postgresql-Xxx.log наблюдались сообщения:
ОШИБКА: нет прав для изменения параметра "lc_messages"
ОПЕРАТОР: SET lc_messages to 'en_US.UTF-8';
ОШИБКА: нет доступа к языку c
ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS '$libdir/plpgsql' LANGUAGE C
ОШИБКА: нет прав для изменения параметра "lc_messages"
ОПЕРАТОР: SET lc_messages to 'en_US.UTF-8';
ОШИБКА: ошибка синтаксиса (примерное положение: "application") в символе 24
ОПЕРАТОР: lock table pg_class in application share mode
ПРЕДУПРЕЖДЕНИЕ: нет незавершённой транзакции
ОШИБКА: тип "mvarchar" не существует в символе 31
ОПЕРАТОР: create table Config (FileName mvarchar(128) not null, Creation timestamp not null, Modified timestamp not null, Attributes int not null, DataSize int8 not null, BinaryData bytea not null, PartNo int not null, PRIMARY KEY (FileName, PartNo))
ОШИБКА: нет прав для изменения параметра "lc_messages"
ОПЕРАТОР: SET lc_messages to 'en_US.UTF-8';
ОШИБКА: нет доступа к языку c
ОПЕРАТОР: CREATE OR REPLACE FUNCTION plpgsql_call_handler() RETURNS language_handler AS '$libdir/plpgsql' LANGUAGE C
После подключения с учётными данными суперпользователя БД, сообщения изменились на англоязычные и проблемы исчезли. Судя по всему, если на сервере установлен язык по умолчанию en_US, данного казуса не случится, но это - не проверенная информация, а лишь предположение, сделанное по прочтении чужой статьи про 8.1 и праздных раздумий =)
Ещё одна странность - если создать пустую SQL базу не из шаблона1 (см. официальную документацию по 1С), и попытаться ей указать на этапе создания ИБ, то всё равно получим сообщение "ОШИБКА: тип "mvarchar" не существует (символ 31)"/"ERROR: type "mvarchar" does not exist at character 31", но мне так и не удалось создать из требуемого шаблона БД - валились разные ошибки, но если пользователя sql, от которого создаётся ИБ временно повысить до суперпользователя с правом создания БД, и указать создание базы данных в случае её отсутствия, то всё получается в лучшем виде, так что на этапе первичной настройки, видимо, придётся повышать пользователя до супер...
Что порадовало - теперь в 1С можно работать непосредственно из Linux, что актуально для компаний, использующих его как основную ОС в корпоративной сети (я сейчас работаю как раз в такой компании); из неожиданностей - что при установке клиента 1С, он заявляет о зависимости от сервера и требует его установки, но потом ставится, прописывает значки запуска в "Офис" - "Финансы" и работает довольно сносно (по ощущениям - чуть менее комфортно, чем 8.2 под Windows, но заметно приятнее, чем тот же 8.2 через WINE от Ethersoft).
6. Установка недостающих зависимостей
При запуске клиента к настроенному по данной инструкции серверу, появится сообщение "На сервере отсутствуют шрифты из состава Microsoft Core Fonts. Внешний вид приложения может отличаться от ожидаемого. Процедура установки описана в справочной системе..." - данное сообщение появляется достаточно редко (периодичность не выявил, но появляется точно не единожды, но и не при каждом запуске), и на работе особо не сказывается, но "для красоты" я решил пройтись по всей цепочке и поставить рекомендуемые пакеты. Всё, кроме "corefonts" поставилось из репозиториев (хотя в той самой "справочной системе" безбожно перепутаны регистры в названиях пакетов, из-за чего их идентификация оказалась весьма развлекательна), ну а шрифты я решил пересобрать (в соответствии с рекомендациями из "справочной системы") и результат прикрепляю к статье - msttcorefonts-2.5-1.noarch.rpm, заодно и сами шрифты (уже переименованные в нижний регистр, как происходит при сборке rpm рекомендованным скриптом) - msttcorefonts.tar.gz - содержимое этого архива рекомендуют распаковать в /home/usr1cv8/.fonts (не забыв сменить владельца как на папку, так и на файлы!), если нет возможности установить предложенный .rpm
Кроме "ImageMagick" и шрифтов, для возможности сохранения в табличные файлы (кроме xls - его я пока не заставил формироваться, хотя xlsx формируется), на клиенте должны быть установлены пакеты "libMagickWand5", "libgomp1", "liblcms2-2" и "libbz2-1" - на ряде машин они отсутствовали. При чём той же разрядности, что и сервер 1С (см. п. 4).
7. Настройка аппаратного hasp для виртуализированного сервера 1С (работающего на виртуальной машине KVM)
Не планировал описывать эту процедуру, но раз уж столкнулся с такой ситуацией, опишу... Итак, на этот раз я использовал драйвер от "Alladin Knowledge Systems USB HASP", предоставляемый компанией Sentinel - мне попались две версии:
2878061 сен 11 2012 aksusbd-2.0-1.i386.rpm - с сайта aladdin-rd.ru
3009880 авг 6 16:35 aksusbd-2.2-1.i386.rpm - с сайта safenet-inc.com
Можно воспользоваться драйвером эзерсофт - окончательный выбор следует делать из опыта практической эксплуатации.
Наиболее правильная (на мой взгляд) последовательность действий:
а) убедиться, что на хост-машине драйвер HASP не установлен;
б) установить выбранный драйвер USB HASP4 на виртуальном сервере;
в) выяснить список подключенных USB-устройств к хост-машине
[root@vh01 files]# ls -R /dev/bus/usb
/dev/bus/usb:
001
002
003
004
/dev/bus/usb/001:
001
002
/dev/bus/usb/002:
001
/dev/bus/usb/003:
001
/dev/bus/usb/004:
001
[root@vh01 files]#
г) подключить USB-HASP к хост-машине и выяснить адрес ключа:
[root@vh01 files]# ls -R /dev/bus/usb
/dev/bus/usb:
001
002
003
004
/dev/bus/usb/001:
001
002
/dev/bus/usb/002:
001
/dev/bus/usb/003:
001
/dev/bus/usb/004:
001
002 <==== это наш ключ - раньше его не было
[root@vh01 files]#
д) используя любой из способов (я использовал Virtual Manager на удалённой машине) добавить "USB Host Device" с найденным адресом (в моём примере - 004:002) к виртуальной машине 1С - может потребоваться выключение и включение машины (я добавлял устройство на выключенную машину).
Собственно, всё - на CentOS 6.4 x64/i686 всё работает (были багрепорты про CentOS 6.0/6.1, но вроде всё починили). Если при запуске виртуалки выдаётся сообщение о занятости устройства, скорее всего подцепился драйвер на хост-машине (так писали на паре форумов, хотя мне эту ситуацию воспроизвести не получилось - даже с установленным драйвером на сервере устройство мапилось корректно). Естественно, если переставить ключ в другой порт USB, придётся перенацеливать и виртуальную машину!
И напоследок, коротко о том "что где лежит":
/etc/sysconfig/srv1cv83 - файл конфигурации сервера 1С
/home/usr1cv8/.1cv8/1C/1cv8/1cv8wsrv.lst - файл, в котором хранятся основные свойства сервера - например, учётные данные администратора сервера, зарегистрированые кластеры и т.п.
/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst - файл, в котором хранятся свойства кластера по умолчанию
/opt/1C/v8.3/x86_64/ - (вместо "x86_64" может быть "i386" - в зависимости от архитектуры системы) исполняемые файлы и сопутствующие ресурсы сервера (и клиента) 1С
/var/1C/licenses - здесь лежат файлы электронных ключей лицензий
8. Настройка локального репозитория 1С для удобства обновления платформы
В процессе эксплуатации 1С нередко приходится обновлять платформу. Если всё установлено по приведённой выше инструкции, это вызывает определённые неудобства - надо останавливать сервис, удалять старые пакеты, ставить новые... не знаю - мне это ещё в винде надоело смертельно. Linux предлагает очень удобный механизм пакетного обновления из локального репозитория - всё, что нужно - это выбрать место, где будут лежать обновки: для одиночного сервера, к которому все ходят только через web-интерфейс, это может быть /root/repo (всё равно обновление под рутом идёт), ну а в общем случае - хоть /var/www/1c-repo - главное, чтобы все, кому он нужен, его видели. Далее надо установить пакет 'createrepo' (yum install createrepo) - за собой он притащит немало зависимостей, но не смертельно. Теперь командой 'createrepo /root/repo' (где "/root/repo" - выбранный путь хранения репозитория) создаём его "описание" и можно пользоваться.
Затем создаём файл описания нашего репозитория и помещаем его в каталог описаний репозиториев (для CentOS это /etc/yum.repos.d). Пример конфига локального файлового репозитария:
[root@1c yum.repos.d]# cat local-1c.repo
[local-1c]
name=1C Enterprise
#baseurl=http://inhost.firm.lan/repo
baseurl=file:///root/repo
gpgcheck=0
enabled=1
По-моему, разъяснять что за что отвечает, особого смысла нет. Единственное, что важно - сразу yum его может не увидеть - в этой ситуации поможет очистка его кэшей (yum clean all).
Всё. Теперь если надо обновиться, то помещаем новые файлы дистрибутива 1С рядом со старыми, повторяем 'createrepo /root/repo' вызываем 'yum update' - и всё - платформа пошла обновляться! Естественно, за сохранностью и защищённостью своего репозитория надо следить, так как GPG у нас выключен, и это всё же дыра в безопасности, хоть и не особо толстая...
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка:
Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe
«Содержимое указанного ниже веб-узла в этом приложении блокировано конфигурацией усиленной безопасности Internet Explorer».
Ошибка исчезает после многократного нажатия на «Закрыть», что несколько мешает работать, мягко говоря. Похожая ошибка бывает и в конфигураторе, при обновлении конфигурации или сравнении/объединении конфигураций. Чаще всего, мне попадалась эта проблема в серверных ОС, в частности Windows 2008 r2.
Решение: нужно добавить исключение в настройках безопасности Internet Explorer (далее & IE).
Это делается просто, если у вас один или несколько компьютеров & просто открываете IE/Свойства обозревателя/Безопасность/Надёжные узлы/Сайты, добавляете Aboutsecurity_1cv8c.exe и Aboutsecurity_1cv8.exe, нажимаете Ок, и наслаждаетесь результатом.
Но вот если у вас терминал-сервер и 40/60 пользователей, или еще хуже & пользователей 150 и они ходят в SQL версию 1С с локальных рабочих станций, то бегать по всем корпусам и добавлять эту настройку весьма накладно по времени, да и отвлекать пользователей лишний раз от работы не порядочно.
В этом случае, нужно пользоваться групповыми политиками домена (который у вас должен быть настроен, если вы не офисный спортсмен-бегун).
Вариант №1. Неудавшийся.
Первое решение & прописать настройки через Group Polices (Административные шаблоны/Компоненты Windows/Internet explorer/Вкладка «Безопасность»/Список назначений зоны для веб-сайтов) & не увенчалось успехом. Настройки пользователей, как и обещалось в статьях по данному методу, перестали работать, а вот зоны, описанные в этих настройках, работать не начали. При этом, я пробовал добавлять настройки и в локальные политики, и в доменные и в политики контроллера домена. Скорее всего из-за этих экспериментов с разными зонами действия групповых политик и появилась проблема.
И так, после этих манипуляций, в настройках безопасности IE появилась надпись «Некоторыми параметрами управляет системный администратор» и добавлять/удалять сайты узлов безопасности стало невозможно. От этой надписи, почему-то, оказалось не так просто избавиться. Удаление проделанных настроек GPO не разблокировали вкладку «Безопасность», а манипуляции с реестром привели к появлению ошибок «В параметрах зоны есть ошибка. Не удалось добавить сайт.» (IE 10) или «При установке параметров безопасности зоны произошла ошибка. Добавить узел не удается.» (IE 9) & все дальнейшие действия сходили на нет.
Исправить косяк удалось следующим путём:
Обновил Internet Explorer до версии 10 (был 9-й).
Предварительно экспортировав разделы реестра в файл, на случай восстановления, удалил из следующие ключи:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\InternetSettings
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings]
Восстановил настройки Internet Explorer (Свойства обозревателя/Дополнительно/Сброс).
Проверить, что проблема не вернётся можно введя команду gpupdate /force в командной строке. После обновления политики запустите IE и проверьте, что настройки остались на месте. Если настройки опять слетели и добавление сайтов в узлы безопасности стало опять невозможно, то, скорее всего вы забыли отключить параметр «Список назначений зоны для веб-сайтов» в какой-то из зон групповой политики.
Чтобы определить в какой из зон групповых политик засела настройка (в локальных, доменных или контроллера домена), удобно пользоваться мастером отчётов «Результаты групповой политики», который находится в консоли «Диспетчер сервера», в разделе «Компоненты/Управление групповой политикой» (в Windows 2008 r2, по крайне мере он там).
Так что, здесь стоит быть осторожным, чтобы не создать себе дополнительной работы.
Вариант №2. Через GPO и реестр.
Этот метод делается через те же групповые политики, но через прямые записи в реестр, а не манипулирование стандартными настройками.
Что делать:
Удаляем узлы Aboutsecurity_1cv8 из настроек IE, если вы их туда уже добавили вручную & это нужно для чистоты эксперимента. Проверьте, что в 1С ошибка сохранилась.
Создаём файл 1csec.reg, с содержимым:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\security_1cv8c.exe]
«about»=dword:00000002
Небольшая ремарка: подраздел EscDomains используется в режиме расширенной настройки безопасности, если же этот режим отключен по какой-то причине, то нужно использовать раздел Domains вместо EscDomains (подробнее о записях реестра IE см. в базе знаний Microsoft).
И пробуем добавить его в реестр & если срабатывает, и в тонком клиенте 1С ошибка Aboutsecurity_1cv8c.exe исчезает, делаем дальше.
Снова открываем Default Domain Policy в диспетчере управления сервером, далее Конфигурация пользователя/Настройка/Конфигурация Windows/Реестр.
Добавляем туда две записи, где поле «Путь раздела»:
в первой записи это «Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\security_1cv8c.exe» (для тонкого клиента 1С),
во второй записи «Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\EscDomains\security_1cv8.exe» (для толстого клиента).
В остальном запись содержит те же данные, что и на картинке.
После этого, как положено, перелогиниваемся и проверяем результат. В толстом и тонком клиенте 1С:предприятие, ошибка должна исчезнуть.
В моём случае, для надёжности избавления от проделанных в Варианте №2 настроек, были добавлены ещё три записи в реестр:
Обновить: HKCU\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings; параметр: ListBox_Support_ZoneMapKey; значение 0 (тип DWORD десятичный)
Удалить: HKCU\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap
Удалить: HKCU\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMapKey
Вариант №3. Интерфейсный.
Есть ещё вариант, который переключит
Каким кодом правильно отображать в табеле учета рабочего времени нерабочий праздничный день, пришедшийся для данного работника на период отпуска: В или ОТ в разделе "Отметки о явках и неявках на
Например, если у работника отпуск с 04.06.12 по 31.06.12, то 12.06.12 у данного работника правильно какой код поставить?
Вопрос возник оттого, что 1С:ЗУП ставит ОТ, бухгалтерия настаивает на В, как же быть?
Ответ: это запланированное поведение программы. на партнерском форуме копья ломаются с 2007г. 1С считает, что буква в табеле нигде не регламентирована, поэтому раз приказ на отпуск не разбивается на периоды, то и табель на периоды не разбивается. Дописывайте свой табель, если не согласны!
ломание копий в том, что очень многие партнеры просят объяснить поведение программы в рамках законодательства, потому что многие кадровики недовольны таким отображением.
а по-поводу регламентированности:
вот ответ, который выложил один из партнеров от отдела тех.поддержки (кстати, им можно писать и Вам):
По вопросу обозначения в табеле дня отпуска, приходящегося на праздничный день обращались на ЛК, обращение SW663545:
Ответ:
1. "Присланная Вами ссылка не является нормативным актом и не может служить руководством к действию.
Весь период отпуска, перекрываемый документом на отпуск, в табеле отражается в кодом ОТ.
Если Вы считаете, что это некорректно, пришлите ссылку на действующее законодательство, в котором регламентируется иное заполнение табеля в период отпуска."
2. "- откуда следует, что в Т-13 такие дни НЕ могут быть отмечены как "ОТ"
Не следует, так как данная статья никакого отношения к формирования унифицированной форме Т-13 не имеет.
А в Приказе Минфина РФ от 15.12.2010 N 173н, которым данная форма утверждена, не регламентировано отражение праздничных дней, приходящихся на отпуск.
Мы не комментируем методические решения, реализованные в типовой конфигурации. Одна из причин данной позиции - то, что действующее законодательство позволяет некоторые операции реализовывать разными способами (на выбор разработчика).
Если Вы не согласны с тем, как это реализовано в типовой конфигурации, пришлите пожалуйста ссылку на нормативные документы, определяющие однозначность решения данной ситуации.
Имеется 50 магазинов + несколько складов в нескольких городах.Как лучше организовать
Часто возникает необходимость в частичном ограничении доступа к данным. Например, когда пользователь должен видеть документы только своей организации. В таких случаях в 1С используется механизм ограничения доступа на уровне записей (так называемый, RLS – Record Level Securiy).
Для примера предположим, что перед нами стоит следующая задача. На предприятии ведется многофирменный учет и каждый контрагент и пользователь базы данных относится к определенной организации. Необходимо обеспечить доступ к справочнику “Контрагенты” таким образом, чтобы каждый пользователь мог просматривать, редактировать и добавлять контрагентов только своей организации.
Для решения задачи будем использовать платформу “1С:Предприятие 8.2″. Создадим новую конфигурацию в свойствах которой в качестве основного режима запуска будет выбран вариант “Управляемое приложение”.
Далее создадим справочник “Организации” и ещё два справочника – “Контрагенты” и “Пользователи” с реквизитом “Организация”. Кроме справочников нам понадобятся два параметра сеанса – “Организация” и “Пользователь” (соответствующих типов). Значения этих параметров устанавливаются при запуске сеанса работы с конфигурацией и хранятся до его завершения. Именно значения этих параметров мы и будем использовать при добавлении условий ограничения доступа на уровне записей.
Установка параметров сеанса выполняется в специальном модуле – “Модуль сеанса”
В этом модуле опишем предопределенную процедуру “УстановкаПараметровСеанса” в которой вызовем функцию заранее подготовленного общего модуля “ПолныеПрава”. Это необходимо в силу особенностей работы базы данных в режиме управляемого приложения, когда часть программного кода может выполняться только на стороне сервера (подробно на объяснении этих принципов в данной статье я останавливаться не буду).
В свойствах модуля “ПолныеПрава” необходимо отметить флажки “Сервер”, “Вызов сервера” и “Привилегированный” (последнее означает, что процедуры и функций данного модуля будут выполнятся без контроля прав доступа). Текст модуля будет выглядеть так:
В модуле управляемого приложения будем проверять наличие пользователя конфигурации в справочнике “Пользователи” (для простоты будем искать его по наименованию) и завершать
Теперь можем перейти непосредственно к описанию ограничений доступа. Для этого создадим роль “Пользователь” и перейдем на закладку “Шаблоны ограничений”, где добавим новый шаблон “КонтрагентыЧтениеИзменение” со следующим текстом шаблона: ГДЕ Организация =Организация #Параметр(1)
Текст шаблона ограничений является расширением языка запросов. В отличии от обычного запроса, текст ограничения должен в обязательном порядке содержать условие “ГДЕ”. В качестве значений параметров запроса (в нашем случае это “&Организация”) используются значения одноименных параметров сеанса. Конструкция вида #Параметр(1) означает, что на это место система подставит текст, переданный в качестве первого параметра в месте использования шаблона. С помощь приведенного шаблона будет выполняться проверка каждой записи таблицы (в нашем случае это будет справочник “Контрагены”). Для записей, значение реквизита “Организация” которых совпадает с заданным в соответствующем параметре сеанса, условие описанное в шаблоне будет выполняться. Таким образом эти записи будут доступны для чтения, изменения или добавления (в зависимости от того для какого из этих прав применяется шаблон). Продемонстрирую вышеизложенное на нашем примере.
Перейдем на закладку “Права” роли “Пользователь” и откроем список прав справочника “Контрагенты”. Будем использовать шаблон ограничений “КонтрагентыЧтениеИзменеие” для прав “Чтение”, “Изменение” и “Доблавление”.
Для права “Чтение” будем использовать шаблон с параметром “ИЛИ ЭтоГруппа”. При этом пользователям данной роли будет разрешено чтение не только элементов справочника “Контрагенты” своей организации, но и всех групп этого справочника.
#КонтрагентыЧтениеИзменение("ИЛИ ЭтоГруппа")
Поскольку при добавлении новых элементов справочника системой выполняется неявное чтение предопределенных реквизитов (это нужно, например, для нумерации), то необходимо обеспечить беспрепятственное чтение этих полей. Для этого добавим дополнительную строку с пустым текстом ограничения в таблицу ограничения доступа к данным и перечислим поля для которых действует данное правило – Ссылка, Версия данных, Родитель, Код.
Таким образом, поставленная задача ограничения доступа на уровне записей решена. Пользователи с действующими ограничениями получат доступ на просмотр и редактирование данных только своей организации.
Ошибка режима доступа к файлу & означает, что программа 1С находит файл 1cv8.1cd, но не может либо считать, либо записать данные в этот файл!
Способы решения:
Windows:
1. Не обходимо дать права доступа к файлам базы. Сделать доступ, чтоб файлы можно было по сети изменять и во вкладке безопасности пользователя не забудьте добавить - полные права.
Выделяем папку или файлы (у меня вот эти - 1Cv8.1CD,1Cv8.log и т.д.), жмем правой кнопкой мыши на них, свойства - безопасность, и для пользователя под которым подключаетесь к этим файлам устанавливаете полные права доступа. Если пользователя не указываете, значит вы подключаетесь по Гостем - установите для него полные права
2. Добавь 1Cv8.1CD в список исключений антивирусника, Каспер и другие антивирусы очень любят его перепроверять...
Linux:
Чуть сложнее дело обстоит в линуксе: сложнее организованы правила доступа к файлам, но и там есть несколько выходов. Например, если вы запускаете програму в режиме root & проблем не будет. Если вам нужно организовать
Дорабатывая у клиента отчет по данным для предоставления в статистику - появилось несколько готовых функций, которые Вам наверняка понадобятся:
В 1С есть такая замечательная вещь, как МенеджерВременныхТаблиц. Этот объект позволяет передавать временные таблицы из одного запроса в другой. То есть, мы можем создать временную таблицу в запросе, прерваться, выполнить какой-нибудь код, и продолжить
Например, в отчете в зависимости от выбранных настроек первичные данные обрабатываются тем или иным способом. Тогда имеет смысл в одной процедуре сформировать эти данные и поместить их во временную таблицу, которую уже передаем через менеджер временных таблиц в другую процедуру, отвечающую за выбранный способ обработки. Это позволит сократить код, сделать запросы более читаемыми. А так же в случае, если возникнут изменения в методике подготовки первичных данных для обработки, то потребуется внести изменения только в один запрос, а не в каждый.
В качестве примера работы с менеджером временных таблиц приведу следующую обработку.
Я создаю менеджер временных таблиц, и передаю его последовательно в каждую процедуру, для создания и объединения временных таблиц. Результат выводится в сводную таблицу.
Для облегчения интеграции с программными продуктами фирмы «1С» разработан формат обмена данными EnterpriseData. Формат основан на XML и является бизнес-ориентированным – описанные в нем структуры данных соответствуют бизнес-сущностям (документам и элементам справочников), представленным в программах «1С», например: акт выполненных работ, приходный кассовый ордер, контрагент, договор и т. п. Это делает формат интуитивно понятным и легким в использовании.
Формат EnterpriseData предназначен для обмена данными внутри компании (в том числе между разнородными и территориально удаленными информационными системами) и призван покрыть все сферы деятельности предприятия – финансы, производство, закупки и продажи, складские операции и т. п.
Версия 1.0.1 формата включает в себя описание 94 типов бизнес-сущностей из различных областей бизнеса (подробное описание формата можно найти здесь). Формат является расширяемым – фирма «1С» будет добавлять в него описание новых бизнес-сущностей и расширять существующие сущности новыми полями. Поддержка формата в продуктах фирмы «1С» обеспечивает совместимость снизу вверх – все программы сторонних производителей, обменивающихся данными в формате EnterpriseData с продуктами «1С», при выходе новых версий формата корректно продолжат
Формат предназначен для обмена информацией между любыми информационными системами: он не зависит от особенностей собственного программного обеспечения или структур информационных баз, которые участвуют в обмене и не содержит в себе явных ограничений использования.
Предварительная настройка на стороне «1С»
Чтобы начать обмен данными в формате EnterpriseData между приложением «1С» и сторонним приложением, надо на стороне «1С» настроить синхронизацию данных. В ходе настройки указывается уникальный код приложения, с которым будет производиться обмен, а также по какому каналу будет происходить обмен данными. В настоящий момент доступны следующие опции:
Обмен через электронную почту
В случае обмена через веб-сервис стороннее приложение будет инициировать сеанс обмена данными путем вызова соответствующих веб-методов приложения «1С». В остальных случаях инициатором сеанса обмена будет приложение «1С».
Также на стороне «1С» настраивается, с какой периодичностью будет происходить синхронизация (для вариантов с файловым обменом через каталог и электронную почту):
по расписанию (с заданной периодичностью);
вручную; пользователь должен будет вручную запускать синхронизацию каждый раз, когда это ему потребуется.
Формат файлов обмена
В ходе синхронизации приложения «1С» и сторонние приложения обмениваются сообщениями – XML-файлами определенной структуры. Эти файлы состоят из двух секций – <Header> и <Body>. Секция <Header> содержит сообщение-квитанцию <Confirmation> (о ней ниже), а <Body> – информацию об измененных бизнес-сущностях в формате EnterpriseData.
Иногда, при попутке открыть программу 1С, вылетает сообщение: "Выполняется ожидание возможности запуска..." При нажатии на клавишу "Выполнить запуск" никаких изменений не происходит и эта табличка висит на экране и идет отсчет времени. И так по кругу до бесконечности.
Такая проблема возникает редко, суть ее пока определить не удалось
Решение: Перезапустить службу сервера агента 1С или перезапуск всего сервера / компьютера с программой 1С
При попытке входа пользователя в базу появляется сообщение: "Ожидание запуска информационной базы. Установка соединения с информационной базой запрещена. Администратор просит вас самостоятельно завершить
В данном случае, похоже, процесс автоматического обновления конфигурации был случайно или преднамеренно прерван пользователем. Для решения проблемы нужно снять блокировку, и повторить обновление (обновление лучше проводить откатившись к резервной копии базы данных, сделанной до обновления).
Действия по решению проблемы зависят от варианты режима работы:
1) Файл-серверный режим работы базы. Для того, чтобы снять блокировку - удалите файл 1Cv8.cdn, который лежит в каталоге ИБ. После снятия блокировки, повторите попытку обновления.
2) Клиент-серверный режим. Снимите блокировку в консоли серверов в свойствах ИБ. После снятия блокировки, повторите попытку обновления.