Сервер 1С:Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана
Если кратко описать мое отношение к Postgres: Использовал до того, как это стало мейнстримом.
Конкретнее: Собирал на нем сервера для компаний среднего размера (до 50 активных пользователей 1С).
На настоящий момент их набирается уже больше, чем пальцев рук пары человек (нормальных, а не фрезеровщиков).
Следуя этой статье вы сможете себе собрать такой же и начать спокойную легальную жизнь, максимально легко сделать первый шаг в мир Linux и Postgres.
А я побороться за 1. Лучший бизнес-кейс (лучший опыт автоматизации предприятия на базе PostgreSQL).
Если, конечно, статья придется вам по вкусу.
Копирование числовых ячеек из 1С в Excel Промо
Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.
1: Установка PostgreSQL
Сначала нужно установить на свой сервер PostgreSQL.
Откройте сессию пользователя с доступом к sudo и обновите список пакетов APT, чтобы получить последние версии репозиториев:
Теперь можно установить PostgreSQL:
В предыдущей команде указано несколько пакетов. Первый, postgresql, содержит основную программу PostgreSQL. Второй пакет, postgresql-contrib, добавляет несколько функций в PostgreSQL и расширяет возможности СУБД. Пакет libpq-dev – это библиотека PostgreSQL, которая позволяет клиентам отправлять запросы и получать ответы от бэкенд-сервера, благодаря чему ваше приложение сможет взаимодействовать с БД.
Теперь СУБД PostgreSQL и ее зависимости установлены на ваш сервер. Пора создать роль, с помощью которой приложение Rails сможет создать свою БД.
Изменение значений по-умолчанию в установке на Debian
Установка PostgreSQL на Debian автоматически вызывает initdb, т.е. инициализирует кластер с кодировкой и локалью по-умолчанию. Кодировка можно будет сменить позже, но язык нельзя. Для смены языка (возможно, чего-то ещё из initdb), удалите существующий по-умолчанию кластер и создайте новый:
- Авторизуйтесь как root.
- Выполните следующую команду:
pg_dropcluster --stop <version> main
Пример:
pg_dropcluster --stop 8.3 main
- Запустите initdb указав ваши настройки. Пример:
pg_createcluster --locale de_DE.UTF-8 --start 8.3 main
Внимание!
Предыдущая операция, как очевидно, удалит всё, что у вас было в кластере баз данных. Выполняйте эту операцию сразу после установки базового пакета. Рассмотрите руководство PostgreSQL, если вам нужно изменить стандарт для существующей базы данных (это не стандартная операция).
Рассмотрите страничку Locale если вам потребуется больше локалей.
Администрирование конфигураций 1С (недокументированные особенности работы)
Многие мои коллеги по работе и по профессии, уверен, сталкиваются с аналогичными ситуациями, когда программа 1С при работе с конфигурацией, мягко говоря, работает «странно». Как говорит один хороший знакомый (к слову, один из авторов УТ 11):
— «вот, ну согласись, нанять пару серьезных методистов — реальных дядечек с реального производства, до начала разработки — единственная ЭЛЕМЕНТАРНАЯ политика, как можно было этого не сделать???? там их НЕТ. Причем это 0 в плане затрат на разработку, там нет ограничений бюджета, это просто самый тупой прокол.»
В этой статье приведу способы лечения пресловутых проколов (за последний месяц).
2: Создание новой роли
В PostgreSQL роли можно использовать для организации разрешений и авторизации – так же, как используются пользователи в Linux. на данном этапе вы узнаете, как создать новую роль суперпользователя для пользователя в Linux, что позволит вам создавать и настраивать базы данных в системе PostgreSQL.
Чтобы создать роль суперпользователя PostgreSQL, введите следующую команду, заменив выделенное имя именем вашего пользователя Ubuntu 18.04:
Поскольку мы указали флаг -P, команда предложит ввести пароль для новой роли. Введите пароль, только обязательно запишите его, чтобы вы могли использовать его в конфигурационном файле.
Только что мы использовали createuser для создания роли по имени 8host. Флаг -S передал этому пользователю привилегии суперпользователя, а флаг sudo -u позволил запустить команду из учетной записи postgres, которая автоматически создается при установке PostgreSQL.
Примечание: Поскольку режим аутентификации для PostgreSQL в Ubuntu 18.04 начинается с ident, по умолчанию пользователь Ubuntu может работать в PostgreSQL только с той ролью, имя которой совпадает с его именем. За дополнительной информацией обращайтесь к .
Если вы не использовали флаг -P в команде, но хотите установить пароль для роли после ее создания, откройте консоль PostgreSQL:
Вы получите следующий вывод:
Консоль PostgreSQL в командной строке определяется префиксом postgres=#. Введите эту команду, чтобы установить пароль для новой роли БД (укажите свое имя):
PostgreSQL предложит вам ввести пароль. Введите и затем подтвердите его.
Теперь выйдите из консоли PostgreSQL, введя эту команду:
Вы вернетесь в обычную командную строку.
Итак, вы создали новую роль PostgreSQL с привилегиями суперпользователя. Теперь пора создать новое приложение Rails, которое будет использовать эту роль для создания базы данных.
4: Настройка и создание базы данных
При создании баз данных для разработки и тестирования приложение Rails мы будем использовать роль PostgreSQL, которую ранее создали для своего пользователя Ubuntu. Чтобы Rails мог создавать эти БД, нужно откорректировать конфигурации базы данных вашего проекта. После этого можно создать БД.
Сначала необходимо внести в ваше приложение Rails пароль для роли PostgreSQL, которую вы создали ранее. Для защиты конфиденциальной информации, такой как пароли, рекомендуется хранить ее в переменной среды, а не записывать ее непосредственно в конфигурации.
Чтобы сохранить ваш пароль в переменной среды при входе в систему, выполните следующую команду, где вместо APPNAME укажите имя вашего приложения, а вместо PostgreSQL_Role_Password – пароль, который вы создали в предыдущем разделе:
Эта команда записывает команду export в ваш файл ~/.bashrc, благодаря чему переменная среды будет установлена при входе в систему.
Чтобы экспортировать переменную для текущего сеанса, используйте команду source:
Теперь, когда вы сохранили пароль в своей среде, пришло время отредактировать сам конфигурационный файл.
Откройте конфигурации БД в текстовом редакторе:
В разделе default найдите строку:
и добавьте после нее следующие выделенные строки, указав свои учетные данные и переменную среды, которую вы создали. Этот раздел будет выглядеть примерно так:
Благодаря этим настройкам приложение Rails сможет запускать базу данных с правильной ролью и паролем.
За дополнительной информацией по настройке баз данных в Rails обратитесь к .
Теперь, когда вы внесли изменения в config/database.yml, создайте базы данных для вашего приложения с помощью команды rails:
Когда Rails закончит процесс, вы получите сообщение:
Согласно выводу, команда создала базы данных development и test на сервере PostgreSQL.
Итак, у вас есть БД PostgreSQL, связанные с вашим приложением Rails. Давайте проверим, все ли работает правильно.
Замена pg_ctl
pg_ctl это команда для управления PostgreSQL из командной строки, которая используется для управления базой данных. Debian имеет Perl-обёртку для pg_ctl, которая вызывается из /usr/bin/pg_ctlcluster. Используйте pg_ctlcluster, когда вам потребуется использовать pg_ctl. Файл настроек находится в /etc/postgresql///pg_ctl.conf
Debian устанавливает SysV-init-совместимый (стандартный) скрипт автозагрузки в /etc/init.d/postgresql-. Скрипт может использоваться для запуска, остановки, перезапуска и перезагрузки настроек без перезапуска системы. Скрипт вызывает pg_ctlcluster через внутренние вызовы.
Установка Python PSYCOPG2 Ошибка ошибки: исполняемый файл PG_Config не найден
http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>yle=»margin-bottom:5px;»>Теги: python3 psycopg2
Недавний код должен использовать PostgreSQL, но когда вы устанавливаете PSYCOPG2, вы найдете ошибку, ошибка выглядит следующим образом:
После того, как найден многопартийной поиска, причина заключалась в том, что плагин PostgreSQL не был установлен, поэтому была установлена следующая команда:
Затем используйте следующую команду, чтобы быть успешно установлена:
Интеллектуальная рекомендация
1. Для реальных сигналов (для понимания): A (ω) является соотношением амплитуды выходного сигнала и амплитуды входного сигнала, называемого частотой амплитуды. Φ (ω) — это разница межд…
Один. вести Многие люди задавали некоторые вопросы о создании проекта Flex + LCDS (FDS) в сообщениях и группах. Из-за операции ее трудно четко объяснить, поэтому я написал простой учебник (я обещал эт…
package com.example.phonehttp; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.widget.ScrollView; import android.widget.TextView; public class MainActi…
Он предназначен для реализации подкласса того же родительского класса с родительским классом. Полиморфизм Один и тот же ссылочный тип использует разные экземпляры для выполнения разных операций; Идея …
тема: Объедините два упорядоченных слоя в новый заказанный список и возврат. Новый список состоит из всех узлов двух связанных списков, данных сплавным. Пример: Анализ: два связанных списка состоит в …
Вам также может понравиться
D. Самая ценная строка Пример ввода 2 2 aa aaa 2 b c Образец вывода aaa c На самом деле, будучи задетым этим вопросом, вы должны быть осторожны. После инвертирования строки, если две строки имеют один…
Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 surro…
calc () может быть очень незнакомым для всех, и трудно поверить, что calc () является частью CSS. Поскольку он выглядит как функция, почему он появляется в CSS, поскольку это функция? Этот момент такж…
Основываясь на дереве регрессии, сформированном CART, а также на предварительной и последующей обрезке дерева, код выглядит следующим образом:…
Откат Обновление в режиме онлайн с версии Centos (CentOS Linux версии 7.3.1611 (Core) до CentOS Linux версии 7.5.1804 (Core)) # ошибка соединения yum-ssh после обновления yexpected key exchange group …
Настройка PostgreSQL
По умолчанию Postgres использует концепцию ролей для управления разрешениями доступа к базе данных, а роли базы данных концептуально полностью отделены от пользователей операционной системы. Роль может быть пользователем или группой, а роль с правом входа в сиcтему называется пользователем.
Только что инициализированная система всегда содержит одну предопределенную роль, называемую postgres, и имеет то же имя, что и учетная запись пользователя операционной системы, называемая postgres, которая используется для доступа к psql (оболочка Postgres) и другим программам баз данных.
Учетная запись пользователя системы Postgres не защищена паролем, для ее защиты вы можете создать пароль с помощью утилиты passwd.
Кроме того, роль Postgres (или, если угодно, суперпользователь базы данных) по умолчанию не защищена. Вам также необходимо защитить ее паролем. Теперь переключитесь на учетную запись пользователя системы postgres и роль postgres (не забудьте установить надежный и безопасный пароль), как показано ниже.
Далее выйдите из учетной записи postgres, чтобы продолжить настройку. Основной файл конфигурации Postgres находится по пути /etc/postgresql/11/main/postgresql.conf. В дополнение к этому файлу Postgres использует два других файла конфигурации, которые управляют аутентификацией клиента.
Аутентификация клиента контролируется файлом конфигурации /etc/postgresql/11/main/pg_hba.conf. Postgres предоставляет множество различных методов аутентификации клиента, включая аутентификацию на основе пароля. Клиентские соединения аутентифицируются на основе адреса хоста клиента, базы данных и пользователя.
Если вы решите использовать аутентификацию на основе пароля, вы можете воспользоваться одним из этих методов: md5 или пароль, работающий аналогичным образом, за исключением способа передачи пароля по соединению, а именно, хэширования MD5 и открытого текста соответственно.
Использование аутентификации по паролю md5 предотвращает перехват паролей хакерами и позволяет избежать хранения паролей на сервере в виде простого текста. Парольный метод можно использовать только в том случае, если соединение защищено шифрованием SSL.
В этом руководстве мы покажем, как настроить аутентификацию по паролю md5 для аутентификации клиента.
Найдите следующую строку и измените метод аутентификации на md5, как показано на скриншоте.
Сохраните изменения в файле и выйдите из него. Затем примените последние изменения, перезапустив службу Postgres следующим образом.
Создание новой базы данных и роли базы данных/пользователя в PostgreSQL
В этом последнем разделе мы покажем, как создать нового пользователя базы данных и роль базы данных для управления им. Сначала переключитесь на учетную запись postgres и откройте оболочку Postgres следующим образом.
Чтобы создать базу данных с именем «test_db», выполните следующую SQL команду:
Затем создайте пользователя базы данных (роль с правом входа), который будет управлять новой базой данных:
На этом настройка postgresql Debian 10 практически завершена. Чтобы подключиться к test_db от имени пользователя test_user, выполните:
Для получения дополнительной информации см. Документацию PostgreSQL 11.
1 ответ
28
Лучший ответ
Протестировано с Python 3.4.8, 3.5.5, 3.6.5 и 2.7.14 (просто замените 3 на 2):
Объяснение: для сборки Psycopg вам нужны пакеты . Кроме того, вам также понадобится исполняемый файл pg_config: хотя простая установка будет работать, тоже отлично работает и занимает на 12 МБ меньше места.
Вот оригинальная версия ответа (на основе этого Dockerfile), где я вручную устанавливаю Python на чистый образ Alpine, потому что в то время Python не предоставлял образ Docker с Python 3.6 и Alpine 3.7. Если вы хотите установить Python 2.7 подобным образом, также сделайте (называемый в старых репозиториях Alpine).
18 дек. 2017, в 15:25
Поделиться
Ещё вопросы
- 1Почему fuse не использует класс, предоставленный в file_class
- 1Разобрать CSV с JSON, используя PHP
- 2Visual Studio замедляет работу приложения
- Показать изображение, скрыть его через 5 секунд, и появляется кнопка, чтобы показать следующее изображение
- 1Java: Как быстро извлечь совпадающие строки из большого текстового файла?
- Javascript не запускается при загрузке. Как я могу исправить в HTML?
- Изменить изображение во время события прокрутки
- Как правильно объединить таблицы с отношением «многие к одному»
- 1nGrinder WAR создает исключение
- 1Два ArrayList, начиная с одинаковых данных
- Получить указатель на BSTR из вектора <BSTR>
- 1Как запустить приложение для Android, когда оно не показывает ошибку?
- AngularJS: отслеживать время, проведенное в веб-приложении, а затем запускать событие в определенное время
- 1MobX: как изменить наблюдаемое значение в ответ на изменение другого значения?
- 1Преобразование строки «3 ]» в «deedeedee»
- обновить запрос для более чем одной вещи
- jQuery onLoad x jQuery onDomready
- Получение данных и передача их в другое состояние с помощью ui-router в AngularJS
- Поиск RLIKE MySQL регулярного выражения для двух или без символа
- Как написать SQL для извлечения данных из столбца в другой столбец
- обновление mongodb с помощью оператора $ push в angular-meteor
- Вертикально центрирующая привязка тега к правому плавающему элементу
- 1Есть ли простой способ выйти из цикла Java без переписывания большей части кода?
- 1При закрытии сеанса FTP можно ли выйти из системы (QUIT) перед отключением?
- Подборка выбора Помощь при запросе
- Обновление переменной в файле rhtml
- Переменная длина initializer_list
- 1Ошибка запуска Android во всех проектах Android
- Javascript RegEx для замены отдельных подчеркиваний на строку подчеркиваний
- 2Как решить «Метод« Пропустить »поддерживается только для отсортированного ввода в LINQ to Entities».
- шаблон функции перегрузки
- 1Невозможно записать список элементов в файл, используя python
- Как я могу получить входные значения из элементов, добавленных после загрузки страницы?
- Включите файл JavaScript только один раз в Joomla
- Слайдер IE9 Jquery не открывается
- 1.htaccess переписать поддомен в папку
- (как я могу) Фабрика данных Azure для (на прем) подключения MySQL к БД с использованием сертификата
- 1Ошибка использования сеанса RamSession с cherrypy за nginx
- DBUnit: NoSuchColumnException Входной столбец без прописных букв в карте кэша ColumnNameToIndexes. Имена столбцов карты НЕ чувствительны к регистру
- 2401 Ошибка аутентификации при запуске приложения C #, выполняющего HttpWebRequest
- 1Каков лучший дизайн пользовательского интерфейса для выбора значка объекта в Android?
- 1Обновление определенного пользователем объекта в ArrayList
- 1Получить статистику новой строки для текстового файла в Python
- 2Win 7 IIS 7.5 странное поведение с System.ComponentModel.BrowseableAttribute
- Как быстро объединить массивы символов?
- 1Подключайтесь через Wi-Fi, используя имя компьютера вместо IP-адреса
- Проверка кода JQuery не будет работать
- Вход в социальные сети с помощью keycloak
- 23D поверхность графика цветового пространства в питоне
- 1Как сделать итеративный цикл для извлечения имен столбцов Pandas более эффективным?
3: Создание нового Rails-приложения
Теперь вы можете создать новое приложение Rails, настроенное на использование PostgreSQL в качестве базы данных.
Сначала перейдите в свой домашний каталог:
Создайте новое приложение Rails в этом каталоге, заменив имя приложения:
Опция -d=postgresql задает PostgreSQL в качестве базы данных.
После того как вы запустите эту команду, в вашем домашнем каталоге появится новая папка appname, содержащая все элементы базового приложения Rails.
Перейдите в каталог приложения:
Теперь, когда вы создали новое приложение Rails и перешли в корневой каталог своего проекта, вы можете создать и настроить базу данных PostgreSQL.
Запуск Apache 2.4 с модулем 1С внутри Docker контейнера
Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе
Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии
Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.
5: Тестирование настройки
Чтобы убедиться, что ваше приложение может использовать базу данных PostgreSQL, попробуйте запустить его в браузере.
Используя команду rails server, запустите ваше веб-приложение на встроенном веб-сервере Puma:
Флаг –binding привязывает приложение к указанному IP. По умолчанию этот флаг привязывает Rails к 0.0.0.0, но при этом Rails будет прослушивать все интерфейсы. Более безопасно использовать 127.0.0.1, то есть localhost. По умолчанию приложение прослушивает порт 3000.
Как только приложение Rails запустится, ваша командная строка исчезнет, заменившись сообщением:
Чтобы проверить, работает ли ваше приложение, откройте на сервере новое окно терминала и с помощью команды curl отправьте запрос на 127.0.0.1:3000:
Вы получите много выходных данных в формате HTML, в конце будет что-то вроде:
Если ваше приложение Rails находится на удаленном сервере и вы хотите получить к нему доступ через веб-браузер, проще всего связать его с внешним IP-адресом вашего сервера. Сначала откройте порт 3000 в брандмауэре:
Затем узнайте внешний IP-адрес сервера, выполнив следующую команду curl:
Эта команда выведет ваш внешний IP-адрес. Используйте его в команде rails server:
Теперь вы сможете получить доступ к приложению Rails в локальном веб-браузере через внешний IP-адрес сервера по порту 3000:
По этому адресу располагается приветственная страница Ruby on Rails:
Это значит, что ваше приложение правильно настроено и взаимодействует с БД PostgreSQL.
Протестировав настройку, вы можете закрыть порт 3000 с помощью этой команды:
1С:Предприятие Бухгалтерия переход с редакции 2.0 на 3.0. Практика перевода информационной базы для работы в управляемом приложении. Промо
Из информационного выпуска 1С № 16872 от 08.07.2013г. стало известно об относительно скором необходимом переходе на редакцию 1С:Бухгалтерия 3.0. В данной публикации будут разобраны некоторые особенности перевода нетиповой конфигурации 1С:Бухгалтерия 2.0 на редакцию 3.0, которая работает в режиме «Управляемое приложение».
Публикация будет дополняться по мере подготовки нового материала. Публикация не является «универсальной инструкцией».
Update 3. Права доступа. 14.08.2013
Update 4. Добавлен раздел 0. Дополнен раздел 4. Добавлен раздел 7. Внесены поправки, актуализирована информация. 23.11.2013.
1 стартмани
Часто встречающиеся ошибки 1С и общие способы их решения Промо
Статья рассчитана в первую очередь на тех, кто недостаточно много работал с 1С и не успел набить шишек при встрече с часто встречающимися ошибками. Обычно можно определить для себя несколько действий благодаря которым можно определить решится ли проблема за несколько минут или же потребует дополнительного анализа. В первое время сталкиваясь с простыми ошибками тратил уйму времени на то, чтобы с ними разобраться. Конечно, интернет сильно помогает в таких вопросах, но не всегда есть возможность им воспользоваться. Поэтому надеюсь, что эта статья поможет кому-нибудь сэкономить время.