Платформа 1С 8.2

Материал из RSU WiKi
Перейти к: навигация, поиск
Pen.pngЭта статья находится в процессе написания.
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

1С:Предприятие — программный продукт компании , предназначенный для автоматизации деятельности на предприятии.

Первоначально, продукт 1С:Предприятие был предназначен для автоматизации бухгалтерского учёта и управленческого учёта (включая начисление зарплаты и управление кадрами). Но сегодня этот продукт находит своё применение в областях, далёких от собственно бухгалтерских задач.

1С:Предприятие — это (одновременно) и технологическая платформа, и пользовательский режим работы. Технологическая платформа предоставляет объекты (данных и метаданных) и механизмы управления объектами. Объекты (данные и метаданные) описываются в виде конфигураций. При автоматизации какой-либо деятельности составляется своя конфигурация объектов, которая и представляет собой законченное прикладное решение. Конфигурация создаётся в специальном режиме работы программного продукта под названием «Конфигуратор», затем запускается режим работы под названием «1С:Предприятие», в котором пользователь получает доступ к основным функциям, реализованным в данном прикладном решении (конфигурации) [1].

Содержание

СУБД

PostgreSQL

Установка

Гарантированно работает связка:

  • 1C 8.2.15.301 + PostgreSQL 9.0.3-3.1С (с сайта 1С) + Windows Server 2008 SP2 (x64).

1С-версия PostgreSQL 9.0.3-3.1С при установке на чистой Windows Server 2008 SP2 (x64) влетает с ошибкой:

Ошибка создания контекста архивации для "C:\Program Files (x86)\PostgreSQL\9.0.3-3.1C\bin\initdb.exe". Ошибка в файле манифеста или политики "C:\Program Files (x86)\PostgreSQL\9.0.3-3.1C\bin\Microsoft.VC90.CRT.MANIFEST" в строке 4. Идентификатор компонента в файле манифеста не соответствует запрошенному идентификатору компонента. Ссылка - Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8". Определение - Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.1". Используйте sxstrace.exe для подробной диагностики.

Временное решение: скачать дистрибутив PostgreSQL 9.0.7 с официального сайта разработчиков (дистрибутив весит больше 1С-овского), нормально без ошибок установить с настройками по-умолчанию, удалить из системы через "Программы и компоненты" панели управления, после чего без ошибок установить версию от 1С.

Правильное решение: Поставить Microsoft Visual C++ 2008 Redistributable, затем лишь приступать к установке PostgreSQL 9 от 1C.

Инсталляция PostgreSQL 9.1.2-1.1C. Запускаем установочный файл программы PostgreSQL

Тюнинг производительности

Основная статья: Тюнинг PostgreSQL

В книге Алексея Васильева «Работа с Postgresql. Настройка, масштабирование» рекомендованы следующие параметры для высоконагруженных БД (файл postgresql.conf) [2] [3]:

  • shared_buffers = 1/8 RAM или больше (но не более 1/4);
  • work_mem в 1/20 RAM;
  • maintenance_work_mem в 1/4 RAM;
  • max_fsm_relations в планируемое кол–во таблиц в базах * 1.5 [4]; ВНИМАНИЕ! Начиная с 8.4 версии fsm параметры были убраны, поскольку Free Space Map сохраняется на жесткий диск, а не в память.
  • max_fsm_pages в max_fsm_relations * 2000;
  • fsync = true;
  • wal_sync_method = fdatasync;
  • commit_delay = от 10 до 100;
  • commit_siblings = от 5 до 10;
  • effective_cache_size = 0.9 от значения cached, которое показывает free;
  • random_page_cost = 2 для быстрых cpu, 4 для медленных;
  • cpu_tuple_cost = 0.001 для быстрых cpu, 0.01 для медленных;
  • cpu_index_tuple_cost = 0.0005 для быстрых cpu, 0.005 для медленных;
  • autovacuum = on;
  • autovacuum_vacuum_threshold = 1800;
  • autovacuum_analyze_threshold = 900;

