Включение отладки на серверной стороне в 1С

По умолчанию, при использовании клиент-серверного режима работы 1С-предприятия никакие серверные функции и процедуры не будут поддаваться пошаговой отладке. Система будет выполнять их «на сервере 1С 8.3″, такие процедуры не видны для клиентской машины. Для включения режима отладки 1С в режиме клиент-сервер достаточно последовать простым инструкциям для каждой версии 1С: Отладка на сервере для платформы 1С 8.1 Остановить службу 1C Enterprise Server Agent. Запустить редактор системного реестра. Чтобы открыть редактор реестра, необходимо нажать Windows + R (или Пуск-Выполнить) и ввести в командную строку regedit. Найти ветку реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent]. Скорректировать атрибут «ImagePath»= , добавив «-debug». Запустить службу 1C Enterprise Server Agent. Пример:До включения:«C:\Program Files\1cv81\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv81\server»После включения отладки:«C:\Program Files\1cv81\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d «C:\Program Files\1cv81\server» Если не работает отладка в 1С 8.2 и 8.3 Остановить службу 1C:Enterprise 8.2 Server Agent. Запустить редактор системного реестра. Чтобы открыть редактор реестра, необходимо нажать Windows + R (или Пуск-Выполнить) и ввести в командную строку regedit. Найти ветку реестра [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\1C:Enterprise 8.2 Server Agent\]. Находим свойство «ImagePath»= , добавляем в строку «-debug». Записываем и запускаем службу. Пример:До включения:«»C:\Program Files (x86)\1cv82\8.2.18.109\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files (x86)\1cv82\srvinfo»»После включения отладки:«»C:\Program Files (x86)\1cv82\8.2.18.109\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files (x86)\1cv82\srvinfo» -debug» Источник: https://programmist1s.ru/vklyuchenie-otladki-na-servere-1s/

Read more

Удаление огромного количества файлов в Linux без завешивания сервера

Удаление большого количества файлов

Периодически, каждый администратор сталкивается с проблемой удаления огромного количества мелких файлов. Такие файлы могут генерироваться веб-серверами при создании сессий или другими сервисами. Дело в том, что когда удаляешь много файлов, дисковая система очень сильно загружается. При удалении мелких файлов, они удаляются быстро и происходит быстро переход на следующий файл. Как результат, сервисы операционной системы могут не успевать получать свое время – все время дисковой системы будет выделено на удаление бесконечного списка файлов ))). В интернет много различных решений удаления файлов. Большинство из которых “вешает сервер”. Для того, чтоб Ваши службы оставались работающими Вы можете воспользоваться perl-скриптом размером в 1 строчку ))). perl -e ‘$dir=”/mnt/k2bigdata/lib/php/sessions_old/”;opendir(D,$dir)||die(“Err\n”);while($f=readdir(D)){print $dir.$f.”\n”;unlink($dir.$f);select(undef, undef, undef, 0.1);}’   В скрипте я выделил жирным то, что Вам нужно поменять. /mnt/k2bigdata/_old/sessions2_old/ – это путь откуда удаляются файлы. 0.1 – это время в секундах, которое ожидает скрипт после удаления каждого файла. В данном случае, 0,1 = 100 миллисекунд или 0,1 секунды. Выставляется эта пауза экспериментальным путем. Запускаете скрипт в терминале, если службы продолжают нормально работать – можете понижать время, если нет, тогда прерываете выполнение скрипта и выставляете паузу побольше. Расчет скорости удаления файлов Выставляя паузу, расчитывайте за сколько Вы удалите файлы, чтоб их не удалять “всю жизнь” ))). Так, например, если пауза 0,1, то Вы удалите 10 файлов в секунду. 10*60*60*24=864 000 файлов в сутки. Таким образом, если у Вас несколько миллионов файлов, то Вы с такой скоростью удалите их за несколько суток.  Не заметно для пользователей. Если же Вам нужно удалить больше файлов, то возможно Вам нужно повысить скорость удаления. А […]

Read more

Копирование всех фотографий альбомного формата из одной папки в другую (Linux, Imagemagick)

Возникла необходимость перенести все фотографии альбомного формата из одной папки в другую, при этом, не копируя фотографии других форматов. В ручную, с многими тысячами фотографий сделать такое долго, начал искать путь автоматизации. Гугл не дал ответ на данную задачу, поэтому пришлось писать решение самому. У меня операционная система Linux Mint. Поэтому, сделал решение с помощью командного интерпретатора Bash с использованием библиотеки Imagemagick. Такое решение работает в Linux, но, как я писал ранее, можно сделать и в Windows, перенеся команды Linux в Windows вместе с библиотекой Imagemagick. Получившийся скрипт: # Перемещает фотографии с альбомной ориентацией #!/bin/bash export src=”/photo/photo_2020″ export dest=”/photo/album_2020″ echo “src=$src” echo “dest=$dest” for file in `find “$src” -type f -name “*.jpg”` do width=$(identify -ping -format “%w” “$file”) height=$(identify -ping -format “%h” “$file”) orient=$(identify -format ‘%[EXIF:Orientation]’ “$file”) echo “file=$file”; # Orientation: # Undefined – 0 # Undefined – [When no metadata] # TopLeft – 1 # TopRight – 2 # BottomRight – 3 # BottomLeft – 4 # LeftTop – 5 # RightTop – 6 # RightBottom – 7 # LeftBottom – 8 if (((orient==1))&&((width > height)))||(((orient==6))&&((height > width))) ; then echo “Yes! h=$height; w=$width”; echo “Orient=$orient”; mv $file $dest else echo “NO. $height; w=$width”; echo “Orient=$orient”; fi done Src – каталог, откуда копируем. Dest – каталог, куда копируем. Пробегаемся по всем jpg-файлам. Переносим только файлы альбомного размера. Автор: Рудюк С.А.  

Read more

Кросс-запросы между базами данных и серверами в MsSQL

В MsSQL есть прекрасная возможность выполнять кросс-запросы между серверами. Пример SQL, работающего между серверами: SELECT DOC_ID, DOC_NO, FIRM_ID, STRQTY FROM [192.168.99.68].[WMS_FS].[dbo].[DOC_TITLES_FRM] T where (SYNC_STATE_ID=0) and (DOC_TYPE_ID=75305) and (DOC_DATE>=DATEADD(month,-1,GETDATE())) and convert(nvarchar(12),DOC_ID) NOT IN (Select DOC_CODE from [dbo].[_get_1C_DOC_ORDERS](DATEADD(month,-1,GETDATE()),GETDATE()) ) ORDER by FIRM_ID Для того, чтоб заработала связь между серверами, необходимо разрешить обращение к другому серверу на сервере-источнике. Вот как это делается: EXEC sp_addlinkedserver @server = N’192.168.99.68′, @srvproduct = N”, @provider = N’SQLNCLI’, @datasrc = N’192.168.99.68′; GO Если нужно удалить связь: EXEC sp_dropserver @server = N’192.168.99.68′GO Внимание: Запросы будут бегать между серверами, если логин и пароль пользователя одинаковы на этих серверах.  

Read more

Взлом 1С7.7. Почему нужно переходить на новые технологии

Программный продукт 1С получил на наших просторах большую популярность. Многие компании, начав использовать 1С7.7 продолжают с ним работать, хоть давно есть новые версии продукта 1С: Предприятия. 1С7.7 перестала обновляться в 1999 году. Т.е. 21 год назад данный программный продукт не изменялся. В те времена мало задумывались о безопасности систем. Как результат – полное отсутствие механизмов безопасности в данном программном продукте. Многие компании, которые используют 1С7.7, используют его файловый вариант на базе устаревших на данный момент dbf-файлов. Даже если используется 1С7.7 с MsSQL (что редко бывает), этот вариант взламывается в 2 счета с помощью перехвата пароля и логина администратора базы данных, который пересылается при подключении к базе данных клиент-серверными программами. В данной статье, не будем рассматривать вопрос взлома 1С7.7 на базе MsSQL, т.к. хоть этот взлом прост, тем не менее, требует некоторых специальных знаний от взломщика. Взлом же 1С7.7 на базе dbf-файлов может провести даже не квалифицированный пользователь компьютера (не то, что “продвинутый пользователь”). Взлом 1С7.7 на базе DBF-файлов Имеем базу данных 1С7.7. Запускаем 1С7.7. В открывшемся окне смотрим путь к базе данных: При входе в базу данных запрашивается пароль и имя пользователя. Создается впечатление защищенности программы. Идем в каталог, который посмотрели при входе в программу. Видим ВСЮ БАЗУ ДАННЫХ. Нам никто не помешает скопировать всю базу данных, сделать в ней изменения или удалить её. При этом, сложно будет обнаружить, кто это сделал. И админ даже не увидит, что базу данных “увели”. Если хочется получить административный доступ, переименовываем каталог usrdef, входим под админом – не запросится ВООБЩЕ пароль и логин. Сделав […]

Read more

Введение в интерфейс Мemcached для MySQL InnoDB

В предыдущих статьях серии: Простое разделение чтения и записи с помощью MySQLnd в PHP Продвинутое разделение чтения и записи с помощью MySQLnd в PHP: часть 1, часть 2 В MySQL 5.6 появилось memcache-совместимое хранилище ключ-значение на базе движка Innodb. InnoDB Memcache Daemon предоставляет вам стабильность innodb для данных вида ключ-значение, доступ к которым может быть организован через более быстрый и оптимизированный протокол memcached. При использовании данного протокола будут пропущены: парсинг запроса, его оптимизация и остальные части обработки, которые не требуются. С помощью mysqlnd_memcache, вы можете прозрачно направлять ваши запросы к такому memcache-совместимому интерфейсу. Установка Стандартные пакеты MySQL 5.6, которые поставляются Ubuntu (Trusty), не включают в себя плагин memcache. Для использования этого плагина вам потребуется установить его из официальных apt-репозиториев MySQL-я (для Debian 7.x Wheezy, Ubuntu 12.04 Precise и Ubuntu 14.04 Trusty). После того как вы установили MySQL 5.6 (или выше), необходимо войти в MySQL под суперпользователем и выполнить следующее: SOURCE /usr/share/mysql/innodb_memcached_config.sql; INSTALL PLUGIN daemon_memcached SONAME “libmemcached.so”; Скрипт innodb_memcached_config.sql делает несколько вещей, и первое, что он делает – это создаёт базу данных innodb_memcache, которая содержит три таблицы: cache_policies: в этой таблице хранятся правила, как выполняются команды GET, SET, DELETE и FLUSH. containers: эта таблица содержит список ваших таблиц, к которым возможен доступ с помощью memcache config_options — в этой таблице хранятся настройки memcache, а именно — разделитель многоколоночных значений – separator (по умолчанию вертикальная черта “|”) и разделитель обращения к таблицам table_map_delimiter (по умолчанию точка “.”) Второе, что выполняет скрипт – загружает сам плагин и запускает memcache демона внутри MySQL. Теперь всё […]

Read more

Включение Slow Query Log без перезапуска MySQL

Порой при работе приложений, работающих с бд, возникает падение производительности, в качестве одного из вариантов может быть убогий неоптимизированый запрос, выполняемый дольше чем планировалось. Для отслеживания данных запросов придумали Slow Query Log, состоит журнал из SQL выражений, времени начала запроса, общего времени выполнения, времени блокировки и прочей полезной информации.Включать данный лог можно на ходу, не перезапуская сервер, единственное что необходимо – доступ на запись для процесса от имени которого будет создан лог-файл. Логинимся… mysql -u root -p Устанавливаем месторасположение лог-файла mysql> SET GLOBAL slow_query_log_file = ‘/var/log/mysql/slow.log’; Определям что считать медленным запросом, по-умлочанию 10 секунд, с версии 5.1.21 можно выставить 0, что позволяет собирать все запросы mysql> SET GLOBAL long_query_time = 5; Ну и осталось включить mysql> SET GLOBAL slow_query_log = ‘ON’; Еще можно включить логирование запросов неимеющих индексов mysql> SET GLOBAL log_queries_not_using_indexes = ‘ON’; Данные значения будут сохранены до следующей перезагрузки mysql, если необходимо чтобы оно сохрянялось следует добавить в my.cnf [mysqld] … slow_query_log = ON slow_query_log = /var/log/mysql/slow.log long_query_time = 5 log_queries_not_using_indexes = ON Для того что бы узнать текущие значения: mysql> SHOW GLOBAL VARIABLES LIKE ‘slow\_%’; +————————————+————————-+ | Variable_name | Value | +————————————+————————-+ | slow_launch_time | 2 | | slow_query_log | ON | | slow_query_log_file | /var/log/mysql/slow.log | | slow_query_log_timestamp_always | OFF | | slow_query_log_timestamp_precision | second | | slow_query_log_use_global_control | | +————————————+————————-+ mysql> SHOW GLOBAL VARIABLES LIKE ‘long_query_time’; +—————–+———–+ | Variable_name | Value | +—————–+———–+ | long_query_time | 5.000000 | +—————–+———–+ mysql> SHOW GLOBAL VARIABLES LIKE ‘log_queries_not_using_indexes’; +——————————-+——-+ | Variable_name | Value | +——————————-+——-+ | log_queries_not_using_indexes | […]

Read more

Как добавить “резиновый” SplashScreen в XE7

Как известно, в XE7 упростили возможность добавления заставки (SplashScreen) для нашего приложения. В этой заметке я расскажу как добавлять «статичную» и «резиновую» заставки. Данная заметка будет интересна тем, кто не умеет читать по-английски или просто не читает справку по студии. По большей части, эта заметка является вольным переводом справочного материала, с некоторыми добавлениями от меня. Update (14.10.14): Добавил ссылку на архив с примером.Update (14.10.14): Добавил дополнение к правилу №3 Update (16.10.14) Добавил информацию о “резиновой” заставке на весь экран (FullScreen) Общие правила для двух типов заставок. Картинки добавлять необходимо через меню «Project > Options > Application» вкладка «Artwork». Перед этим, не забудьте выбрать платформу. Добавляемые картинки должны быть строго определённого разрешения. Это «426×320», «470×320», «640×480», «960×720». Картинки должны быть в формате «png» Далее пункты разделяются….   Статичная заставка. Мы можем задать режим отображения картинки (disabled, clamp, repeat, mirror), подробности в Android API Можем указать «Splash gravity», как отображать картинку, если её размер меньше чем размер экрана.   Резиновая заставка. Данный метод очень хорошо подходит в ситуации, когда вы хотите выводить логотип компании на фоне, цвет которого отличается от чёрного и без растягивания самого логотипа.   Чтобы сделать заставку, при которой ваш логотип на картинке будет всегда статичным, а всё остальное будет растягиваться необходимо, создать 9-patch изображения. Данные изображения содержат служебную информацию в четырёх дополнительных пикселях.   Изображения содержат информацию о блоках отображения картинки. Это блок масштабирования и блок контента. Блок масштабирования – определяет области изображения, которые будут растягиваться. Блок контента – определяет область изображения, где будет отображаться контент (в нашем случае […]

Read more

Настройка EXIM4 для отправки почтовых сообщений в Linux

Что это такое? Exim4 это агент пересылки почтовых сообщений, фактически является простым SMTP-сервером. В нашей статье мы рассмотрим пересылку через SMTP-сервера таких крупных компаний как Google и Yandex. Стоит отметить, что в нашей инструкции предполагается только отправка сообщений, например это удобно для отчетности о работе приложений или событиях. Установка и настройка Прежде всего обновите локальный список пакетов с помощью вашего пакетного менеджера, например на Ubuntu и Debian это можно сделать с помощью apt: apt-get update Для установки выполните команду: apt-get install exim4 Примечание: если вам необходимо использовать ACL и другие расширенные функции, то установите exim4-daemon-heavy: apt-get install exim4-daemon-heavy Чтобы перейти к настройке, выполните команду: dpkg-reconfigure exim4-config Нажмите Ok для начала настройки. На следующем шаге выберите “mail sent by smarthost; received via SMTP or fetchmail” и нажмите Ok. Примечание: internet site; mail is sent and received directly using SMTP – этот вариант подходит для автономной системы с полным доступом к Интернету. Демон Exim принимает сообщения на локальные домены и доставляет их. Исходящая почта будет доставлена непосредственно на почтовые серверы домена получателя. mail sent by smarthost; received via SMTP or fetchmail – этот вариант подходит для автономной системы с ограниченным доступом к Интернету. Демон Exim принимает сообщения на локальные домены и доставляет их. Исходящая почта будет доставлена на Smart host, а уже потом на почтовые серверы домена получателя. mail sent by smarthost; no local mail – этот вариант подходит для клиентской системы, все электронные письма отправляются на Smart host без каких-либо локальных доменов. local delivery only; not on a network – этот […]

Read more

Партнерка К2

Рекламируйте интернет-магазин программной продукции https://corp2.net и зарабатывайте 5% от заказов клиентами сайта, которые перешли в течении месяца по Вашей ссылке. Наша продукция продаётся на самых топовых ресурсах Украины: Розетка, Hotline, F.ua, Prom, Zakupka, Allbiz, Allo и т.п. И если клиенты нашего сайта сделают заказ в течении месяца после того, как зашли по Вашей ссылке на наш сайт, то Вам начислится 5% стоимости сделанных и оплаченных клиентами заказов. Много ли 5% ? Заказы бывают от 5 тыс. грн до миллиона. Таким образом, на одном заказе Вы можете потенциально зарабатывать 250 – 50000 грн. Инструкция регистрации в партнерке Заходите на сайт: https://corp2.net Нажмите кнопку Регистрация. Вводите регистрационные данные. После этого, Вам на почту будет выслано подтверждение. Авторизируетесь на сайте https://corp2.net. Переходите в раздел Партнерская программа. Вы увидите информацию о текущем балансе, а так же о ссылку, которую Вы можете вставить на любой рекламируемой странице. По данной ссылке будет определяться, партнер. Добавив к любой странице сайта: ?promo_id=<ВашКод> вы получите Вашу персонифицированную ссылку рекламодателя. Публикуйте подобные ссылки и зарабатывайте вместе с нами!

Read more
1 2 3 4 5 36