Инструкции Обзоры  Новости

1с ошибка установки соединения. В виде службы

Вопрос: Com Ошибка в ОбработкаЗаполнения


Привет.
8.2 Розница 1.
коннектюсь к 8.1 Не типовая конфа.
Подключаюсь по com к базе и пытаюсь создать документ, но при вызове "СоздатьДокумент()" или "ПолучитьОбъект()" происходит ошибка процедуре ОбработкаЗаполнения . см рис.

Пробую то же самое в самой базе 8.1 но ни какой ошибки нет, и в ОбработкаЗаполнения тоже не вхожу.
В чем косяк то может быть?

Ответ: turboq , криво написанный модуль документа!

Добавлено через 5 минут
Она не вызывается! Она пытается скомпилироваться! Но так как при подключении через ComConnector РежимДиалогаВопрос НЕ СУЩЕСТВУЕТ, модуль документа не может быть скомпилирован.
Для таких случаев когда в модуле объекта необходимо реализовать работу с диалогом используют инструкции препроцессору

Это не твоя ошибка, а ошибка модуля документа в базе к которой ты подключаешься.

В базе код исполняется на клиенте и РежимДиалогаВопрос есть поэтому все происходит без ошибок

Используй не ComConnector, V8.Application для подключения, тогда тебе будут доступны интерфейсные вещи

Добавлено через 5 минут
=======================================================================================================================
из описания внешнего соединения (СП) Жирным выделил что тебе следует почитать про КомСоединения

Описание :

В общем и целом работа с 1С:Предприятием 8 через внешнее соединение подобна работе с 1С:Предприятием в режиме Automation сервера. Основные отличия заключаются в следующем:

  • В случае Automation сервера запускается полноценное приложение 1С:Предприятия 8, а в случае внешнего соединения запускается относительно небольшой внутрипроцессный COM-сервер.
  • При работе через внешнее соединение не доступны функциональные возможности, так или иначе связанные с организацией пользовательского интерфейса 1С:Предприятия 8;
  • При работе внешнего соединения не используется модуль управляемого приложения (модуль обычного приложения) конфигурации 1С:Предприятия 8. Его роль при работе с внешним соединением играет модуль внешнего соединения.
При использовании внешнего соединения имеются следующие преимущества по сравнению с использованием Automation сервера:
  • Более быстрая установка соединения, так как не требуется создания отдельного процесса операционной системы, а все действия производятся в рамках вызывающего процесса;
  • Более быстрое обращение к свойствам и методам объектов 1C:Предприятия, так как для организации обращения не требуется организации межпроцессной коммуникации;
  • Меньший расход ресурсов операционной системы.
Для организации доступа к данным 1С:Предприятия 8 через внешнее соединение, выполняется следующая последовательность действий:
  • создается менеджер COM-соединений, с помощью которого производится установка соединения;
  • производится обращение к методу Connect менеджера COM-соединений. Метод Connect возвращает внешнее соединение с информационной базой 1С:Предприятия 8;
  • через внешнее соединение производится обращение к допустимым методам, свойствам и объектам информационной базы, с которой установлено соединение.
Важно! В связи с отсутствием пользовательского интерфейса не все объекты, а также свойства и методы можно использовать во внешнем соединении.
Внешнее соединение предоставляет полный доступ к своему глобальному контексту. Поэтому внешнее соединение в качестве своих методов может иметь: системные константы, значения заданных в конфигураторе объектов, доступ к которым осуществляется с помощью менеджеров (например, константы, перечисления, справочники, документы, журналы документов, отчеты, обработки, планы видов характеристик, планы счетов, планы видов расчета, регистры), а также переменные, объявленные в модуле внешнего соединения с ключевым словом Экспорт.

Доступность:

При подключении к серверу 1С из консоли получаем:


Ошибка на сервере или соединение разорвано администратором
Ошибка формата потока

При запуске SQL базы получаем ошибку:


Ошибка на сервере или соединение разорвано администратором.
Ошибка формата потока

И так, исходные данные:

Свежеустановленная Windows 7 Professional x64, все апдейты и т.д. (проблема имеет место и на Server 2008 и на 2008R2)

