
Ручная сборка Postgre. SQL для 1. C 8. 2, или легкие пути не для нас! Опишу только то, чего нигде в интернете нет — то, что мы раскурили методом научного тыка. Несмотря на обилие мануалов по установке постгреса для 1. C, ни один из них не решил наших основных граблей, все они оказались поверхностными и ничего не объясняли. Поэтому мы посчитали своим долгом восполнить этот пробел : -)Начну с того, что мы используем Gentoo, и никакие RPM пакеты у нас не ставятся.
Для тех, кто в танке, небольшая справка: 1С:Предприятие — это система для разработки баз данных. Главный упор делается на . Так же разберем установку и настройку конфигурация 1С 8.2 с демо данными. Также необходимо повторить удалением все патчи, эмуляторы HASP, . Кроме того на сервере кластера «1С:Предприятия» хранятся . Кряк 1С8.1(8.2). Название файла (не более 120 мегов 1 файл): upatch.rar.
Пакет 1. C в формате rpm для Gentoo установить не представлялось возможным (долго объяснять почему), поэтому скачать src. Нам оставалась единственная возможность — перевести rpm. А далее приводится пошаговое руководство. Готовим окружение: mkdir /tmp/t. Качаем с официального сайта пакет со всеми требуемыми файлами: wget v.
Скачаем с сайта 1С последние исходники с патчами. Мы распаковали файлы с исходниками и применили к ним патчи. Помните, один патч не наложился? Он добавляет в contrib/Makefile 3 дополнительных либы от 1С: mchar, fulleq и fasttrun. Для сборки . Как установить кряк для 1С 8.0 8.1 8.2 8.3 8.3.4 8.3.5? Конфигурация "Бухгалтерия предприятия" Конфигурация "Бухгалтерия автономного учреждения". Инструкция по установке PostgreSQL 1С. Плюсы использования PostgreSQL для 1С предприятия. Как создать базу на сервере PostgreSQL.

