Игорь Кисиль | Архитектор ПО | Terminal West Trading LLC

«О создании внешних компонент для мобильных приложений 1С под Андроид»

1. Что может и чего не может технология внешних компонент для мобильных приложений. Насколько она способна преодолеть ограничения мобильной платформы. 2. Где и как применять внешние компоненты для мобильных приложений. Что предпочесть, если требуемая функциональность достижима и внешней компонентой, и средствами взаимодействия платформы с ОС Андроид? 3. Архитектура внешней компоненты – обязательные и необязательные составляющие 4. Возможно ли создать универсальный шаблон компоненты только для управляемого кода (Java)? 5. Компиляция и сборка – инструменты и настройка среды 6. Нюансы программирования взаимодействия с мобильной платформой. С чего начать программисту 1С осваивать процесс создания внешних компонент.

Сборка PostgreSQL 9.4.2 из исходников с патчами от 1С

0. starik-2005 1386 21.02.16 12:41 Сейчас в теме
Честно - не нашел нигде описания того, как пропатчить KDE для FreeBSD, поэтому решил ликвидировать данную несправедливость. Ниже по тексту я расскажу не только про то, как собрать Postgres, но и как использовать флаги оптимизации для вашего процессора, чтобы все работало максимально быстро. Ну и немного остановлюсь на конфигурировании и администрировании.

Перейти к публикации

Комментарии
Сортировка: Древо
1. Berckk 24.02.16 11:51 Сейчас в теме
Автору спасибо.
Но чтобы не собирать руками просто оставлю это здесь.

В предлагаемых пакетах используется более новый PostgreSQL 9.4.6. Эта версия СУБД имеет множество улучшений, прежде всего связанных с отказоустойчивостью.
http://www.postgrespro.ru/products/1c_build
teflon; angur; audion; gentle; cleaner_it; oldfornit; JohnyDeath; Nikovit; myr4ik07; cmd_vasec; +10 Ответить
2. starik-2005 1386 24.02.16 14:53 Сейчас в теме
(1) Berckk, сейчас актуальная версия 9.5, но, как я понял1с еще не накатила туда свои патчи. В ней тоже много улучшений.
3. Danila-Master 85 26.02.16 08:17 Сейчас в теме
Спасибо за статью.
Только вопрос:
В стандартных репозетариях Ubuntu есть тоже Postgres. И при последующих обновлениях операционки, update попытается перетереть Postgres от 1С на Postgres и репозитария.
Знаю, что есть возможность отключить обновление Postgres'а.

Собственно как это сделать?
4. starik-2005 1386 26.02.16 08:19 Сейчас в теме
(3) Danila-Master, когда собираешь руками, то не пытается. Отключить обновления можно так: http://www.linuxrussia.com/2013/10/ubuntu-hold-package.html
7. Danila-Master 85 04.03.16 07:58 Сейчас в теме
5. B2B 253 02.03.16 16:42 Сейчас в теме
"./configure --disable-integer-datetimes"


Начиная с платформы версии 8.3.3 этот параметр не обязателен.
6. starik-2005 1386 02.03.16 18:10 Сейчас в теме
(5) B2B, ну вот и я о том же...
8. osipovigor 09.03.16 17:09 Сейчас в теме
Я извиняюсь, я новечек в этом всём, и дико туплю, но после установки постгри от сюда:
http://www.postgrespro.ru/products/1c_build

у меня 3 каталога
/etc/postgresql
/usr/lib/postgresql
/usr/hare/postgrsql

С каким из них необходимо работать? :)
9. starik-2005 1386 09.03.16 17:21 Сейчас в теме
(8) osipovigor, ну Вы всегда можете выполнить "sudo service postgres status" для отображения, откуда запущен экземпляр постмастера. В etc обычно лежат конфиги. В lib - сам постгрес. В share скорее всего данные или документация. В обычных сборках для Linux данные хранятся в /var/...