Максимальный объем оперативной памяти, который может занять PostgreSQL (это важно при объемных запросах). За него отвечает параметр shared_buffers в postgresql.conf. Насчет значения для этой величины существуют разные рекомендации. Я пришел к выводу, что если это выделенный под БД сервер, то можно одному процессу отдать почти весь объем оперативки минус то, что нужно системе на свои нужды.

Вариант с форумов [5]. Лечит тормоза и ошибки 404 при работе веб-версии конфигурации "1С: Университет".

fsync = on	 # turns forced synchronization on or off 
wal_sync_method = fdatasync	 # the default is the first option 
random_page_cost = 2.0	 # same scale as above 
autovacuum = on	 # Enable autovacuum subprocess? 'on' 
autovacuum_vacuum_threshold = 1800	# min number of row updates before 
datestyle = 'iso, dmy' 
lc_messages = 'ru_RU.UTF-8'	 # locale for system error message 
lc_monetary = 'ru_RU.UTF-8'	 # locale for monetary formatting 
lc_numeric = 'ru_RU.UTF-8'	 # locale for number formatting 
lc_time = 'ru_RU.UTF-8'	 # locale for time formatting 
default_text_search_config = 'pg_catalog.russian' 
deadlock_timeout = 2s 
max_locks_per_transaction = 250	
default_statistics_target = 100 
maintenance_work_mem = 1024MB 
constraint_exclusion = on 
checkpoint_completion_target = 0.9 
effective_cache_size = 4096MB 
work_mem = 8MB 
wal_buffers = 16MB 
checkpoint_segments = 40 
enable_nestloop = off # существенный рост производительности для ОЧЕНЬ больших отчетов 
shared_buffers = 2048MB 
temp_buffers = 8MB 
max_connections = 200 
max_locks_per_transaction = 150 
escape_string_warning = off 
standard_conforming_strings = off 
join_collapse_limit = 1 

Подробно параметры расписаны в статье: http://wiki.etersoft.ru/PostgreSQL/Optimum

В некоторых случаях может помочь замена значения параметра конфигурации postgresql.conf

online_analyze.table_type = 'temporary'

на

online_analyze.table_type = 'all'

IBM DB2 Express-C

MSSQL

Oracle

Веб-сервер Apache

Основная статья: Настройка web-сервера
Основная статья: Мелочи жизни в Apache

Дистрибутив веб-сервера для платформы Windows берем по ссылке: http://www.apache.org/dist/httpd/binaries/win32/

Запускаем установочный файл программы Apache

Платформа

Установка

Установка платформы 1С: Предприятие 8.2

At work clipart.pngЭто незавершённая статья, требующая доработки.
как ставить и настраивать платформу для работы с СУБД


Администрирование

Добавление информационной базы

Запуск внешних обработок по расписанию

  1. Создать новое задание в "Планировщик заданий Windows" [6].
  2. На вкладке "Общие" обязательно выбрать пункт "Выполнить с наивысшими правами".
  3. На вкладке "Триггеры" задать расписание выполнения задания.
  4. На вкладке "Действия" создать "Запуск программы" со следующими параметрами:
    1. Программа или сценарий: "C:\Program Files (x86)\1cv82\8.2.15.301\bin\1cv8.exe"
    2. Добавить аргументы: /IBName "ExampleDB" /N "ExampleUser" /p "ExamplePassword" /Execute "c:\PocessingDir\ExternalProcessing.epf"
    3. Рабочая папка: C:\Program Files (x86)\1cv82\8.2.15.301\bin
  5. На вкладке "Параметры" выбрать "Немедленно запускать задачу, если пропущен плановый запуск" и выбрать/настроить "При сбое выполнения перезапускать" через 30 мин.

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

Настройки Штрих-М-ФР-К
  • Штрих-М-ФР-К
    • После включения пункта Наличная оплата следует перезапустить клиент
    • Перед включением пункта Печать логотипа, его следует загрузить в меню Функции

Предоставление доступа через веб (http/https)

На backend-сервере (1c-backend.local.example.com), где установлена платформа 1С необходим веб-сервер Apache. Под Windows его установка не представляет особой сложности.

At work clipart.pngЭто незавершённая статья, требующая доработки.
как опубликовать конфигурацию в самой 1С

