Соединение с сервером баз данных разорвано администратором. Неопознанная ошибка HRESULT=80004005 или почему не выгружаются базы данных в dt

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

Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:

  • Инструменты отладки в 1С

Имеющиеся в наличии инструменты отладки собраны в меню - «Отладка» можно вызвать соответствующими горячими клавишами или из меню «Отладка».

Меню «Отладка»

Точки останова

Точка останова - это некая точка в программном модуле на которой выполнение модуля приостанавливается и управление перехватывает отладчик. Точку останова можно установить с любой строке модуля и в любой момент работы с отладчиком. Место установки точки останова отмечается соответствующим знаком, для разных видов точек останова используются разные обозначения:


Работе с точками останова посвящена секция меню «Отладка»:

  • Точка останова (F9) - устанавливает/удаляет точку останова в строке на которой стоит курсор;
  • Точка останова с условием - устанавливает точку останова и открывает окно для ввода условия - логического выражения, повторное использование команды в этой же строке откроет окно для редактирования условия. Останов в указанной точке будет выполнен только если условие истинно;
  • Включить/отключить точку останова (Ctrl+Shift+F9) - включает/отключает точку останова;
  • Удалить все точки останова - удаляет все точки останова во всех модулях;
  • Отключить все точки останова - отключает все точки останова во всех модулях;
  • Список точек останова (Alt+F9) - открывает окно для просмотра и управления точками останова, о нем ниже.

Кроме этого пункт меню «Отладка» - «Остановка по ошибке…» также можно отнести к работе с точками останова, так как эта команда позволяет останавливать выполнение кода при возникновении ошибки и переходит к строке которая вызвала ошибку.

Команда «Список точек останова» (Alt+F9) открывает окно для просмотра и управления точками останова:


Окно «Точки останова»

В окне показаны все точки останова во всех модулях, их расположение (модуль и номер строки) и условие (если есть). Имеется возможность включить/отключить/удалить точки останова, перейти к месту установки точек останова, сохранить и загрузить список точек останова.

Пошаговое выполнение

После того как сработает какая-либо точка останова и управление перейдет к отладчику обычно следует пошаговое выполнение кода модуля. Для пошагового выполнения в меню «Отладка» (и на панели отладки) имеется соответствующая группа команд - они появляются в момент подключения первого из предметов отладки.

В режиме пошаговой отладки исполнение кода приостанавливается после каждой команды и ждет инструкций от отладчика. А инструкции бывают следующими:

  • Шагнуть в (F11) - если следующая команда это процедура/функция, то начинается пошаговая отладка этой функции, иначе отладчик просто переходит к следующей команде;
  • Шагнуть через (F10) - если следующая команда это процедура/функция, то она полностью выполняется (не пошагово) и отладчик переходит к следующей команде;
  • Шагнуть из (Shift+F11) - прерывает пошаговое выполнение процедуры/функции и останавливается на первом операторе после выхода из нее;
  • Идти до курсора (Shift+F10) - выполняются все операторы до строки на которой стоит курсор;
  • Текущая строка - перемещает курсор в ту строку, на которой остановился отладчик;
  • Продолжить отладку (F5) - прерывает пошаговую отладку и продолжает свободное исполнение модуля.

Управление отладкой осуществляется при помощи соответствующих команд меню «Отладка»:

  • Перезапустить (Ctrl+Shift+F5) - прекращает выполнение конфигурации и производить повторyый запуск в режиме «1С:Предприятия»;
  • Завершить (Shift+F5) - прекращает выполнение модуля и завершает работу текущего предмета отладки;
  • Остановить - останавливает выполнение модуля на текущем операторе и позволяет начать отладку со следующей исполняемой строки.
  • Остановка по ошибке - открывает окно настройки остановки по ошибке:

Окно «Выражение» (Shift+F9)


Окно «Выражение»

Позволяет рассчитать выражение на встроенном языке. Следует отметить, что выражения выполняются в реальной системе и об этом нельзя забывать, если, к примеру, рассчитываемое выражение создает некий объект данных, то этот объект будет создан в реальной системе.

Табло (Ctrl+Clt+W)


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

Окно «Локальные переменные»


Окно «Локальные переменные»

Специальное окно, которое во время отладки показывает список локальных переменных текущего метода. Редактировать таблицу переменных нельзя.


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

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

После нажатия кнопки «Установить» в нижней части появится сообщение, которое проинформирует нас - удалось изменить значение переменной или нет.

Пользоваться функцией нужно с осторожностью - необдуманное изменение значений переменных может привести к записи в базу данных совершенно неправильных значений.


Показывает последовательность вызовов процедур и функций, которая привела к отлаживаемой в данный момент строке кода. Колонки таблицы содержат название метода, номер строки модуля и предмет отладки.

Замер производительности

Замер производительности позволяет оценить скорость работы всей конфигурации или ее части. Измеряется скорость выполнения и частота использования конкретных участков кода, а также прочая дополнительная информация о которой ниже.

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

Включить режим замера производительности можно соответствующей командой из меню «Отладка»:

Команда «Замер производительности»

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

Результаты замера

Результаты замера производительности отображаются в виде таблицы со следующими столбцами:

  • Модуль - название модуля;
  • Номер строки - номер строки;
  • Строка - участок кода;
  • Кол. - количество вызовов данного участка кода за все время замера;
  • Врем. - суммарное время выполнения (в секундах) данного участка кода за все время замера;
  • %(Врем.) - процент суммарного времени выполнения данного участка кода к общему времени замера (общее время замера - это суммарное время выполнения кода конфигурации);
  • Клиент - отметка участков кода выполняющихся на клиенте;
  • Сервер - отметка участков кода выполняющихся на сервере;
  • Обр. сервер - отметка участков кода в которых происходит вызов сервера.

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


