Записки Окуневського

пʼятниця, 29 квітня 2011 р.

Невідома помилка.: this._getValue().isEqual is not a function

Невідома помилка.: this._getValue().isEqual is not a function   
Виникає при виклику функції із параметром Элемент.ТекстРедактирования
Не виникає на тонкому клієнті
Причина: використання  Элемент.ТекстРедактирования. Тим не менше, в дебагері значення ТекстРедактирования - звичайна строка, і нічого не вказує на можливість помилки
Рішення: не використовувати, посилатися через елемент табличної частини
Приклад:
Неправильно:
Физлицо=ИнтерфейсКС.ФизлицоПоИНН(Элемент.ТекстРедактирования);
Правильно:
Физлицо=ИнтерфейсКС.ФизлицоПоИНН(Элементы.Поручители.ТекущиеДанные.ИНН);



 

середа, 20 квітня 2011 р.

1C 8.2 Web, Mozilla Firefox

При роботі в веб-браузері Mozilla Firefox виникають помилки:
Невідома помилка: d3q is undefined
Одразу після неї:
Невідома помилка: WebUI is not defined
Ці помилки не виникають при використанні тонкого клієнта, і НЕ виникають при використанні Microsoft Internet Explorer

Причина: спроба  зняти видимість елементу форми, що містить табличний документ. Спроба зняти видимість відбувається при після відкриття форми, при позиціонуванні на строці дерева значень, в процедурі ПриАктивизациистроки. Однак я думаю, помилка через спробу зробити невидимим елемент, який ще не відображено.

Вирішення: Елемент табличної частини зроблено невидимим за замовчуванням.

понеділок, 8 березня 2010 р.

Установка та запуск 1С:Предприятие + PostgreSQL на Linux (Centos 5.4)

Трохи розібрався. Починаємо спочатку.
 

Тут ми припускаємо,що нам вдалося поставити і настроїти Centos, ми маємо з'єднання з Інтернетом і вміємо запустити термінал. Безумовно, в першу чергу вирубаємо firewall та SELinux - безпека нас ... зараз не цікавить. Також можна організувати доступ до терміналу з Віндів, застосовуючи, наприклад, putty, і навіть достукатися до робочого столу gnome, настроївши vncserver.

Джерела і альтернативи
Цей матеріал зроблено на основі
http://life.screenshots.ru/the-code-inside/php-platform/linux-1c-setup/
http://wiki.etersoft.ru/PostgreSQL

Основні відмінності матеріалів: розгортання Postgres під український порядок сортування баз даних, застосування postgres@etersoft

Формуємо оточення
Почнемо з найнеобхідніших речей. Нам треба буде бігати по каталогах, і якщо у нас немає бажання постійно писати щось типу cd /home/user1/disrib/1c/postgre щоразу треба чи не треба, користуємося файловим менеджером Midnight Commander (mc).

Для того, щоби його встановити , використовуємо інсталятор yum. Це така хороша штука, котра сама знайде і завантажить те, що нам потрібно


# yum install mc
# mc
Тепер можемо бігати по файлах. Початківцю також варто враховувати, що Linux є чутливим до регістру, тому, коли сказано писати в команді -D, то мається на увазі саме -D, а не -d. Так само чутливі назви директорій та файлів.
Модифікований слоник
1С для роботи використовує модифіковану СУБД PostgreSQL. Отримати цю штуку можна таким чином
  • з сайту 1С, знадобиться пароль юзера 1С. Напевне, якщо будете ставити останню версію, то не матимете проблем. Тим не менше, в мене туди доступу немає, а знайдена версія postgresql-8.3.3-2.1C.i386 в результаті не могла створити базу, причому я вичитав що це нормально мовляв, кривий реліз потіпо...
  • зібрати руками з вихідного коду, наклавши патчі для 1С, котрі лежать на тому ж таки сайті 1С, але уже без паролю. Якщо для вас не становить проблемою всякі там make, patch і таке інше, можете пробувати
  • скачати готовий варіант з сайту etersoft.ru. Там окопалися спеціалісти з генної модифікації слонів, і під ці потреби їхній слон годится також. Postgresql беремо звідси. Цей варіант і розглянемо
Встановлення PostgreSQL

Перед встановленням
міняємо настройки у файлі в /etc/sysctl.conf:

kernel.shmall=134217728
kernel.shmmax=134217728
та активуємо їх командою sysctl -p
За допомогою mc переміщаємося в папку, де збережено postgres@etersoft rpm файли. Їх там три штука. Виконуємо установку командою

# rpm -ihv postgre*
Поставився сам postgresql. Його папка - /var/lib/pgsql Створився юзер postgres. Саме від імені цього юзера в подальшому буде запускатися процес сервера. І саме від цього юзера необхідно виконувати всі дії із самим сервером. Тому, для початку, встановимо власником папки /var/lib/pgsql користувача postgres

# chown -R postgres /var/lib/pgsql
Увага! не слід дотримуватися рекомендацій etersoft і виконувати запуск бази даних командою /etc/init.d/postgresql start база даних буде ініційована з установками для російської мови
Ініціалізуємо базу даних від імені користувача postgres з установками сортування бази даних для української мови, запускаємо сервер, ставимо його в автозагрузку, та міняємо пароль користувача postgres.
Увага! Міняємо пароль обов'язково, не сподівайтеся що ніхто нічого не помітить!

# su - postgres -c "initdb --locale=uk_UA.utf8 /var/lib/pgsql/data/"
# /sbin/service postgresql start
# chkconfig postgresql on
# psql -U postgres -d template1 -c "ALTER USER postgres PASSWORD 'new_pass'"
На цьому етапі настройка сервера баз даних postgresql закінчена. Можемо перевірити функціональність, створивши базу даних з використанням інструменту управління серверами 1С:Предприятие, запущеного на Windows, але з використанням серверу postgres на Linux.

Встановлення серверу 1C:Enterprise

За допомогою mc переміщаємося в папку, де збережено 1С rpm файли.Я застосовую версію 8.1.15-14 серверу 1С. Проводимо установку командою

# rpm -ihv 1С*

Створено користувача usr1cv81, від його імені буде запускатися сервер 1С. Під цим же іменем до сервера будуть під'єднуватися користувачі. Відповідно, необхідно надати цьому користувачу права власника на директорію сервера 1С. Потім слід поставити сервер 1с в автозавантаження та запустити його


# chown -R usr1cv81 /opt/1C/
# chkconfig srv1cv81 on
# /sbin/service srv1cv81 start

Увага! В одному з мануалів дається порада після установки сервера 1С здійснити такі команди:

/etc/rc.d/init.d/srv1cv81 stop
/opt/1C/v8.1/x86_64/ragent -daemon
/etc/rc.d/init.d/srv1cv81 restart

Не зрозуміло, для чого це потрібно, і в мене після виконання другої команди сервер не стартився. Можливо, я не розумію змісту команди **** -daemon, а можливо, слід таки утриматися від виконання цих команд.

Робота з оснащенням 1С для керування сервером. Проблема hosts

В даний момент ми отримали робочу систему 1С+PostgreSQL. Ніби можна радісно запускати 1С і створювати там бази даних. На ділі висипається широка категорія різноманітних глюків. Всі вони пов'язані із тим, що клієнтська 1С не може працювати із цим сервером тільки за ІР, вона працює тільки за іменем сервера. Тобто, ми не можемо створити кластер серверів, вказавши тільки ІР, наприклад, 192.168.1.150 (це ІР сервера де встановлено 1С+PostgreSQL). Система працює тільки за іменем. Один з мануалів рекомендує активувати службу Samba і створити спільний ресурс. У мене це не спрацювало.
Як альтернативу, можна спробувати прописати сервер напряму. Для цього на машині-клієнті під Windows слід пов'язати ім'я серверу. За замовчуванням, після установки Centos надає серверу ім'я localhost.localdomain. Редагуємо файл %SYSTEMROOT%\system32\drivers\etc\hosts, вносимо туди строку: 192.168.1.150 localhost.localdomain Зрозуміло, що під %SYSTEMROOT% мається на увазі місце встановлення Windows, котре в 99% випадків являється "c:\windows". Після цього можна приступати до роботи із сервером, створення баз даних.

!Увага Саме на цьому етапі на голову може впасти багато шишок. Те, що мій сервер називається localhost.localdomain та його ІР 192.168.1.150 справедливо тільки для мене, у Вас можуть бути інші імена та адреси. Пригадую, що довго довбався, написавши в hosts 192.168.1.150 freedom, як радили в одному з каментів. Нічого мені той freedom не допоміг.

!Увага Цей метод годится тільки для "попробувати". У промисловій експлуатації буде не до того, щоби прописувати hosts на кожній клієнтській машині. В мене вирішення поки немає, шукайте виходи, і якщо знайдете, відкоментіть мені.

!Примітка Створюючи базу даних, як ім'я серверу баз даних можемо застосовувати localhost, тому що в даному випадку це інструкція для серверу 1С де шукати сервер баз даних. користувач серверу баз даних - postgres, пароль той, який ми встановили при зміні паролю.

На майбутнє

Не потрібно забувати про наступне
  • наш сервер незахищений, брендмауер та SElinux відключений. Якщо їх включити, то відповідно, слід дозволити роботу певних портів. Я догадуюсь, яких саме, але зараз мені влом все це перевіряти. Перевірю - напишу;
  • ми не будемо прописувати hosts на кожній клієнтській машині. Треба шукати вирішення;
  • є ціла проблема із тим щоби настроїти postgres на максимальну для Вашого заліза продуктивність. Це все питання окремого дослідження;
  • процес установки можна полегшити, якщо написати скріпт, котрий сам виконає всі оті команди. На практиці, він повинен запитати місцезнаходження дистрибутивів, і виконати процес установки самостійно. Мені кажуть про Perl. Маючи час і бажання...

Успіхів!

субота, 6 березня 2010 р.

Linux

Я вже досить давно маю справу з компами, починаючи року так з 1995 напевне. Тим не менше тільки один раз я мав справу Linux, році в 1999, бачив його день чи два та ніколи особливо не займався.

А зараз прийшлося. Та навіть не те щоби прийшлося, але постійна рутинна робота із знайомими речами набридає.

Основною моєю сферою діяльності є 1С:Підприємство, я розробляв або підтримував різноманітні конфігурації починаючи з того з 1997 року. Спочатку це була Бухгалтерія 6, потім ьільш просунута 7.7, останні роки я працюю на платформі 8. Так от, платформа 8 все більше підтримує роботу на Linux, точніше сказати, підтримує роботу серверної частини на linux та може використовувати СУБД, що працюють на Linux, наприклад, PostgreSQL чи IBM DB2. Відповідно, моє бажання ознайомитися із Linux отримало практичну мотивацію.

До слова - я страшенно лінива людина, і ніколи не стану гризти якийсь-там граніт науки, якщо не бачу йому практичного застосування. Так було і з 1С 8 - я почав з нею знайомитися тільки після того, як отримав практичне замовлення на розробку в цьому середовищі.

Звертаю увагу на те, що я ніколи з тим справи не мав, моя логіка та мислення зводиться до віндового даблклікерства. Філософія та концепція системи мені не знайома. Так що почнемо.

Зараз не потрібно володіти якимись мегаособливими знаннями для того, щоби посавити сам Linux. Скачав собі ІСОшку, накатав болванку і читай, аж поки не поставиться. я ставив CentOS/ Вдома, на старій тачці, поставилося все разом із мережухою. На роботі ж мережуха вперто не ставилася, на сайті виробника знаходилися якісь незрозумілі архіви з купою папочок і файликів внутрях, це все треба було якось там make, чи make install, я це все неподужав, і довго юзав Гугля для того, щоби знайти РПМ драйвера. Знайшов десь на задвірках, поставив, запрацювало. Ну, не скажеш що це прямо аж краще сексу, але задоволення, звичайно, ще те. Далі я розбирався з віддаленим доступом до графічної оболонки, настроїв VNC, теж довго там парився з портами, чи що. Люди що пишуть мануали для Лінукса в Інтернетах серед іншог, очевидно вважають, що описувати коли і як перезапустити процес не потрібно - я це мав знати. Тим не менше, все вийшло.

Поки роблю перерву і вертаюся до сексу далі

Про коня та краплю нікотину

Вчора на перекурі одна дівчина сказанула банальну та заїзжену фразу про те, що "крапля нікотину вбиває коня". Ніби все як завжди, але тут мені прийшло до голови, що звичайно саме тим і займаються люди, котрі виходять на роботі на перекур. А саме - вони вбивають в собі коня. Навіть слоган - "закури "мальборо", убий в собі коня". Так воно й виходить - людина цілий як кінь коптить над своїм компом, а на перекурі цього коня в собі вбиває.

Окремо для мене цікаві причини такого способу мислення, а саме: чого раніше мені не приходило в голову нічого подібного, хоча фразу чув неодноразово? Думаю, це вплив Віктора Олеговича Пєлєвіна, котрого в критичних дозах я читаю та слухаю останнім часом.

Коли я розповів про це Ольці, їй це сподобалося, і вона сказала мені це записати. Щоби не забути. Чим, я власне тут і займаюся.

Прихильники