В принципе, последние версии платформы умеют работать с непереработанным PostgreSQL, так что можете просто установить постгрес и определить локали.
10. osipovigor 09.03.16 17:49 Сейчас в теме
(9) /usr/lib/postgresql/bin/initdb -D /usr/lib/postgresql/data - ругается на /usr/local/pgsql/bin/initdb - нет такого файла или каталога, но по идее при установке он должен был создаться? или мне нужно его создать?

UPD
Путь немного другой оказался
/usr/lib/postgresql/9.4/bin/initdb
11. starik-2005 1386 09.03.16 17:56 Сейчас в теме
(10) osipovigor, в готовых дистирибах обычно скрипт уже разворачивает кластер и вручную этим заниматься не нужно.
12. osipovigor 10.03.16 10:44 Сейчас в теме
Очередной глупый вопрос... не могу понять как выставить пароль на юзера postgres, в документации пишут
sudo -u postgres psql template1 и потом ALTER USER postgres with encrypted password 'your_password' , но что-то у меня не получается :)
13. starik-2005 1386 10.03.16 10:48 Сейчас в теме
(12) osipovigor, дык вроде в статье все есть. pgsql -U posrgres - зайти в консольную утилит. Вообще там pg_createuser или както так - посмотрите.
14. osipovigor 10.03.16 11:04 Сейчас в теме
(13) т.к. для меня это всё в новинку, меня надо ткнуть в нужный пункт носом как нашкодившего кота... и по возможности разжевать, я понимаю что вроде бы всё должно быть очевидно... но видимо не для меня :) При вводе su postgres он сразу же пароль просит.
UPD
нашёл, под рутом passwd postgres
15. starik-2005 1386 10.03.16 12:32 Сейчас в теме
(14) osipovigor, если набрать sudo su - postgres, то пароль спросят ваш, а не postgres'а.
16. Necessitudo 01.04.16 21:10 Сейчас в теме
Примечание к добавлению локалей - если убунта английская, то русской локали под UTF8 может не быть. Добавляется так -
echo 'ru_RU.UTF-8 UTF-8' >> /var/lib/locales/supported.d/local;

Примечание к скачиванию патча - путь изменился, теперь нужно так -
wget http://downloads.v8.1c.ru/get/Info/AddCompPostgre/9_4_2_1_1C/Patch_SUBD_PostgreSQL.rar

mc просто так rar не откроет, поэтому делаем так -
sudo apt-get install unrar-free
17. starik-2005 1386 01.04.16 21:43 Сейчас в теме
(16) Necessitudo, у меня по этой ссылке сейчас не открылось - 403-я ошибка.
18. Necessitudo 01.04.16 22:49 Сейчас в теме
(17) Хм, а у меня открывается.
Вопрос -

Кстати, стоит особо отметить одну библиотеку, в которой нуждается 1С-овский постгрес - это icu. В серверной убунту 14.04 по умолчанию ставится версия 52 этой библиотеки, но люди говорят, что надо 48-ю, поэтому эти два пакета придется скачать отдельно и установить командой "dpkd -i имя_пакета". Нам нужны пакеты ibicu-dev и libicu48.

Так а как их установить? Я их отдельно скачал
http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu-dev_4.8.1.1-3ubuntu0.6_amd64.deb
http://security.ubuntu.com/ubuntu/pool/main/i/icu/libicu48_4.8.1.1-3ubuntu0.6_amd64.deb

parallels@ubuntu:~/Documents/postgres-install/postgresql-9.4-9.4.2$ sudo dpkg -i -R /home/parallels/Documents/postgres-install/postgresql-9.4-9.4.2
(Reading database ... 230244 files and directories currently installed.)
Preparing to unpack .../libicu48_4.8.1.1-3ubuntu0.6_amd64.deb ...
Unpacking libicu48 (4.8.1.1-3ubuntu0.6) over (4.8.1.1-3ubuntu0.6) ...
Preparing to unpack .../libicu-dev_4.8.1.1-3ubuntu0.6_amd64.deb ...
Unpacking libicu-dev (4.8.1.1-3ubuntu0.6) over (4.8.1.1-3ubuntu0.6) ...
Replaced by files in installed package icu-devtools (52.1-3ubuntu0.4) ...
Setting up libicu48 (4.8.1.1-3ubuntu0.6) ...
dpkg: dependency problems prevent configuration of libicu-dev:
icu-devtools (52.1-3ubuntu0.4) breaks libicu-dev (<< 52.1-3ubuntu0.4) and is installed.
Version of libicu-dev to be configured is 4.8.1.1-3ubuntu0.6.