Если в строке вызывается процедура/функция то система может показывать время выполнения строки как с учетом времени выполнения вызываемой процедуры/функции и без учета этого времени. Флажок «Для вызова процедур и функций включать время выполнения» служит для выбора способа подсчета времени выполнения строки.

В этой статье я разберу основы работы с отладкой в . Что такое отладка и для чего она нужна? Очень часто необходимо понять, как работает тот или другой кусок кода, и какие значения содержат различные переменные. для этих целей имеет механизм отладки. В этой статье мы разберем основные моменты работы с отладкой.

Для того чтобы программа остановилось на определенном месте нужно установить точку останова. Для этого необходимо поставить курсор на нужную строку и кликнуть мышкой по левому полю. Слева появился красный кружок. Точку останова можно поставить используя главное меню

Или используя контекстное меню

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

Обращаю Ваше внимание, что точку останова необходимо устанавливать на том месте кода, где написан какой-нибудь оператор. Либо объявлены неявно переменные.

Есть несколько вариантов, рассмотрим их все по отдельности.

Первый вариант, можно просто идти по коду, не заходя ни в какие процедуры и функции. Для этого используем кнопку «Шагнуть через» или клавишу F10.

Имейте в виду, что если отладка передает управление какой-нибудь интерактивной функции, где требуется вмешательство пользователя, то либо сразу Вас программа перекинет на 1С Предприятие, либо отладка зависнет, и тогда в 1С Предприятие придется перейти самостоятельно.

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

Если нам необходимо выйти из какой-то процедуры или функции, не дожидаясь её выполнения, то необходимо нажать кнопку «Шагнуть из» или держа клавишу Shift нажать клавишу F11.

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

Второй способ: установить курсор на нужную и нажать на кнопку «Идти до курсора», либо держа клавишу Shift нажать клавишу F10.

Если работая с кодом Вы заблудились в нём и хотите быстро вернуться к текущей строке отладки, то достаточно нажать кнопку «Текущая строка»

Как двигаться по коду в отладке мы узнали. Теперь самое главное, как узнать значения переменных? В этом нам поможет табло .

Открыть его можно несколькими способами.

Первый: используя главное меню.

Второй: используя панель «Отладка конфигурации».

Третий: используя комбинацию клавиш Ctrl + Alt + W.

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

Кроме переменных примитивных типов у Вас есть возможность вносить в выражение переменные объектных типов, и посмотреть их состав этой переменной (если Вы не отлаживаете выполнение кода на в ).

В табло можно вносить и функции (как собственные, так и глобального контекста), чтобы узнать, что они будут возвращать.

Узнать значение переменной можно и без использования табло. Достаточно выделить эту переменную и нажать на кнопку «Вычислить выражение» (комбинация клавиш Shift + F9).

Посмотрите наглядную работу с отладкой в этом видео.

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

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы.

Отладчик является встроенным в конфигуратор инструментом. Он помогает отлаживать программные модули, создаваемые в процессе разработки прикладного решения. Отладчик позволяет отслеживать последовательность выполнения операторов встроенного языка и просматривать значения переменных.

Основные возможности отладки

  • отладка приложений, исполняемых на удаленных компьютерах, доступных по протоколу TCP/IP или HTTP ,
  • отладка кода, исполняемого рабочим процессом кластера серверов 1С:Предприятия 8; при этом поддерживается сквозной стек вызовов для клиента и сервера, и сквозная пошаговая отладка клиента и сервера;
  • отладка кода, исполняемого в таких видах соединений как внешнее соединение , фоновое задание и WS-соединение?
  • отладка мобильных приложений .

Точки останова

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

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

Отладчик поддерживает возможность отключения точек останова. При этом строка модуля остается отмечена маркером, однако на ход исполнения модуля он никакого влияния не оказывает:

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

Пошаговое выполнение

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

Просмотр выражений

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

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

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

Табло и локальные переменные

Результаты вычислений, которые требуется просматривать на протяжении выполнения некоторой части модуля, можно вывести в отдельное окно - табло, - в котором есть возможность распределить все просматриваемые выражения по четырем страницам:

Для удобного просмотра и изменения локальных переменных, что представляется наиболее частой задачей, существует команда Локальные переменные . Она открывает табло, которое уже автоматически заполнено всеми локальными переменными.

Изменение значений переменных

Значения примитивных типов можно изменить прямо в ячейке Значение.

А для изменения других значений можно воспользоваться окном ввода выражений.

В этом окне полностью функционирует контекстная подсказка.

Стек вызовов

Отладчик позволяет использовать стек вызовов, который показывает последовательность вызовов процедур и функций, приведшую к строке модуля, которая отлаживается в данный момент:

Двойным щелчком мыши на имени процедуры в стеке вызова можно перейти в соответствующую строку процедуры.

Остановка по ошибке

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

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

Установлен сервер 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 - что-то пошло не так... Возможно антивирус вернул старую версию файла (Каспер такое любит) или что-то еще.

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



Вариант №2 Отключить полностью протокол IPv6 (http://support.microsoft.com/kb/929852)

Стараясь быть впереди планеты всей, 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 и нажмите клавишу ВВОД.
    3. Дважды щелкните пункт DisabledComponents .
    4. Введите значение ffffffff , а затем нажмите кнопку ОК .
    5. Перегрузить компьютер.

Выглядеть должно так:

Таким образом Вы отключите протокол IPv6 полностью и Винда не будет использовать его IP вдрес для разименования.

ВАЖНО!!!

Обязательно пропингуйте свой ПК через имя и убедитесь, что пинги идут на правильный IP адрес. Не всегда, с первого раза, удается отключить IPv6 (то имя параметра не совсем правильное, то значение...)

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