Предположим, что на frontend-сервере (1c.example.com), смотрящем во внешнюю сеть стоит Nginx. В таком случае его конфигурационный файл будет иметь следующий вид:

server {
    listen 80;
    server_name  1c.example.com;
    rewrite ^(.*) https://1c.example.com/Test-Conf/$1 permanent;
}

server {
        listen 443;
        ssl on;
        ssl_certificate     /etc/nginx/ssl/1c.example.com.crt;
        ssl_certificate_key /etc/nginx/ssl/1c.example.com.key;

        server_name  1c.example.com;

        access_log  /var/log/nginx/1c.example.com-access_log;

        if ($request_uri = /) {
            rewrite ^ https://1c.example.com/Test-Conf/ permanent; #301 redirect
        }


        location /Test-Conf/ {
            proxy_pass         http://1c-backend.local.example.com/Test-Conf/;
            proxy_redirect     off;
            proxy_set_header   Host             $host;
            proxy_set_header   X-Real-IP        $remote_addr;
            client_max_body_size       50m;
            client_body_buffer_size    128k;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;

#            Разрешить доступ только из локальной сети
#            allow 172.16.0.0/12;
#            deny all;
        }

        include  inc-awstats.conf;
        include  inc-errors.conf;
    }

Генерация SSL-сертификатов подробно рассмотрена в статье Nginx

Программирование

Связь 1С и MySQL

Устранение неполадок

Ошибка сетевого доступа к серверу. Windows Sockets - 11001(0x00002AF9)

Возможные варианты работы операционных систем сервера и клиента:

  1. компьютер и сервер в домене - ok
  2. компьютер и сервер не домене - Ой ё, but still ok
  3. компьютер не в домене, а сервер в домене - not ok

В случае, если компьютер не в домене, а сервер в домене, возникает ошибка подключения тонкого клиента к серверу:

server_addr=example descr=Ошибка сетевого доступа к серверу
(Windows Sockets - 11001(0x00002AF9). этот хост неизвестен.)

Это означает, что клиент 1c не находит адрес example в файле hosts. Перейдите в папку etc через Пуск > Выполнить > cmd

%SystemRoot%/system32/drivers/etc

Добавьте строку разрешения имени example в адрес вашего сервера 1с, например:

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

192.0.0.10		example

Очистьте кэш dns через Пуск > Выполнить > cmd

ipconfig /flushdns

1с и HASP ключ в разных подсетях

Для использования локальных баз нужен физический ключ. Установите на сервер лицензий

  • hasp license manager
  • физический ключ
  • откройте порты 475, 1947 TCP и UDP Домен, Частный, Публичный для нужных подсетей или всех.

Возьмем ситуацию:

Сервер терминалов srv 192.0.1.9/24
Сервер лицензий srv 192.0.1.10/24
Сервер лицензий buh 192.0.2.10/24
Клиент buh 192.0.2.33/24
Клиент div1 192.0.3.33/24

Компьютеры и сервера в одной подсети с сервером лицензий (srv и buh) видят ключ без дополнительной настройки. Компьютерам в других подстеях укажите адрес сервера лицензий в конфигурационном файле C:\Program Files\1cv82\conf\nethasp.ini

;;NH_SERVER_ADDR = <Addr1>, <Addr2> 	; IP addresses of all the NetHASP 
					; License Managers you want to search.
					; Unlimited addresses and multiple
					; lines are possible.
					;
					; Possible address format examples:
					;  IP address:      192.114.176.65
					;  Local Hostname:  ftp.aladdin.co.il
NH_SERVER_ADDR = 192.0.1.10

Примечания

  1. 1С:Предприятие. Материал из Википедии — свободной энциклопедии
  2. http://habrahabr.ru/post/120932/
  3. http://lists.altlinux.org/pipermail/community/2008-January/402622.html
  4. http://postgresql.ru.net/pgtune/postgresql.html
  5. http://forum.infostart.ru/forum74/topic52018/
  6. infostart.ru Запуск любой внешней обработки по расписанию

См. также

Ссылки

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты