В октябре 2009 года вышел в свет очередной релиз платформы 1С:Предприятия 8.2 под номером 8.2.9.356, а уже в ноябре планируется выход релиза номер 8.2.10. Столь уверенное развитие платформы естественно вызывает тягу к её изучению, а изучение, как правило, происходит параллельно с использованием уже проверенной версии. И так у нас возникла необходимость установки сервера предприятия 1С 8.2 на сервер с уже работающим сервером версии 8.1, без остановки последнего. В книге «1С:Предприятие 8.2. Клиент-серверный вариант. Руководство администратора» такая ситуация хоть и названа «достаточно редкой и специфичной», но допускается и рассматривается, как нормальная. Следуя рекомендациям книги и подсказкам всемирной сети, мы выполнили эту задачу и хотим поделиться своим опытом с вами в виде пошаговой инструкции.
В ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.2 Server Agent Параметр ImagePath меняем номера портов, добавляя смещение: "C:\Program Files\1cv82\8.2.9.356\bin\ragent.exe" -srvc -agent -regport 1641 -port 1640 -range 1660:1691 -d "C:\Program Files\1cv82\srvinfo"
У кластера 8.1 они по умолчанию такие HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 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\1cv82\8.2.9.356» и "C:\Program Files\1cv81» - каталоги установки 8.2 и 8.1 по-умолчанию. Если у вас они другие, то обязательно должно выполняться условие различных каталогов служебных файлов, используемых разными агентами, в нашем случае «C:\Program Files\1cv82\srvinfo» и "C:\Program Files\1cv81\server".
Очищаем папку C:\Program Files\1cv82\srvinfo, проверяем доступ на запись в неё для пользователя USR1CV82 (при установке 1С 8.2 автоматически создается папка «reg_1541» и файл описания кластера с портом 1541, а при создании пользователя для старта сервера вручную он не обязательно может обладать правами на запись в «Program Files». И первое и второе приводит к остановке сервиса сразу после старта со следующей ошибкой "The Агент сервера 1С:Предприятия 8.2 service on Local Computer started and then stopped. Some services stop automatically if they have no work to do, for example, the Performance Logs and Alerts service.").
Стартуем второй ragent. с user name USR1CV82. Первый для 8.1 должен быть уже запущен.
В консоли управления серверами:
Создаем сервер с именем компьютера и портом 1640
Создаем кластер с портом 1641 (если его нет)
Создаем Рабочий сервер с портом 1640 и диапазоном 1660:1691 (если его нет)
Создаем Рабочий процесс
При добавлении базы в окне запуска 1С при записи Кластера серверов нужно указывать порт Пример: Имя_Компьютера:1641
Если запуск сервера планируется не от локальной системной записи, то лучше выбрать (создать предлагаемого USR1CV82) пользователя при установке 1С.
Все.
Кузнецов Александр Виталиевич
Управление программных разработок
Ведущий специалист ЗАТ "Спец-інвест"
Пример ярлык для запуска: "C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"server-1C:1641\BASAZUP"
Программа rundll32.exe входит в стандартную поставку всех операционных систем семейства Windows и позволяет выполнять различные функции, описанные в библиотеках, драйверах или ActiveX-объектах, как будто они выполняются из программы. Также эта программа входит в состав новой операционной системы Windows Vista, поэтому обзор новой операционной системы, предназначенный для опытных пользователей, никак нельзя назвать законченным, если он не будет содержать описание команд rundll32.exe, доступных в Windows Vista.
Синтаксис использования программы rundll32.exe следующий: rundll32.exe «библиотека», «функция» «параметры». При этом очень важно понимать, что название функции, хранящейся в библиотеке, зависит от регистра, которым вы ее написали. То есть, например, функции MessageBox и messageBox, в понимании программы rundll32.exe, являются различными функциями, поэтому если в названии функции вы напишете вместо прописной буквы строчную, программа rundll32.exe выдаст ошибку. Название же самой программы rundll32.exe и название библиотеки можно указывать как строчными, так и прописными символами.
Пример:
Приведу список наиболее значимых команд (в котором найдете ОЧЕНЬ интересные команды, ну а как их использовать, думайте сами!):
* rundll32 shell32.dll,Control_RunDLL hotplug.dll - диалоговое окно Отключение или извлечение аппаратного устройства
* rundll32 diskcopy,DiskCopyRunDll - вызов диалога "Копирование диска".
* rundll32 keyboard,disable - отключение клавиатуры, действует до следующей перезагрузки.
* rundll32 mouse,disable - отключение мыши вплоть до перезагрузки.
* rundll32 krnl386.exe,exitkernel - выгрузить ядро системы, выход из Windows.
* rundll32 mshtml.dll,PrintHTML "HtmlFileNameAndPath" - распечатать документ HTML, где "HtmlFileNameAndPath" - путь к файлу и его имя.
* rundll32 мсprint2.dll,RUNDLL_PrintTestPage - распечатать тестовую страницу на принтере.
* rundll32 netplwiz.dll,AddNetPlaceRunDll - вызов мастера подключения нового сетевого ресурса "Добавление в сетевое окружение".
* rundll32 rnaui.dll,RnaWizard - вызов мастера "Удаленный доступ к сети".
* rundll32 rnaui.dll,RnaWizard /1 - вызов мастера "Удаленный доступ к сети" без отображения начального окна.
* rundll32 shell,ShellExecute - открыть Проводник (папка "Рабочий стол").
* rundll32 shell32,Control_RunDLL - открыть в Проводнике папку "Панель управления".
* rundll32 shell32,Control_RunDLL appwiz.cpl,,n - вызов диалогового окна "Установка и удаление программ", в котором будет открыта вкладка с номером "n" (от 1 до 3).
* rundll32 shell32,Control_RunDLL main.cpl @0 - открыть диалог "Свойства мыши".
* rundll32 shell32,Control_RunDLL main.cpl @1 - открыть диалог "Свойства клавиатуры".
* rundll32 shell32,Control_RunDLL main.cpl @2 - открыть папку "Принтеры".
* rundll32 SHELL32,SHHelpShortcuts_RunDLL PrintersFolder - открыть папку "Принтеры" (другой способ).
* rundll32 shell32,Control_RunDLL main.cpl @3 - открыть папку "Шрифты".
* rundll32 SHELL32,SHHelpShortcuts_RunDLL FontsFolder - открыть папку "Шрифты" (другой способ).
* rundll32 SHELL32,Control_RunDLL modem.cpl, add - открыть диалог "Свойства модема".
* rundll32 shell32,Control_RunDLL timedate.cpl - открыть диалог "Дата и время".
* rundll32 shell32,OpenAs_RunDLL - вызвать диалог "Открыть с помощью...".
* rundll32 shell32,ShellAboutA WINHOWTO.RU - информация о версии Windows.
* rundll32 shell32,SHExitWindowsEx 0 - закрыть все программы, перегрузить оболочку.
* rundll32 shell32, SHExitWindowsEx 1 - выключить ПК.
* rundll32 SHELL32, SHExitWindowsEx -1 - перегрузить оболочку Windows.
* rundll32 shell32, SHExitWindowsEx 2 - перегрузить ПК.
* rundll32 shell32,SHExitWindowsEx 4 - принудительно закрыть все программы.
* rundll32 shell32,SHExitWindowsEx 8 - выход из Windows и выключение ATX-совместимого ПК.
* rundll32 shell32,SHFormatDrive - вызов диалога форматирования диска А:.
* rundll32 SHELL32,SHHelpShortcuts_RunDLL AddPrinter - запуск "Мастера установки принтера".
* rundll32 shell32,SHHelpShortcuts_RunDLL Connect - запуск мастера подключения сетевого диска.
* rundll32 SHELL32,SHHelpShortcuts_RunDLL PrintTestPage - распечатать тестовую страницу.
* rundll32 sysdm.cpl,InstallDevice_Rundll - вызов мастера установки оборудования.
* rundll32 url.dll,FileProtocolHandler %1 - открыть веб-страницу, где %1 - URL сайта (включая http://).
* rundll32 url.dll,MailToProtocolHandler %1 - создать новое письмо, где %1 - e-mail адресата.
* rundll32 user,CASCADECHILDWINDOWS - расположить все окна каскадом.
* rundll32 user,TILECHILDWINDOWS - расположить все окна по экрану.
* rundll32 user,disableoemlayer - сбой системы (!) - выключить все функции ввода-вывода
(клавиатура, дисплей, мышь). В результате будет черный экран с курсором и ни на что не реагирующая система, однако Windows продолжает работать.
* rundll32 user,ExitWindowsExec - быстрая перезагрузка Windows.
* rundll32 user,RepaintScreen - выполнить команду "Обновить".
* rundll32 user,SetCaretBlinkTime n - задать частоту мигания курсора, соответствующую значению параметра n.
* rundll32 user,SetCursorPos - переместить курсор мыши в верхний левый угол экрана.
* rundll32 user,SetDoubleClickTime n - задать скорость двойного нажатия левой кнопки мыши (Double Click), соответствующую параметру n.
* rundll32 user,SwapMouseButton - поменять местами клавиши мыши (обратная смена невозможна).
* rundll32 user,WNetConnectDialog - вызов диалога "Подключение сетевого диска".
* rundll32 user,WNetDisconnectDialog - вызов диалога "Отключение сетевого диска".
* rundll32 AppWiz.Cpl,NewLinkHere %1 - запуск мастера создания нового ярлыка, где %1 - путь к исходному файлу.
* rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL Connect. Вызвать мастер подключения сетевых дисков.
* rundll32.exe shell32.dll, ShellAboutA. Вызвать диалог, отображающий версию операционной системы Windows. Также данный диалог можно отобразить, выполнив команду winver.exe.
* rundll32.exe IEAKENG.dll, BrowseForFileA. Отображает дерево файловой системы жесткого диска компьютера.
* rundll32.exe ndfapi.dll, NdfRunDllHelpTopic «html-страница». Вызвать диалог HELP AND SUPPORT на указанной странице. Например, в качестве html-страницы можно использовать вызов mshelp://Windows/?id=33307acf-0698-41ba-b014-ea0a2eb8d0a8.
* rundll32.exe shell32.dll, OpenAs_RunDLL "путь и имя файла". Вызвать диалог OPEN AS… для открытия данного файла.
* rundll32.exe shell32.dll, Control_RunDLL Cliconfg.dll. Отображает диалог SQL Server Client Network Utility.
* rundll32.exe shell32.dll, Control_RunDLL Hotplug.dll. Отображает диалог удаления съемного устройства.
* rundll32.exe admparse.dll, CheckDuplicateKeysA "путь и имя файла". Переписывает содержимое данного файла.
* rundll32.exe IEAKENG.dll, BToolbar_SaveA "путь к папке". Создает папку. Если данная папка уже существует, тогда все ее содержимое будет удалено.
* rundll32.exe appwiz.cpl, GetProgramsOnline. Запускает браузер Internet Explorer и загружает страницу http://g.msn.com/WMHFUSEN/101724.
* rundll32.exe shell32.dll, ShellExec_RunDLL "команда". Выполняет команду.
* rundll32.exe url.dll, FileProtocolHandler "каталог". Открыть папку. Если вы не укажете папки, тогда будет открыта папка вашего профиля.
* rundll32.exe WININET.dll, RunOnceUrlCache "путь к папке". Удаляет все файлы указанной папки, имеющие атрибут FILEATTRIBUTETAGINFORMATION.
* rundll32.exe xwizards.dll, ProcessXMLFile "путь и имя xml-файла". Выполнить xml-файл.
* rundll32.exe user32.dll, mouse_event. Выполнить нажатие правой клавиши мыши.
* rundll32.exe user32.dll, SetCursorPos. Установить курсор в правый нижний угол экрана.
* rundll32.exe dfshim.dll, KillService. Остановить работу службы фонового обновления dfsvc.exe
* rundll32.exe IERNONCE.dll, RunOnceExProcess. Выполняет команды, описанные в ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx (или в ветви корневого раздела HKCU).
Конечно метод дубовенький, расчитан тока на русскую версию, но можно и допеределать.
Не стал писать код определения пишущего сидирома и возможности записи (хотя на отсутствие диска или невозможность записать ОС сама укажет)...
Автор: smaharbA
Для решения некоторых задач, иногда требуется имееть возможность шифровать и дешифровывать, какие-то данные. Но при этом нет возможности использовать стороние внешнии компоненты.
Предлагаем пример реализации алгоритма шифрования RC4 на встроенном языке 1С.
Установка 1С 7.7 под Windows 7 :
Установщик 1С 7.7 является 16-битным приложением, а в Windows 7 отключена поддержка таких программ. Поэтому я взял другой установщик 1С, 32-битный(Ищите в интернет или спросите у Франчайзи). Запустил его "от имени администратора". Так же, как в Vista, являясь самым что ни на есть администратором, мне приходится тем не менее ещё раз подтверждать, что я администратор либо можно отключить UAC (он же User Account Control, он же контролем учетных записей пользователей). И установил SQL версию.
Если вы используете Файловую версию баз, то пропустите этот абзац, так это для SQL баз:
Теперь 1С:Предприятие 7 установлено под Windows 7. Но при попытки подключиться к SQL-базе пишет, что "Для доступа к базе данных требуется ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше.". Я нисколько не удивляюсь, увидев, что в системе используется драйвер версии 6.1.7100.0, что по моему мнению старше, чем 3.50.0303, ведь это хоть и 7, но всё ещё Windows.
Пробую скопировать нужные библиотеки (sqlsrv32.dll и sqlsrv32.rll) из Windows XP, но у Администратора нет прав на изменение папки System32.
Жму кнопку дополнительно, иду на закладку Владелец и назначаю себя владельцем этих файлов. После этого мне всё-таки разрешают выдать себе права на изменения.
И я, наконец, могу скопировать эти нечастные библиотеки.
Пробую подключиться, но меня опять не пускают, правда на этот раз сообщают о том, что "Порядок сортировки, установленный для базы данных, отличается от системного!"
Иду в папку BIN 1С-ки и создаю там файл OrdNoChk.prm.
И опять мне Windows7 рассказывает, что я не могу создать файл в этой папке, создаём этот файл где-нибудь у себя в "моих документах" и копирует его в BIN.
И... 1С работает под Windows 7, единственное "НО" отключена проверка порядка сортировки? Чем это грозит? Я ничего серьезного придумать не смог, кроме того, что отчеты могут выводиться не в алфовитном порядке, а при создании УРБД можно использовать только латиницу в кодах баз…
PS: Так же надо не забывать, чтобы загрузились внешние компоненты, первый запуск надо выполнить с отключенным Контролем учетных записей (User Account Control, UAC) или правой крысой - Запуск от имени Администратор.
Как отключить Контроль учетных записей (User Account Control, UAC)?
Перед тем как выполнить данные действия, войдите в систему с Администраторского аккаунта.
* Пуск »
* Наберите в строке поиска UAC »
* Откройте ссылку Изменение параметров контроля учетных записей (UAC) »
* Изменяя положение ползунка сделайте выбор необходимой степени защиты, руководствуясь описанием в правой части экрана (мы рекомендуем уровень «Уведомлять только при попытках программ внести изменения в компьютер»).
* Нажмите «OK» »
* Перезагрузите компьютер
Оптимальным решением является установка Bullzip PDF Printer . После установки в системе появляется виртуальный принтер, с помощью которого можно "печатать" в файл pdf из любого приложения. Программа бесплатная, работает в терминале и имеет поддержку русского языка.
После установки, можно печатать напрямую используя код:
Здесь функция ПолучитьПринтерПоУмолчанию() нужна для того чтобы вернуть печатной форме принтер по умолчанию, т.к. если напечатать без предварительного просмотра то печать пойдет на виртуальный PDF принтер BullzipPDFPrinter.
Перезагрузка сервера выполняется автоматически, если в течение некоторого времени (обычно 3 минут) к серверу 1С:Предприятия не подсоединен ни один пользователь. Если этого добиться затруднительно, то сервер можно перезагрузить принудительно при помощи утилиты Start/ Settings/ Control Panel/ Administrative Tools/ Component Services, на том компьютере, на котором установлен сервер 1С:Предприятия. Для этого в ней необходимо найти ветку Console Root/ Component Services/ Computers/ My Computer/ COM+ Applications/ 1CV8 и выполнить пункт Shut down ее локального меню.
Перезагрузка сервера может быть выполнена программно. Это можно сделать, например, при помощи следующего кода на встроенном языке 1С:Предприятия 8.0:
ВНИМАНИЕ! Если в момент перезагрузки серверного приложения 1CV8 к нему были подсоединены пользователи, то их работа завершится аварийно. При этом какие-то данные могут оказаться не сохраненными.
Функция возвращает список значений содержащий список баз установленных на данном компьютаре. В котором в качестве значения указывается путь до базы, а в представлении название базы, так как она отображается в окне выбора баз при запуске 1С. Если баз не обнаруженно то возвращает строку "Error"
При разработке отчетов или обработок рано или поздно приходится сталкиваться с необходимостью определения имени локального диска, сменного накопителя (флешки), сетевого диска. В данной статье представлены 3 способа получения списка дисков компьютера:
Примеры для 8-ой версии, для того чтобы заработало в 7-ой замените:
Установка:
1. Убедитесь, что на сервере установлена MS Windows NT Server и он является PDC; MS IE (не ниже 4.01) и протокол TCP/IP.
2. Запустить установку MS SQL Server 7.0-2000, выбрав следующие параметры:
* Install SQL Server 7.0-2000 Components
* Database Server – Standard Edition
* SQL Server authentication
* Оставить по умолчанию Login: System Account (sa)
Остальные пункты оставить по умолчанию.
3. Запустить установку MS SQL Service Pack 1, используя параметры по умолчанию, кроме указанных выше.
Перезагрузить сервер.
Настройка на сервере Enterprise Manager:
1. Убедиться, что SQL Server запускается автоматически при старте системы (Control PanelServices).
2. Запустить MS SQL ServerEnterprise Manager и сделать следующее:
* Databasesправой кнопкой мышиNew Database
* Задать Name: (например Cv77) не должно начинаться с цифры
* Установить GeneralInitial Size – 64 MB
* Установить Transaction LogInitial Size – 32 MB
* SERVER_NAMEправой кнопкой мышиEdit SQL Server Registration:Use SQL Server Log: sa, Pas: задать.
* SERVER_NAMEправой кнопкой мышиProperties
* GeneralAutostart SQL Server
* SecurityAuthenticationSQL Server and Windows NT
* SecurityStartup and run SQL Server in the following accountSystem Account (sa)
3. В Windows 2000 Server в свойствах сетевого подключения выбрать "служба доступа к файлам ...", в ее свойствах установить "макс. пропускная способность для сетевых приложений", а в свойствах "мой компьютер", закладка "дополнительно", параметры быстродействия "для служб ...", нажать "изменить" проверить объем файла подкачки: исходный размер = размер_операт._памяти х 1,5; максимальный размер = размер_операт._памяти х 2, также проверить объем свободного место на диске, где расположен файл подкачки.
Выключить сервер.
Установка на сервер 1С:Предприятие 7.7 для SQL:
1. Выключить сервер и установить ключ защиты на LPT порт.
2. Установить 1С:Предприятие для SQL.
3. Установить драйвер защиты, скопировать его в папку Startup (All Users) и запустить (он всегда должен быть запущен!).
4. Создать новую папку (например DbSQL).
5. Скопировать в DbSQL из существующего каталога базы данных или каталога типовой конфигурации (если создается новая база): каталоги пользователей (как правило совпадают с именами пользователей), каталог USERDEF.
6. Запустить Конфигуратор (в формате DBF), указав путь к существующей (DBF) базе или типовой конфигурации (если создается новая база).
7. В Конфигураторе: АдминистрированиеВыгрузить данные, в папку DbSQL, задав имя zip-файла (например Db.zip), закрыть Конфигуратор.
8. Запустить Конфигуратор в формате SQL, указав путь к новому каталогу DbSQL.
9. В Конфигураторе: АдминистрированиеПараметры базы данных, указать: Сервер: (имя сервера в сети), База Данных: (созданная в Enterprise ManagerDatabases) Cv77, Пользователь: sa, Пароль: ранее заданный.
10. В Конфигураторе: АдминистрированиеЗагрузить данные из DbSQLDb.zip, закрыть Конфигуратор.
Пути к старой базе DBF лучше не удалять!
Установка на рабочую станцию клиента MS SQL Server 7.0-2000:
1. ТОЛЬКО в Windows-95: Запустить установку MS SQL Server 7.0-2000, выбрав следующие параметры:
* Install SQL Server 7.0-2000 Prerequisites
* Windows-95
* DCOM95
2. Далее на всех клиентах установка производится точно так же, как на сервер, за исключением следующего:
* Необходимо выбрать только компоненту Client Connectivity, остальные галочки убрать.
3. В MS SQL ServerClient Network Utility выбрать протокол TCP/IP.
4. Установить MDAC_2.7 или более позднюю версию (устанавливается при наличие MS IE не ниже 4.01).
Установка на рабочую станцию 1С:Предприятие 7.7 для SQL:
1. Установка производится точно так же, как на сервер, потом прописать путь к каталогу SQL базы DbSQL.