dpkg: error processing package libicu-dev (--install):
dependency problems - leaving unconfigured
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Processing triggers for libc-bin (2.19-0ubuntu6.7) ...
Errors were encountered while processing:
libicu-dev

И что с этим дальше посоветуете сделать? У меня Убунта 14.04 - но Desktop.
19. starik-2005 1386 02.04.16 11:22 Сейчас в теме
(18) Necessitudo, да в принципе также: sudo dpkg -i libicu... Но у Вас там devtools от последней версии установлен, поэтому его предварительно надо снести, иначе проблема с зависимостями. Удалять пакеты можно командой sudo apt-get purge имя_пакета.

По поводу 403, то вот оно:
Прикрепленные файлы:
20. Necessitudo 02.04.16 15:58 Сейчас в теме
(19) Ну мы должны были догадаться - ссылка действительна только для тех кто залогинился на
https://users.v8.1c.ru/ Иначе бы можно было релизы любых типовых скачивать по прямой ссылке:)
21. starik-2005 1386 02.04.16 16:14 Сейчас в теме
(20) Necessitudo, раньше 1С выкладывала патчи и постгрес в открытом доступе. Хотя патчи те еще - что-то оптимизируют, что-то ломают )) Вот, видимо, и решили не позориться.
22. audion 02.04.16 17:53 Сейчас в теме
(21) Сергей, большое спасибо за статью, очень своевременная и полезная. Насчет патчей в открытом доступе - почему-то старый адрес дает 404. Может, поправят.
Ну, зато есть https://www.postgrespro.ru/products/1c_build где есть ссылки на репы для Ubuntu/Debian и CentoOS, где, естественно, есть и раздел src. Так что для экспериментов вполне можно сдуть сырцы оттуда и пересобрать PG под себя.
Например, на странице http://1c.postgrespro.ru/deb/pool/main/p/postgresql-9.4/ есть все уже собранные билды для разных deb-based дистрибутивов, равно как и пакеты для сборки. В частности, вот прямая ссылка на архив http://1c.postgrespro.ru/deb/pool/main/p/postgresql-9.4/postgresql-9.4_9.4.7-1.trusty-1C.debian.tar.gz для трасти. В архиве есть каталог patches, где собраны все эти патчи.

И вот еще добавлю: для понимания сущности того, что добавили эти патчи: http://www.silverbulleters.org/ne-obizhayte-linux-oida-ili-osobennosti-patcha-1s-dlya-postgresql/
23. starik-2005 1386 03.04.16 13:22 Сейчас в теме
(22) audion, да, мне автор вебинара про постгри скидывал данную ссылку (в конце Вашего сообщения). Сказал, что fastrun - это специальная опечатка, но верится с трудом, ибо правильно будет "fasttrun" ))) ... ну и прочие мелочи в статье скорее выдают "юношу с взором горящим", нежели профессионала, хотя, как я понял, автор и сам готов дать заветов массу )))

По поводу "постгри.про", то в самом первом комментарии авторы "про" уже отписались. Рад, что у них там и исходники 1С-освского постгри выложены, ибо сейчас 1С их из свободного доступа убрала.