Установлен сервер 1C x64 (32битный тоже пробовал)

Все работает до перезагрузки. После перезагрузки при попытке подключения к базе в SQL или открытии кластера в консоли 1С получаем отлуп с такими картинками:

При подключении к серверу 1С из консоли получаем:

Ошибка соединения с сервером 1С:Предприятия 8.2:
Ошибка на сервере или соединение разорвано администратором
Ошибка формата потока

При запуске SQL базы получаем ошибку:

Ошибка при выполнении операции с информационной базой.
Ошибка на сервере или соединение разорвано администратором.
Ошибка формата потока


Для возможности запуска базы и подключения к кластеру из консоли помогало только:

1. Остановка службы сервера 1С:Предприятия 8.2

2. Удаление процессов rmngr.exe rphost.exe (сам вылетает при завершенииrmngr.exe ).

3. Очистка каталога C:\Program Files\1cv82\srvinfo\reg_1541\snccntx (у 32 битного сервера C:\Program Files (x86)\1cv82\srvinfo\reg_1541\snccntx)

4. Запуск службы сервера 1С:Предприятия 8.2

Однако, в процессе работы с SQLной конфой, можно было неожиданно поймать аварийное закрытие 1Ски с последующим получением этих же ошибок.

Были протестированы:

1. различные релизы, различные серверы,

2. различные пользователи: Система, Администратор, USR1CV82.

3. принудительное выставление полных прав этим пользователям на каталоги C:\Program Files\1cv82\ (у 32 битного сервера C:\Program Files (x86)\1cv82\) с наследованием на дочерние объекты.

4. десятки перезагрузок и многое другое.

Однако причина оказалась куда более неожиданной!

Разыменование в Windows 7 (Server 2008, 2008R2, вероятно и 2012)

Попробуйте пропинговать свой комп по имени. То что Вы увидите, определит возможность применения моего решения.

Выполнить это просто:

1. Запустите командную строку (Win+R, наберите cmd и нажмите ОК)

2. В командной строке наберите команду "Ping" пробел и имя вашего компьютера. Именно имя, а не его IP адрес. Нажмите Enter.

3. Если система начала пинговать себя через адрес вида fabc:de12:3456:7890:ABCD:EF98:7654:3210, или другой отличный от Вашего IP адрес

Добро пожаловать в частный клуб багофичи разыменования по версии Windows 7.

Основа проблемы кроется в том, что 1С сервер не может по имени определить себя.

А вот, отображение Вашего IP в виде IPv6 - одна из самых частых причин возникновения этой ошибки.

Еще одной из причин может быть периодическое подключение к другой сети (допустим ВПНу) когда создается новый интерфейс и Винда опять же начинает разыменовывать себя "неправильно".

Ниже я опишу два решения для обхода этой "особенности".

Предварительно хочу предупредить:

Все действия с Вашим компьютером Вы производите на свой страх и риск.


Вариант №1 Добавить в Hosts свой ПК и его IP

1. Нужно найти файлик hosts в папке C:\Windows\System32\drivers\etc Если в этой папке Вы не видите файлик Hosts, значит он просто скрыт. Тогда можно нажать клавишу ALT и, в появившемся меню, выбрать "Сервис"-"Параметры папок"-"Вид" и снять там галочку "Скрывать защищенные системные файлы". Можно еще установить переключатель "Показывать скрытые файлы, папки, диски", тогда вообще все будет видно. (После манипуляций с Hosts, рекомендую вернуть галочку на ее прежнее место, что бы случайно чего не зацепить в будущем)

2. Открыть этот файлик в Notepad (блокнот) и в конец дописать строку вида 192.168.0.1 Server (IPадрес ИмяПК). Сохранить и закрыть файлик.

3. Попробовать заново пропинговать свой ПК через имя. Если Вы снова не видите нужно IP - что-то пошло не так... Возможно антивирус вернул старую версию файла (Каспер такое любит) или что-то еще.

В общем нужно добиться правильного адреса при пинге через имя.