Выполняем: rpm. 2tar postgresql- 8. C. src. rpm & & rm postgresql- 8. C. src. rpm. 3. Распаковываем архив: tar xf postgresql- 8. C. src. tar. Все файлы распакуются в текущую директорию, поэтому лучше все же это делать в чистой папке. Также сразу распакуем postgresql- 8. Открываем файл ./postgresql- 8. C. spec и очень долго его изучаем : -) В нем описано все то, что сделал бы rpmbuild (если бы все было так просто!).
Находим секцию, где накладываются патчи, и в такой же очередности начинаем это делать (из папки с постгресом): patch - p. И это в официальной поставке. Мы так и не нашли, что меняет rpm spec, чтобы такой патч наложился. Благо, патч этот маленький и понятный, просто меняет опции конфига по умолчанию, поэтому мы потом после установки вернемся, и поправим конфиг ручками. А пока забили на это и идем дальше.
Дальше изучаем секцию build rpm spec, и смотрим, с какими параметрами вызывается configure. Трудно верится, что 1. С будет использовать perl, python или tcl (а базу мы поднимаем исключительно для 1.
С, не хочется держать в запиленной разработчиками 1. С базе свои другие базы, пусть живут в нормальном оригинальном постгре), поэтому эти опции просто игнорируем. Итого, что мы использовали./configure - -disable- rpath - -enable- nls - -disable- integer- datetimes - -enable- thread- safety 6. Корень постгреса скопируется в /usr/local/pgsql. Далее надо установить дополнительные библиотеки из папки contrib. Помните, один патч не наложился?
Он добавляет в contrib/Makefile 3 дополнительных либы от 1. С: mchar, fulleq и fasttrun. Для сборки mchar потребуется дополнительный компонент ICU версии 3. Поэтому сделаем небольшое отступление и поставим его: mkdir /tmp/icu & & cd /tmp/icu & & wget download.
Но нам потребуется лишь подключаемая во время исполнения библиотека, поэтому после установки постргеса мы эту папку прибьем. Вернемся к сборке contrib. Надо отредактировать файл contrib/mchar/Makefile и поправить PG. Также поправить путь в SHLIB.
Далее добавляем ручками три 1. С- ых компонента в WANTED. Соберем contrib: make - C contrib & & make - C contrib install. Ручками скопируем требуемые ICU библиотеки в папку с либами постре: cp - a /usr/local/icu/lib/* /usr/local/pgsql/lib/rm - rf /usr/local/icu. Постргес собран и установлен в /usr/local/pgsql. Конфиги пока править не будем.
Создадим системный эккаунт, под которым будет работать база: useradd - d /usr/local/pgsql/ - s /bin/bash pgmastermkdir /usr/local/pgsql/data chown pgmaster /usr/local/pgsql/data & & chmod 7. Инициализируем и запустим базу: mkdir /usr/local/pgsql/log & & chown pgmaster /usr/local/pgsql/logsu — pgmasterinitdb - D /usr/local/pgsql/datapostgres - h 0. D /usr/local/pgsql/data. Сервер тихо запустился без потери управляющего терминала.
Сменим пароль суперюезру (screen рулит, хе- хе): su — pgmasterpsql template. Type «help» for help. ALTER ROLEtemplate. CTRL+DА теперь потушим постргрес в первой консоли по CTRL+C, и пора править конфиги. Файл data/pg. Файл data/postgresql. Разделяемая память.
Либо sysctl - w kernel. А теперь начинается самое интересное. Запускаем снова постргес (postgres - D data - p 5. Подключаемся и создаем базу для 1. C: $ psql template. Password: psql (8. Type «help» for help.
Далее надо в базе template. CREATE LANGUAGEtemplate. Далее надо залить в нее SQL- код из 3- х компонентов от 1. С. Нигде в интернете про эту операцию не сказано. Мы изучили весь RPM spec, выполняли make check, test и тд.
Но так и не нашли, каким образом в RPM пакетах в template. Поэтому мы делаем эту руками: template. Если вдруг ругается на подгрузку mchar. LD. Но и это не все!!!
Самая главная пробка, из- за которой не могли двигаться далее. Натравливаем на базу 1. C, смотрим в логах: LOG: statement: select 1 from pg. Вводим этот запрос с консоли: template. Методом исключения обнаруживаем, что отсутсвует datediff. Попытки отыскать ее в папке с postgresql и в патчах 1.
С к успеху не приводят: snowflake local # cd /tmp/t. Догадались вообще зачем это нужно, и вообще зачем все эти патчи нужны. Вместо адаптации 1. С к постргесу, разработчики решили адаптировать постгрес, чтобы SQL был похож на MSSQL!
Вот и понапихивали туда функций и типов! Ну да ладно, datediff мы нашли.
На всякий случай вот ее код: CREATE OR REPLACE FUNCTION datediff(character varying, timestamp without time zone, timestamp without time zone)RETURNS integer AS$BODY$DECLAREarg! Форматирование текста на хабре заменяет знак минус на дефис. Скопируйте текст процедуры сперва в текстовый редактор, и там массово замените длинный дефис на короткий минус, иначе постгрес будет ругаться : -) Посчитаем снова единички : -)template. Но не тут- то было : -) По 1. И у нас пять! А 1. С при запуске все равно говорит, что база у нас плохая, и дальше не идет. Смотрим еще раз все (пару штук всего!) начальные запросы при конфигурировании 1.
С. Понимаем, что все, что она может, это посчитать еденицы! Но их же 5!!! Этого результата мы добились часа через 3 после скачивания архива с сайта 1. С. Далее начались пляски с бубном. Многочисленные пересборки, попытки качать разные версии, дистрибутивы от Этерсофта. Хоть об стену головой. Готовую Научно-Исследовательскую Работу На Тему Оригами. И тут пришла в голову идея выполнить эту процедуру на рабочей конфигурации?
Мысли шевелятся с трудом. Кто- то замечает, что видимо, каких- то процедур больше одной : -))Логично. Методом тыка по почте выясняем, что plpgsql. Вызов select * from pg. Далее долгие попытки руками воткнуть запись в системную таблицу pg. Снова ступор. Причина понятна, что делать — нет. И тут набираем в яндексе одно слово: plpgsql.
На первом месте сайт www. Для этого выполните следующую команду: select * from pg? База данных создалась, и 1.
С залила всю структуру. А теперь вопрос. Зачем программистам 1.
С в базе две одинаковых процедуры??? Потом когда игрались, удаляли datediff, обнаружили, что она зависит от plpgsql.