Вообще, по поводу сборки, то имеет смысл собирать под текущую архитектуру процессора, используя ключи сборки -march=native -O3 -flto - это позволяет существенно (до 20-25%) повысить скорость стандартного теста pgbench (у меня с 8к до 10,8к увеличилась скорость при j10 и с10). Ну а по поводу настроек памяти, то, полагаю, Вам и так теперь известно, куда крутить параметры в конфиге постгри.
24. audion 04.04.16 15:06 Сейчас в теме
(23) насчет "fastrun" - Алексей уже говорил, это одна из его милых шуточек, пасхалок, что-ли. Как и Frag_I_ster, да простит меня многоуважаемый камрад Fragster за этот пример. У Алексея много такого, вспомните, им упоминалась версия 1С 8.3.7.1760 (хотя, естественно, речь о 8.3.6.1760). Типа защита от копирования. Я, лично, резко против такой защиты, это не комильфо, ну да дело хозяйственное. Статья, в общем-то, согласен, несколько сумбурная и лихая, но назначение трех патчей в ней худо-бедно изложено. Может, полезными будут и слайды Льва Ласкина https://pgconf.ru/media/2016/02/19/%D0%9B%D0%B0%D1%81%D0%BA%D0%B8%D0%BD%20%­D0%9B%D0%B5%D0%B2.pdf

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

Насчет ключей сборки - спасибо, очень полезно. Я сейчас вот с zfs экспериментирую, пока что данные противоречивые, но как только что-то интересное выплывет, обещаю поделиться. И кстати, встретил рекомендацию, что если баз много, очень полезно увеличивать кол-во autovacuum_max_workers до кол-ва, когда один процесс будет в запасе, и настройки autovacuum делать весьма агрессивными, но при этом каждую минуту запускать из крона скрипт, который устанавливает процессам autovacuum пониженный приоритет. Думаю, от раздувания баз и постоянно работающего вакуума это действительно помогает.
25. starik-2005 1386 05.04.16 10:23 Сейчас в теме
(24) audion, я думаю, что все это может потянуть на отдельную статью. Хотелось бы написать ее в соавторстве с товарищами, которые пилят постгри.про. Если у них найдется желание и время - я только за. Можно было бы опустить детали по установке сервера и сосредоточиться на установке именно самого постгри.
26. Alik_1c 08.04.16 13:09 Сейчас в теме
Ваша статья очень содержательна но ссылки не работают. Исправьте пожалуйста.
27. starik-2005 1386 09.04.16 11:20 Сейчас в теме
(26) Alik_1c, да, ссылки перестали работать. Статью я скорее всего напишу новую, ибо многое поменялось с тех совсем недалеких пор: 1С зачем-то закрыла часть сайта, на которой располагались постгри с исходниками. Исходники появились на сайте постгрес.про. Полагаю, что-то могло поменяться и в сборке - надо будет еще раз все проделать и описать. Думаю ближе к майским.
28. ikekoval 82 14.12.16 00:25 Сейчас в теме
При попытке через интерфейс выбрать "Получить образ диска Дополнений гостевой ОС" получал ошибку с расшифровкой Could not mount the media/drive '/usr/share/virtualbox/VBoxGuestAdditions.iso' (VERR_PDM_MEDIA_LOCKED).
Вылечилось sudo apt-get install virtualbox-guest-additions-iso
29. user848206 22.10.17 20:18 Сейчас в теме
Лучшая статья что нашел.
Дополню.
После установки при создании базы ругалось на
syntax error at or near "SECOND"
if arg_mode = \'SECOND\' then
помогло изменение в конфиге этих параметров (после создания базы вернуть как было)
backslash_quote = on
escape_string_warning = off
standart_conforming_strings = off

потом ругалось на
"$libdir/fasttrun": No such file or directory
оказалось компилировать надо не make install, а make install-world
Оставьте свое сообщение

Вакансии

Бизнес-аналитик 1С
Санкт-Петербург
зарплата от 80 000 руб. до 100 000 руб.
Полный день

Руководитель проектов по внедрению 1С документооборота
Санкт-Петербург
зарплата от 100 000 руб. до 130 000 руб.
Полный день

Руководитель по сопровождению и внедрению 1С
Санкт-Петербург
зарплата от 100 000 руб. до 120 000 руб.
Полный день

Программист 1С
Санкт-Петербург
Полный день

Ведущий специалист 1С
Москва
Полный день