Стараясь быть впереди планеты всей, Windows 7, мало того что ставит IPv6 сразу ко всем интерфейсам, так она еще и ставит его в качестве дефолтного при разыменовании. Однако на сегодняшний день этот протокол мало кто использует, а следовательно его можно/нужно отключить. Помните, что снятие галочки с протокола IPv6 в интерфейсе сетевой карты ничего не даст!

  1. Нажмите Win+R, напишите regedit и нажмите Enter. Откроется редактор реестра.
  2. Если появиться запрос на разрешение действий, нажмите в диалоговом окне Контроль учетных записей пользователей кнопку Продолжить .
  3. Найдите и выберите следующий подраздел реестра:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\

  4. Дважды щелкните пункт DisabledComponents для изменения параметра DisabledComponents .
    Если параметр DisabledComponents отсутствует, его необходимо создать. Для этого:
    1. Находясь на веткеParameters, в меню Правка выберите пункт Создать , а затем — Параметр DWORD (32 бита) .
    2. Введите DisabledComponents и нажмите клавишу ВВОД.

      Хочу напомнить, что оба решения не являются панацеей, и не самом деле позволяют обойти ошибку, а не устранить ее причину

Ошибки, обнаруживающие себя при работе с программными продуктами, чаще всего лишают возможности пользоваться ими. А отсутствие специальных знаний для понимания алгоритмов работы порождают ещё и невозможность диагностики и исправления возникающих сбоев . В этой статье обратим взгляд на проблему «Сервер 1С:Предприятия не обнаружен, как исправить запуск агент-сервера?».

Устранить проблему в работе 1С можно несколькими способами.

Возникающие ошибки имеют различную подноготную, рассортировать их можно по уровням возникновения:

  • Неправильное прописывание кодов разработчиками самой один-эски;
  • Ошибки, допущенные программистами, которые дорабатывают (изменяют) продукт применительно к требованиям (задачам) конкретного пользователя;
  • Сбои, вызванные погрешностями работы кэш-памяти, чаще всего ставящие в тупик программистов;

Что касается ошибки «сервер 1С:Предприятия не обнаружен», то её нереально отнести к одному из названных, так как подобное уведомление является указанием пользователю на невыполнение определённого необходимого действия для работы программы.

Исправляемся - запускаем сервер

Итак - ситуация, которой посвящена эта публикация возникает в том случае, когда служба агент-сервера или отключена, или остановлена. Отметим, что, как правило, причины этого остаются невыясненными (кто ж признается).

Эта служба запускается двояко - либо как приложение, либо как служба. Посмотрим, как это делать в обоих случаях:

Как приложение

Чтобы запустить её в виде приложения, выполняется команда:

При этом указываются (в своих настройках) порт, диапазоны портов, уровень и каталог. Если эти параметры не указывать, то их значения будут программой установлены «по умолчанию».

В виде службы

Когда при первой установке 1С вариант запуска избирался службой, то она регистрируется и впоследствии должна так и запускаться автоматически (при каждом старте операционки).

Если же первоначально агент был установлен приложением, то можно вручную провести её регистрацию и сделать запуск. Это произойдёт по команде (не забудьте о параметрах):

ragent.exe -instsrvc -usr ‹указываем имя› -pwd ‹указываем пароль›

Port ‹для порта› -regport ‹для порт› -range ‹диапазоны портов›

Seclev ‹нужный уровень› -d ‹указывается каталог›

Результатом регистрации будет создание новой Службы (в этом случае для 1С версии 8.3 для 64-разрядки):

На память

Для удаления (отмены регистрации) службы:

Остановка:

Теперь вы всё знаете о причинах проблемы «сервер 1С:Предприятия не обнаружен» и о том, что нужно сделать при её появлении.

Оставляйте свои комментарии.

  • Д-р Кадди : Нужен диагноз. Женщина, 26 лет, взрыв газа под зданием, её вытащили из под обломков через 6 часов. Две операции из-за многочисленных переломов и ожогов…
    Д-р Хаус : Думаю, сломанные кости это следствие обрушавшегося ей на голову здания.
  • Д-р Хаус : Представьте, что крыша кладовки обрушилась на вашу любимую поломоечную машину. И та начинает перегреваться.
    Уборщик : Почему я должен любить поломоечную машину? Ладно… Может, от удара повредилось что-нибудь в электропроводке. Или что-то затекло внутрь и испортило её…
    Д-р Хаус : Хм, интересно. Проникновение инфекции через рваные раны. Бактерии отреагировали бы на антибиотики. Для вируса слишком сильный жар.Возможно, паразиты или грибки.
    Уборщик :Или волчанка.
    Хаус в изумлении оборачивается
    Уборщик : У моей бабушки волчанка.
    Д-р Хаус :(озадаченно) Хорошо,ауто-имунная. Проверю на волчанку. Хотя больше подходит инфекция. Хорошо бы ещё её карту. Приступим к худшей части работы. К общению с семьей поломоечной машины.
  • Д-р Хаус : В карточке указано, что она была больна ещё до того, как здание обрушилось.
    Муж пациентки : Я считаю, что это обычная простуда. А что, вы считаете это связано?
    Д-р Хаус : Её болезнь с её болезнью? Порой случается.
  • Мать пациентки : В дневнике сказано, что моя дочь принимает эти таблетки?
    Д-р Хаус : Нет, но с медицинской точки зрения…
    Д-р Кадди : Вы нашли таблетки в её доме?
    Д-р Хаус : Очевидно, она прятала их в сумочке. Подумал, будет неприлично искать под 1000 тонн обломков.
  • Хирург : У неё повсюду кровотечения, разве что аборт сделали при помощи дробовика.

В этой статье показан пример общих принципов разбора технологических вопросов, которые могут появляться при работе с 1С:Предприятие 8.1.

Давать советы любят все, но когда доходит до дела, у всех резко находятся более важные дела:))) . Наверно будет честным сразу предупредить, что данный материал написан мной скорее как информация для размышления, а не теория решения личных проблем и неприятных ситуаций по работе. Тем не менее мне думается, приведеные здесь примеры из моей практики могут пригодиться при разборе аналогичных проблем.

В качестве примеров будут разобраны:

Пример 1. Пользователь пожаловался на невозможность запуска 1С:Бухгалтерия.

Текст сообщения:

"Ошибка соединения с сервером 1с: Предприятия 8.1:
server_addr=App1С:1540=Ошибка сетевого доступа к серверу
(Windows sockets - 10061(0x0000274D)
No connection could be made because the target machine actively refused it) line =567

Пример 2. "Потерялся" доступ к информационной базе.

Текст сообщения:

Ошибка при выполнении операции с информационной базой

Microsoft OLE DB provider for SQL Server: Login failed for user ‘user1c’

HRESULT=80040E4D, SQLSrvr: Error state=1, Severity=E, native=18456, line=1

Пример 3. Странная "неизвестная" ошибка.

Текст сообщения: «Произошла неизвестная ошибка на сервере 1С предприятие (80010108)»

1. Определение текста (проявления) ошибки и локализация источника возникновения

  • Зафиксируйте ошибку (текст и/или другую информацию, которая может пригодиться для анализа проблемы). Проблему лучше фиксировать с помощью технологического журнала . Вывод: если вы не используете технологический журнал для других задач, настройте его на постоянный лог сбор событий "исключений" (EXCP) и формирование дампов случае падения платформы.
  • Зафиксируйте время возникновения ошибки. Это в дальнейшем поможет локализовать место изучения различных логов.
  • ПРОЧТИТЕ текст сообщения, попытайтесь сразу понять источник возникновения проблемы из содержимого этого текста.
  • Выполните поиск решения по тексту сообщения в интернете или в других известных вам источниках решения проблемы.
  • Те, кто до этого не занимались решением проблем с ошибками платформы, решать их не будут, ищете тех кто этим занимался или занимается.

Примечание. Пример 1 . Поиск в ниже в разделе "Где можно найти готовое решение" по приведенным на данной странице тексту "10061" покажет сразу объяснение причины и решение : на сервере приложений остановлена служба "Агент сервера 1с :Предприятие 8.1 ". Соответственно ее надо запустить, например из командной строки:

net start Агент сервера 1с:Предприятие 8.1

Если сервер приложений не стартует, в некоторых случаях сделайте копию папки C:\Program Files\1cv81\server и удалите содержимое перед попыткой старта.

Система «1С:Предприятие» помимо файлового варианта может работать с информационными базами и в клиент-серверном варианте. В последнем случае понимается архитектура, состоящая из нескольких программных уровней, схематично изображенных на рисунке ниже.

  • Клиентские приложения, тонкие клиенты и веб-клиенты — это и есть «1С:Предприятие» в различных режимах запуска, с которыми работает конечный пользователь. Для клиентских приложений и тонких клиентов требуется на компьютеры пользователей (или на ), для веб-клиента достаточно веб-браузера.
  • Кластер серверов «1С:Предприятие» представляет собой совокупность рабочих процессов, функционирующих на одном или нескольких компьютерах и списка информационных баз, которые размещены в этом кластере. В кластере серверов выполняется вся работа прикладных объектов, выполняется подготовка к отображению форм (чтение объектов информационной базы, заполнение данных форм, расположение элементов и т.д.) и командного интерфейса, формируются отчеты, выполняются фоновые задания. На клиентах происходит лишь отображение информации, подготовленной в кластере серверов. Кроме того на сервере кластера «1С:Предприятия» хранятся служебные файлы, а также журнал регистрации информационных баз.
  • Сервер баз данных — на сервере баз данных происходит непосредственное хранение и работа с данными, обеспечиваемое одной из следующих, поддерживаемых системой «1С:Предприятие», систем управления базами данными (СУБД):
    • Microsoft SQL Server начиная с версии Microsoft SQL Server 2000 и выше;
    • PostgrageSQL начиная с версии 8.1;
    • IBM DB2 начиная с версии 9.1;
    • Oracle Database начиная с версии 10g Release 2.
  • Веб-сервер необходим только для работы веб-клиентов и одного из вариантов работы тонкого клиента. Обеспечивает взаимодействие данных видов соединения с кластером серверов «1С:Предприятия».

Стоит также отметить что не обязательно каждый программный уровень должен располагаться на отдельном физическом компьютере. Кластер серверов может располагаться на одном компьютере с сервером баз данных, веб-сервером и т. д. Например, нередко в небольших организациях встречается следующая структура работы:

В данной статье я буду описывать установку сервера «1С:Предприятия» версии 8.3.4.389 (для других версий платформы «1С:Предприятие» 8.1, 8.2 и 8.3 действия аналогичны) на один компьютер под управлением Windows Server 2008 (R2) или Windows Server 2012 (R2). В качестве СУБД будет рассматриваться Microsoft SQL Server 2008 (R2) или Microsoft SQL Server 2012. Для этого нам понадобится:

  1. Компьютер, отвечающий системным требованиям для установки сервера «1С:Предприятия» и с установленной на данный компьютер ОС или .
  2. Компьютер для сервера баз данных, также под управлением ОС или (может быть компьютером из п.1).
  3. Права локального администратора на обоих компьютерах.
  4. Дистрибутив для установки сервера «1С:Предприятия» 8.
  5. Программная лицензия или ключ защиты HASP4 Net для сервера «1С:Предприятия».
  6. Дистрибутив для установки Microsoft SQL Server 2008 (R2) или Microsoft SQL Server 2012.

2. Установка СУБД MS SQL Server

Устанавливаем СУБД MS SQL Server на компьютер, служащий сервером баз данных. Для работы системы «1С:Предприятие» достаточно установки компонент:

  • Службы компонента Database Engine (Database Engine Services)
  • Средства управления - основные (Management Tools - Basic)
    • Средства управления - полный набор (Management Tools - Complete).

Параметры сортировки выбираем « Cyrillic_General_CI_AS ». Подробно про установку систем

3. Настройка Брандмауэра Windows для работы СУБД

Если сервер баз данных и сервер кластера «1С:Предприятия» находятся на разных физических компьютерах, необходимо на сервере баз данных настроить Брандмауэр Windows таким образом, чтобы сервер «1С:Предприятия» мог работать с СУБД, а именно открыть входящие подключения по порту 1433 (для экземпляра SQL Server по умолчанию).

4. Добавление пользователя в MS SQL Server

Далее добавим в MS SQL Server отдельного пользователя, под которым будут подключаться базы данных сервера «1С:Предприятия». Этот пользователь будет также владельцем этих баз данных. Добавляемый пользователь должен авторизовываться на сервере с помощью пароля и обладать набором ролей: dbcreator , processadmin, public . Подробно про добавление пользователя на

  • Microsoft SQL Server 2008 (R2) я писал .
  • Microsoft SQL Server 2012 я писал .

5. Установка сервера «1С:Предприятия»

Теперь переходим к установке файлов сервера «1С:Предприятия» и запуску соответствующей службы. Для установки требуется дистрибутив технологической платформы «1С:Предприятия». Из перечня поставляемых дистрибутивов подойдут следующие:

  • Технологическая платформа 1С:Предприятия для Windows — позволяет установку 32-разрядного сервера «1С:Предприятия»
  • Сервер 1С:Предприятия (64-bit) для Windows — позволяет установку как 32-разрядного, так и 64-разрядного сервера «1С:Предприятия»

(Также существует и расширенная версия КОРП сервера 1С:Предприятия 8.3, подробности можно посмотреть на сайте 1С)

Открываем каталог с файлами установки сервера «1С:Предприятия» и запускаем файл setup.exe .

Запуститься помощник установки системы «1С:Предприятия». На первой странице жмем «Далее ».

На следующей странице необходимо выбрать те компоненты, которые будут устанавливаться, нам требуются компоненты:

  • Сервер 1С:Предприятия — компоненты сервера «1С:Предприятия»
  • Администрирование сервера 1С:Предприятия 8 — дополнительные компоненты для администрирования кластера серверов «1С:Предприятия»

Остальные компоненты (перечень компонент может зависеть от конкретного дистрибутива), в зависимости от необходимости, также могут быть установлены на данный компьютер. Сделав выбор жмем «Далее ».

Выберем язык интерфейса, который будет использоваться по умолчанию, и нажмем «Далее ».

Если сервер «1С:Предприятия» устанавливается как служба Windows (а так в большинстве случаев и следует его устанавливать) рекомендую сразу создать отдельного пользователя, из под которого будет запускаться создаваемая служба. Для этого

  • Оставляем включенным флаг «Установить сервер 1С:Предприятие как сервис Windows (рекомендуется) »;
  • Переводим соответствующий переключатель в «Создать пользователя USR1CV8 ».
  • Вводим 2 раза пароль для создаваемого пользователя. По умолчанию пароль должен отвечать политики паролей Windows. Подробнее об этом можно прочитать:
    • Для Microsoft Windows Server 2008 (R2) — ;
    • Для Microsoft Windows Server 2012 — .

Можно также и выбрать существующего пользователя для запуска сервера «1С:Предприятия». В этом случае выбранный пользователь должен обладать правами:

  • Вход в систему как сервис (Log on as a service)
  • Вход в систему как пакетное задание (Log on as a batch job)
  • Пользователи журналов производительности (Performance Log Users).

Также пользователю обязательно следует дать необходимые права на каталог служебных файлов сервера (по умолчанию C:\Program Files\1cv8\srvinfo для 64-х разрядного и C:\Program Files (x86)\1cv8\srvinfo для 32-х разрядного сервера).

Созданный автоматически пользователь USR1CV8 будет обладать всеми перечисленными правами.

Заполнив соответствующие параметры, жмем «Далее ».

Ну и наконец нажимаем «Установить » для того чтобы начать установку. При этом будет произведено копирование файлов выбранных компонент, создание конфигурационных файлов, регистрация компонентов программы, создание ярлыков, а также запуск службы сервера «1С:Предприятия».

По завершении установки помощник предложит установить драйвер защиты — HASP Device Driver. Если используется программная лицензия на сервер «1С:Предприятия», производить установку драйвера нет необходимости. Оставляем или снимаем флаг «Установить драйвер защиты » и жмем «Далее ».