Разберем основные случаи когда и почему не работает отладка 1С.
1. В списке предметов отладки не видны серверные сеансы
Возможно сервер 1С запущен не в режиме отладки. Для того чтобы включить режим отладки, службу сервера 1С нужно запустить с ключом -debug. Пошаговый разбор как это сделать тут.
2. В списке предметов отладки не видны ни клиентские ни серверные сеансы.
Еще одной причиной отсутствия предметов отладки в списке является то, что предметы отладки находится не на том компьютере где запущен отладчик 1С. Актуально как для серверных так и для клиентских сеансов. Для решения проблемы обычно достаточно указать имя удаленного компьютера для поиска предметов отладки и обновить список.
Если и после этого список пустой, то нужно вбить вместо имени IP-адрес удалённого компьютера. В случае если это помогло, то рекомендуется прописать привязки имен и IP-адресов компьютеров в файле hosts. Если и это не помогло то необходимо проверить настройку фаервола, разрешены ли на сервере 1С (или удаленном клиенте) входящие соединения с компьютера где запущен отладчик на порты 1560-1591.
3. В списке предметов отладки не видны клиентские сеансы.
Причина как правил в том, что не разрешена отладка клиентского приложения. Для разрешения отладки клиентского сеанса достаточно в настройках программы в режиме 1С Предприятие указать в параметре «Отладка в текущем сеансе» — Разрешена TCP/IP.
4. Предмет отладки виден в конфигураторе и подключается, но точка останова все равно не срабатывает на строке кода.
Данная проблема актуальна при отладке по протоколу TCP. Причина в том что отладчик не может принимать входящие соединение из-за того что брандмауер или фаервол блокируют сетевое взаимодействие между отладчиком и предметом отладки. Тут нужно понимать, что отладчик не только устанавливает исходящее соединение с предметом отладки, но также должен иметь возможность принимать входящее соединение. Проблема решается отключением фаервола на компьютере где запущен отладчик либо открытием входящих соединений на портах 1560-1591 для исполняемого файла 1cv8.exe.
5. Программный код выполняется в сеансе фонового задания.
В типовых конфигурациях 1С широко использует запуск длительных процедур в фоновом режиме. Для этого на сервере запускается отдельный фоновый сеанс помимо основного серверного сеанса пользователя. Проблема решается включением автоматического подключения отладчика к фоновым сеансам. После этого как правило отладка начинает работать, если нет проблем с фаерволом описанных выше.
6. Программный код выполняется в сеансе web-сервиса или http-сервиса.
Как правило сеанс подключения к web-сервису http-сервису существует непродолжительное время и вручную подключиться к нему проблематично. Здесь так же достаточно включить автоматическое подключение к таким сеансам и отладчик сам будет находить и подключать предметы отладки, ваша задача только поставить точку останова в коде.
Подводим итоги
Как видим основные причины неработающей отладки 1С легко решаются. Пожалуй самой трудно-диагностируемой проблемой является работающий в сети фаервол, который может блокировать соединения между отладчиком и предметом отладки. В самом простом случае достаточно открыть порты для подключения как описано выше. В более сложном случае, когда отладчик и предмет отладки разделены NAT, может потребоваться проброс портов. Самый крайний случай когда из-за политик безопасности прямое сетевой взаимодействие по протоколу TCP между отладчиком и предметом отладки не возможно, следует рассмотреть вариант отладки по протоколу HTTP.
Напоследок стоит отметить, что как правило отладка производиться на тестовом сервере 1С, который запускается на портах отличных от типового диапазона 1560-1561. Поэтому, все изложенное выше в части номеров портов, следует рассматривать в контексте ваших реально используемых диапазонов портов.
Описание ошибки:
База работает в режим клиент-сервера. Релиз платформы 1С:Предприятие 8.3.17.1851. При работе на клиентском месте в конфигураторе, в режиме отладки в предметах отладки нет типа сервер, а есть только тонкий клиент.
Найденные решения:
Возникшую ситуацию нельзя классифицировать как ошибку в чистом виде, но на сайте описание решение данной проблемы больше подойдет для раздела описания ошибок и их устранения.

Рис. 1. Пример наличия в предметах отладки 1С только типа «Тонкий клиент», тип «Сервер» отсутствует.
Первым делом, на всякий случай, было проверено наличие параметра debug у службы Агент сервера 1С: Предприятия 8.3, т.к. была уверенность, что его уже ранее устанавливал, иначе отладка вообще не могла быть возможной даже в процедурах и функциях на стороне клиента. Без этого параметра отладка для клиент-серверного варианта базы совсем работать не будет, поэтому есть напоминание в статье о том, как «включить отладку для сервера». Параметр -debug был указан. Поэтому в предметах отладки есть тип «тонкий клиент» и &НаКлиенте отладка кода выполнялась. Отладка не происходила в коде на стороне &НаСервере.
Сталкивался, конечно со случаем, когда отладка для типа «сервер» автоматически не подключалась в предметах отладки. Но разбираться было долго. Быстрее было просто ее подключить из списка «доступные предметы отладки» с помощью соответствующей кнопки и работать дальше.

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

Рис. 3. Исходное положение и указание параметра debug c «-«.
Что и было изменено в данном случае, чтобы устранить проблему с отсутствием в параметрах отладки платформы 1С 8 отладки для серверных процедур и функций. Как отредактировать/добавить параметр debug можно прочитать по ссылке.

Рис. 4. Измененное положение и указание параметра дебаг с «/».
Но в этот раз, увы, оказался не тот случай. Вариант указания параметра debug не помог. Проблема была еще в чем-то другом. Но проверка наличия параметра — это первоочередной вариант для устранения описываемой проблемы, т.к. наиболее часто встречающаяся, поскольку при установке службы агента сервера 1С автоматически параметр не прописывается.
Как видно, что в связи с вариацией указания параметра debug может возникать пространство вариантов проявлении ошибки или наоборот, при остальных прочих условиях она может себя не показать. Замечно, что проблема редкая и может встречаться на клиентских рабочих местах. Если работать непосредственно на сервере, то себя может и не проявить даже с ключом -debug.
Но проблема сохранилась. Было решено исключать экзотический вариант. Там же, на форуме infostart, обсуждался нюанс относительно того, что не совпадает регистр имени базы в списке баз и на самом сервере.

Рис. 5. Опыт проверки указания строки подключения информационной базы 1С 8.
Т.е. строка соединения с базой должна быть такой же, учитывая регистры букв, как и строка соединения с информационной базой, которая используется для работающего фонового задания. Получить можно с помощью функции СтрокаСоединенияИнформационнойБазы().
Можно скачать обработку для определения строки соединения с базой для управляемого интерфейса и для обычного интерфейса. Обработку можно открыть через «Главное меню» — «Файл» управляемого интерфейса или просто меню «Файл» обычного и через пункт «Открыть …» запустить файл соответствующей обработки.
Рис. 6. Пример обработки, содержащей функцию СтрокаСоединенияИнформационнойБазы() для управляемого приложения.
Этот момент был в моем случае. Он был приведен в порядок — имя базы было указано как и на сервере 1С: Предприятия — в данном случае в верхнем регистре, но и это не помогло.
Рис. 7. Исправление указания расположения базы 1С 8 с учетом регистра букв в имени базы на сервере.
Но и это не помогло.
Если консолидировать оставшиеся варианты, которые когда-либо помогали, то среди рекомендаций оставались: отключить брендмауэр ОС, в частности Windows, или антивирус, проверить не закрыты ли порты в случае тонкой настройки ограничений на сервере или клиентском рабочем месте.
Было решено провести эксперимент и отключить брандмауэр Windows. «Панель управления» — «Система и безопасность» — «Брандмауэр Windows» и отключение через ссылку «Включение и отключение брандмауэра Windows».
Рис. 8,9. Отключение брандмауэра в Windows для устранения проблемы отсутствия отладки на стороне сервера в Конфигураторе 1С 8
И это помогло — в предметах отладки сдал доступен серверный вариант:
Рис. 10. Результат решения проблемы. Тип «Сервер» в предметах отладки доступен после отключения брандмауэра.
Конечно, оставлять отключенным защитник (брандмауэр) Windows не стоит, если не установлено никаких антивирусных программ на рабочем месте. Но в данной публикации показано явное влияние на работу процесса отладки 1С 8. Если в Вашем случае все-таки причиной окажется брандмауэр, то следует обратиться, если Вы не разбираетесь в настройках, к профильному специалисту, например к системному администратору, чтобы он проверил настройки прав и ограничений и установил их так, чтобы не было препятствий для запуска отладки сервера при конфигурировании в 1С 8.
Оцените, помогло ли Вам предоставленное описание решения ошибки?

© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.
22-11-2021
Журавлев А.С.
(Сайт azhur-c.ru)
Не работает отладка на сервере |
Я |
04.08.16 — 13:53
Имеется 1С 8.3.8.1861+Ubuntu 16.04+PostgreSQL.
Все работает,все хорошо, но не работает отладка серверных процедур в конфигураторе. Ключ -debug добавлен ко всем службам,брендмауэр отключен, имена базы и строки подключения совпадают, предмет отладки типа сервер есть, но автоматом не подключается, а добавление вручную не решает проблему. 1С на серваке одна,т.е никаких других платформ и сервисов там нет. Помогите кто чем может.
p.s. Заметил такую штуку — в моей базе порт отладчика 1560 и порт сервера тоже 1560, а в других базах(правда на виндовом сервере) порты сервера и отладчика отличаются. Может в этом проблема? Как изменить порт не нашел.
p.p.s. Прочитал статью(http://v8.1c.ru/o7/201506debug/index.htm), о том что 1С изменила архитектуру отладки. И чтоб она работала нужно добавить ключ к службе сервиса -http. Но как добавить ее в линуксе ни слова. Интернет тоже молчит. Кто-нибудь сталкивался с таким?
1 — 04.08.16 — 14:36
апну
2 — 04.08.16 — 15:08
сходи на ubuntu.ru
3 — 04.08.16 — 15:28
(2) Сомневаюсь, что дело в убунту
4 — 04.08.16 — 15:30
Показывай окно предметов отладки
5 — 04.08.16 — 15:41
6 — 04.08.16 — 15:44
Предмет отладки виден и отладчик к нему подключен.
Твоя проблема в том, что точки останова не работают.
Когда останавливаешь выполнение кода («Отладка — Остановить») и потом что-нибудь делаешь в пользовательском режиме, то отладчик остановится на первой выполнившейся строке кода?
Проверь это не на внешней обработке, а на какой-нибудь форме конфигурации
7 — 04.08.16 — 15:44
это я их ручками в нижнюю таблицу поместил, а так ни клиент ни сервер автоматом не подключаются
8 — 04.08.16 — 15:47
(7) Так проблема в том, что автоматом не подключаются, или все-таки в (6)?
9 — 04.08.16 — 15:49
Параметры->Дополнительные->Устанавливать режим разрешения отладки: включен?
10 — 04.08.16 — 15:53
(9) включен
(8) проблема в том что в не останавливается на точках останова в серверных процедурах
(6) «Отладка — Остановить» ничего не происходит, отладка не прекращается
11 — 04.08.16 — 15:58
После добавление ключ -debug службу перезапускали?
12 — 04.08.16 — 16:02
(11) Сначала службу, а потом и весь сервер
13 — 04.08.16 — 16:03
(10) «не останавливается на точках останова в серверных процедурах» // А в клиентских?
14 — 04.08.16 — 16:04
(13) а в клиентских останавливается
15 — 04.08.16 — 16:07
В недрах etc/init.d/srv1cv8 раскомментировал строку SRV1CV8_DEBUG=1?
16 — 04.08.16 — 16:09
(15) Конечно, иначе бы ключ -debug не появился бы
17 — 04.08.16 — 16:15
(16) Где появился? Ты смотришь командные строки запущенных процессов ОС и ключ там есть, верно?
18 — 04.08.16 — 16:17
usr1cv8 2123 0.0 0.1 45248 4660 ? Ss авг03 0:00 /lib/systemd/systemd —user
usr1cv8 2125 0.0 0.0 61276 2020 ? S авг03 0:00 (sd-pam)
usr1cv8 2143 0.3 1.1 828596 47000 ? Ssl авг03 5:12 /opt/1C/v8.3/x86_64/ragent -daemon -debug
usr1cv8 2157 1.2 3.7 1354716 150108 ? Sl авг03 18:59 /opt/1C/v8.3/x86_64/rmngr -port 1541 -host Ubuntu-1604-xenial-64-minimal -range 1560:1591 -debug -tcp -clstid 3273afcc-57c6-11e6-3384-5254a20178af
usr1cv8 8921 0.9 8.6 1629804 350392 ? Sl 10:23 0:42 /opt/1C/v8.3/x86_64/rphost -range 1560:1591 -reghost Ubuntu-1604-xenial-64-minimal -regport 1541 -pid 33721e72-57c6-11e6-3384-5254a20178af -debug -tcp
root 9560 0.0 0.0 17560 976 pts/0 S+ 11:41 0:00 grep —color=auto 1c
19 — 04.08.16 — 16:17
это в линуксе на сервере
20 — 04.08.16 — 16:36
(14) А клиентское приложение и сервер приложений на разных хостах расположены?
21 — 04.08.16 — 16:38
(20) Да
22 — 04.08.16 — 16:42
(21) Скорее всего это причина. То, что серверный предмет отладки виден, но при запуске предмета отладки (клиентского приложения) из отладчика автоматом не подключается, косвенно свидетельствует о проблемах с установкой связи между отладчиком и сервером приложений.
Открыл все порты на обоих серверах в обе стороны? Файрволы?
23 — 04.08.16 — 16:43
(21) а чего фоновые задания не подколючил? забыл?
24 — 04.08.16 — 16:45
Судя по командным строкам запущенных процессов, диапазон портов используется стандартный. Так что размещение файлов debugcfg.xml на обоих хостах _вроде_ не требуется
25 — 04.08.16 — 16:53
(23) Зачем?
(22) Фаерволов нет, брэндмауэр отключил на клиенте
«Открыл все порты на обоих серверах в обе стороны?» Насильно ничего не открывал. на линуксе iptables ничего не блокируют, значит там все открыто, а на клиенте хз как проверить?
26 — 04.08.16 — 16:54
Может причина в этом «Заметил такую штуку — в моей базе порт отладчика 1560 и порт сервера тоже 1560, а в других базах(правда на виндовом сервере) порты сервера и отладчика отличаются.»
27 — 04.08.16 — 17:12
ап
28 — 04.08.16 — 17:25
(26) Нет, у меня так же
(25) «а на клиенте хз как проверить?» // Тут не подскажу, какая утилитка в Убунту сможет показать _доступность_ порта. Кажется, при попытке подключиться всякими ssh / telnet’ами просто подтвердит, слушается ли порт, но открыт ли он в принципе, не покажет.
Сделай такой эксперимент: запусти конфигуратор на хосте сервера приложений и проверь отладку там. Т.е. все локально на одном хосте.
29 — 04.08.16 — 17:51
(28) это невозможно, на серваке урезанная версия ОС убунту без графического интерфейса
30 — 04.08.16 — 17:54
Случаем к базе подключение с клиента не по ИП-адресу происходит (в строке запуска)?
31 — 04.08.16 — 17:55
сначала было по айпи, потом поменял на имя сервера из консоли администрирования серверов. Это ни на что не повлияло
32 — 04.08.16 — 17:56
«потом поменял на имя сервера из консоли администрирования серверов» // Я про строку соединения на клиенте. Та, что прописана в v8i-файлах. И заодно покажи строку адреса отладчика в настройках отладки.
33 — 04.08.16 — 18:02
(32) «Я про строку соединения на клиенте. Та, что прописана в v8i-файлах». А где их искать? Поиск в виндовс не дал результатов.
«И заодно покажи строку адреса отладчика в настройках отладки.» http://s018.radikal.ru/i513/1608/23/18e93a0aae1a.jpg
34 — 04.08.16 — 18:08
«Поиск в виндовс не дал результатов» // А, так у тебя клиент на хосте под управлением Винды. Я почему-то думал, что тоже Убунту…
Искать, например, в диалоге «О программе», там строка соединения написана.
Но скорее всего дело в виндовой файрволе, ставлю на это (отключи его в расширенной оснастке для всех трех видов сетевых расположений)
35 — 04.08.16 — 18:08
*в виндовом файрволе
36 — 05.08.16 — 09:17
(34) Брендмауэр отключен, я написал это в своем первом сообщении
37 — 05.08.16 — 09:44
(0) Какая конфа? В новых типовых всякое через фоновые запускается, надо включать автоподключение к ним.
38 — 05.08.16 — 10:20
(37) Самописная
39 — 05.08.16 — 14:35
ап
40 — 08.08.16 — 14:43
(36) Убеди меня в этом
41 — 09.08.16 — 09:30
42 — 09.08.16 — 11:20
(41)В службах попробуй полностью отключить Брандмауэр Windows
43 — 09.08.16 — 13:53
(42) Не помогло
44 — 09.08.16 — 21:30
(41) Так ты в домене. Ну телнет с линукса до своего хоста на разные порты поделай — будет коннект успешен?
45 — 11.08.16 — 10:51
(44) Да я дома пытался отладку подключить. Тоже не работает. А когда на работе отключил брендмауэр, то перестала работать отладка рабочих баз)))
46 — 26.08.16 — 13:56
проблема остается на последнем релизе 8.3.8.2027. в списках ошибок такая проблема отсутствует, но есть несколько других связанных с отладкой… проблему можно обойти установкой клиента и отладкой на самом сервере.
47 — 24.09.16 — 11:01
Пропишите ip-адрес и имя сервера в файле hosts.
Читайте ИТС «отладка прикладных решений»
48 — 24.09.16 — 11:25
(47) не получилось в hosts, прописываем на DNS сервере? ламерское решение! даже читать смысла нет.
пускай пилят по человечески уже. проблема реально существует. просто временное решение в (46).
49 — 24.09.16 — 12:29
(48) уже есть .2088. Может быть, поправили.
50 — 24.09.16 — 12:53
Столкнулся с описанной проблемой еще 8.3.7, думал проблема в docker, т.к. ubuntu 14.04, postgres и 1с установлены в контейнере docker.
Ключ -http проблему решил.
В моем случае добавлял параметр в supervisord.conf
command=/opt/1C/v8.3/x86_64/ragent -port 1540 -regport 1541 -range 1560:1591 -debug -http
Но отладка http иногда в процессе отладки, вещает весь сервер. Процесс dbgs дает почти 100% нагрузку на процессор. Иногда достаточно закрыть сеансы 1с и конфигуратор и предприятие, но чаще перезапуск контейнера docker.
ThinkingStone
51 — 24.09.16 — 17:38
(48) установка клиента на сервер ubuntu без графического интерфейса? Ну да, немного неудобно, но решение рабочее. А еще можно все списать на кривую платформу.
А можно взять и прочитать, а потом и проверить все, что написано на итс (а там ведь немного текста). Проверить порты клиента и сервера тем же телнетом, убедиться, что имена клиента и сервера резолвятся. Чудес не бывает. Убежден, что если к вопросу подойти вдумчиво, то все получится.
После установки сервера 1С на Linux у пользователей могут возникнуть проблемы при попытке подключиться к нему. Данные проблемы могут быть связаны как с настройками на сервер или клиентском компьютере, так и с настройками сетевой инфраструктуры. Рассмотри наиболее часто встречающиеся ошибки и методику поиска и исправления причин этих ошибок.
Оглавление:
1. Этот хост неизвестен / No such host is known
2. Ошибки соединения с сервером 1С/ рабочим процессом 1С
2.1. Попытка установить соединение была безуспешной.
2.2. Сервер 1С:Предприятия не обнаружен
2.3. Ошибка установки соединения
2.4. Методика устранения ошибок соединения с сервером 1С
Этот хост неизвестен / No such host is known
Пример полного текста ошибки:
Ошибки соединения с сервером 1С:Предприятия 8.3:
server_addr=tcp://sony2 descr=11001(0x00002AF9):
Этот хост неизвестен
line=1068 file=srcDataExchangeCommon.cpp
Ошибка при выполнении операции с информационной базой.
server_addr=tcp://1s-on-1c-1 descr=11001(0x00002AF9): No such host is known line=1068 file=srcDataExchangeCommon.cpp
Описание:
Ошибка может возникать как при работе с консолью администрирования 1С:Предприятия(добавление сервера, создание базы…), так и при запуске информационной базы.
Такая ошибка характерна, когда компьютер пользователя не обладает информацией о соответствии ip-адреса dns-имени сервера.
Решение:
Настроить DNS-адресацию или прописать адреса в файл hosts.
О том, как и почему это надо сделать — можно почитать тут Настройка DNS-адресации на сервере 1С.
В случае, если кажется, что все имена прописаны верно, необходимо:
1. Проверить еще раз. Скорее всего, где-то ошибка.
2. Сравнить, как хост прописан на самом сервере и на компьютере пользователя. Имена должны быть одинаковыми.
Часто ошибка связана с тем, указан в имени доменный суфикс или нет.
3. Проверить в консоли администрирования 1С: Предприятия — как у вас собран кластер 1С:Предприятия.
- Возможно, у вас в консоли сервера отображаются не по DNS-имени, а по IP-адресам.
- Возможно, клиент не сможет сопоставить IP-адрес DNS-имя(в случае, если сервер 1С находится в другой сети, и вы подключаетесь к кластеру напрямую).
Не правильно:
Правильно:
Необходимо удалить кластер. И собрать из консоли администрирования его заново.
Описанные далее ошибки могут возникать как при работе в консоле администрирования 1С, так и при запуске информационной базы.
Методика по решению всех приведенных далее ошибок — описана в конце этого подраздела ошибок соединения с сервером / рабочим процессом.
Попытка установить соединение была безуспешной
Пример полного текста ошибки:
Ошибка соединения с сервером 1С:Предприятия 8.3:
server_addr=tcp://son1c:1541 descr=192.168.0.101:1541:
Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера.
Ошибка соединения сервером – клиент не может подключиться к агенту сервера 1С, процессу ragent. Порт в сообщении 1541(по умолчанию):
Ошибка соединения рабочим процессом – клиент не может подключиться к рабочему процессу сервера rphost. Порт в сообщении может быть из диапазона 1560-1591(по умолчанию).
Ошибка соединения сервером – клиент не может подключиться к менеджеру сервера 1С, процессу rmgr. Порт в сообщении 1540(по умолчанию).

Сервер 1С:Предпрятия не обнаружен
Пример полного текста ошибки:
Сервер 1С:Предприятия не обнаружен
Не запущен ни один рабочий процесс. Соединение с информационной базой невозможно.
Такое сообщение можно увидеть если на сервере 1С не запущен ни один рабочий процесс rphost.

Ошибка установки соединения
Пример полного текста ошибки:
Ошибка установки соединения
Выполняется ожидание возможности запуска.
При появлении возможности, запуск будет выполнен автоматически.
Методика устранения ошибок соединения с сервером 1С
В данном случае необходимо понимать, что:
- Либо процессов нет;
- Либо не удается «увидеть» процессы в связи с отсутствием доступа;
- Либо происходит обращение по другому адресу.
1. Сначала проверим есть ли на сервере 1С в запущенные рабочие процессы rphost.
Или
Видим, что у нас rphost слушает порт 1560
Если не все процессы запущены смотрим как исправить тут Ошибки сервера 1С на Linux.
2. Если процессы запущены — проверим доступность рабочих процессов по портам, которые они «слушают».
С компьютера пользователя необходимо выполнить команду:
|
telnet server_address 1560 |
и другие порты, на которых есть rphost.
К причинам отсутствия доступа по данному порту можно отнести:
- Блокировка брадмауэром или другими подобными программами;
- Отсутствие доступа на уровне сети;
- Работающий selinux.
3. Проверяем dns-адресацию.
В частности:
-
-
- hosts на компьютере пользователя
-
(в Windows: C:WindowsSystem32driversetchosts);
-
-
- hosts на сервере 1С (в ОС Linux: /etc/hosts);
- реестр кластера 1С
-
(по умолчанию в ОС Linux: /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/1CV8Clst.lst.).
Ошибка может быть связана с несоответствием указания имени сервера
-
-
- у пользователя
- в реестре кластера серверов 1С:Предприятия.
-
Например, с различиями в указании имени сервера с/без домена.
Содержание
- Заметки из Зазеркалья
- Основные преимущества
- Отладка по протоколу HTTP
- Современная архитектура отладки
- Отладка мобильных приложений
- Изменение переменных, свойств объектов и асинхронные вычисления выражений
- Отладка в Development Tools
- Архитектура процесса отладки
- Идентификация информационных баз
- Типичные сценарии отладки
- Файловый вариант
- Клиент-серверный вариант
- Подключение предметов отладки
- Изменение переменных, свойств объектов и асинхронные вычисления выражений
- Отладка по протоколам HTTP и TCP/IP в 1С
- Предмет отладки
- Выбор протокола отладки
- Протокол отладки TCP/IP
- Подключение предметов отладки
- Протокол отладки HTTP
- Сервер отладки
- Подключение предметов отладки
Заметки из Зазеркалья
Реализовано в версии 8.3.7.1759.
Мы значительно переработали механизм отладки. Для этого было несколько причин. Во-первых, мы хотели предоставить вам возможность отлаживать все имеющиеся на сегодняшний момент приложения. Во-вторых, прежняя архитектура отладчика требовала изменений для того, чтобы соответствовать текущим тенденциям, и иметь возможность будущего развития. В-третьих, был необходим универсальный интерфейс отладки, с которым мог бы работать не только конфигуратор 1С:Предприятия, но и Development Tools.
Основные преимущества
Чтобы вы могли представить себе объём выполненных нами изменений, коротко перечислим основные преимущества нового механизма.
Отладка по протоколу HTTP
Прежний механизм отладки был основан на том, что отладчик, реализованный в конфигураторе 1С:Предприятия, напрямую взаимодействовал с предметами отладки (клиентскими и серверными приложениями). Это взаимодействие осуществлялось по протоколу TCP/IP.
Однако с выходом приложений 1С:Предприятия в Интернет, а особенно с появлением мобильных приложений, такой подход стал источником ограничений и неудобств. Далеко не всегда протокол TCP/IP позволяет отладчику «достучаться» до предметов отладки. Ведь они могут находиться вне локальной сети, в которой работает отладчик.
Поэтому в новом механизме в качестве транспортного протокола мы выбрали более «вездеходный» протокол HTTP, который, кстати, используют и клиентские приложения для подключения к информационным базам.
Современная архитектура отладки
Особенностью прежнего механизма отладки была необходимость подключения к информационной базе с помощью конфигуратора. В результате разработчик, выполняющий отладку, имел полный доступ ко всем административным функциям.
Новый механизм отладки перестал нуждаться в соединении с отлаживаемой информационной базой. Главное, что требуется теперь отладчику, это такая же конфигурация, которая работает у клиентов. Для её получения нет необходимости подключаться к отлаживаемой информационной базе. Вы можете загрузить её, например, из файла.
Отладка мобильных приложений
Благодаря использованию протокола HTTP, стала возможной отладка приложений, исполняемых мобильной платформой. Причём вы можете отлаживать любые контексты: клиентский, серверный, а также фоновые задания.
Изменение переменных, свойств объектов и асинхронные вычисления выражений
Теперь в процессе отладки вы можете изменять значения любых переменных, которые доступны для записи. Для быстрого просмотра и изменения локальных переменных мы реализовали отдельное окно. А само вычисление выражений, отображаемых отладчиком, теперь выполняется в асинхронном режиме.
Отладка в Development Tools
При создании нового механизма отладки мы реализовали новый, универсальный программный интерфейс взаимодействия с ним. Этот интерфейс использует конфигуратор 1С:Предприятия, и этот же интерфейс использует теперь и новая среда разработки 1C:Enterprise Development Tools. Таким образом, все возможности отладки доступны теперь и при работе в Development Tools.
Архитектура процесса отладки
Новая архитектура отладки выглядит следующим образом:
В отладке участвуют отладчик, предметы отладки и новый элемент — сервер отладки.
Прямой передачи информации между отладчиком и предметами отладки нет. Всё взаимодействие организуется через сервер отладки. Это основной элемент механизма. На сервере отладки организована очередь сообщений, через которую отладчик и предметы отладки передают информацию друг другу.
И сам отладчик, и предметы отладки взаимодействуют с сервером отладки по протоколу HTTP. Таким образом теперь неважно, где эти предметы отладки расположены.
Взаимодействие с сервером отладки выполняется по инициативе отладчика и предметов отладки. Для этого организуются дополнительные соединения. Их основное назначение — узнать, не появилась ли для них информация на сервере отладки. И если появилась, получить эту информацию.
Таким образом, взаимодействие получается одностороннее. Информация всё время передаётся с сервера отладки в отладчик, и в предметы отладки.
Идентификация информационных баз
В прежнем механизме для идентификации информационных баз использовалась строка соединения. Такое решение в некоторых случаях вызывало трудности с сопоставлением предметов отладки и конфигуратора. Потому что, во-первых, оно было регистрозависимым, а во-вторых, при отладке некоторых контекстов платформа формировала строку соединения автоматически. И она не всегда совпадала с той, которую вы указывали при подключении информационной базы в конфигураторе. Поиск и исправление таких ситуаций усложняли процесс отладки.
В новом механизме мы избавились от строки соединения. Теперь мы используем идентификатор информационной базы. В файловой информационной базе такой идентификатор генерируется при первом подключении клиентского соединения. В серверной информационной базе в качестве такого идентификатора используется идентификатор регистрации информационной базы в кластере.
Приятным дополнительным моментом здесь является то, что мы пока сохранили в платформе старый механизм отладки (в дальнейшем он может быть исключён). И вы можете пользоваться им при желании, или при необходимости. Так вот старый механизм мы доработали, и теперь он тоже использует идентификатор информационной базы, а не строку соединения.
Типичные сценарии отладки
С точки зрения прикладного разработчика типичные сценарии отладки не изменились. Единственным значительным отличием является то, что новый механизм отладки нужно включить. Потому что по-умолчанию он выключен.
Несмотря на это имеет смысл познакомиться с тем, что происходит теперь при запуске отладки. Потому что это может быть полезно вам в каких-то нестандартных сценариях работы.
Файловый вариант
Прежде чем начать отладку в файловом варианте, в настройках конфигуратора нужно указать, что вы хотите использовать новый механизм отладки — «Отладка по протоколу HTTP».
При этом конфигуратор автоматически предложит вам использовать локальный сервер отладки. С этим нужно согласиться и перезапустить конфигуратор.
Установленный вами способ отладки сохраняется между сеансами конфигуратора, но хранится он в разрезе информационных баз. Поэтому для другой информационной базы вам снова нужно будет его включить.
Теперь при старте конфигуратора, или при его перезапуске, платформа автоматически будет запускать ещё и сервер отладки. Это отдельное приложение dbgs.exe. Вы можете увидеть его в диспетчере задач.
В параметре ownerPID у него указан идентификатор того приложения, которому принадлежит этот сервер отладки. В данном случае это конфигуратор 1С:Предприятия.
Теперь, если из конфигуратора вы запустите отладочный сеанс 1С:Предприятия, он автоматически подключится к серверу отладки, и в конфигураторе вы увидите подключенные предметы отладки.
Если сеанс 1С:Предприятия был запущен без отладки, то, как и раньше, вы можете подключить его к отладчику. Только теперь нужно указывать адрес сервера отладки:
Этот адрес вы можете узнать из настроек предметов отладки:
Есть один непривычный момент, связанный с работой сразу с несколькими файловыми базами. В файловом варианте каждый конфигуратор с включенной отладкой http запускает свою копию сервера отладки на разных портах:
Поэтому если у вас открыты сразу несколько конфигураторов, то для подключения клиентского приложения к отладчику вам нужно выбрать из них правильный.
Клиент-серверный вариант
Прежде чем начать отладку в клиент-серверном варианте, вам нужно, как и раньше, запустить сервер 1С:Предприятия в режиме отладки, но указать, что для отладки будет использоваться новый механизм HTTP. Например, так:
ragent.exe -debug -http
При таком запуске сервера будет запущен и сервер отладки.
В параметре ownerPID у него будет указан идентификатор менеджера кластера 1С:Предприятия.
Теперь в настройках конфигуратора, как и в случае файловой базы, вам нужно указать, что вы хотите использовать новый механизм отладки — «Отладка по протоколу HTTP».
При этом конфигуратор автоматически предложит вам использовать уже сервер отладки кластера, а не локальный сервер. С этим нужно согласиться и перезапустить конфигуратор.
Дальше всё выглядит точно так же, как и в файловом варианте, за исключением того, что при старте конфигуратора серверной базы с включенной отладкой http локальный сервер отладки запускаться уже не будет.
Подключение предметов отладки
При запуске отладочных сеансов из конфигуратора, приложения выполняют автоматическое подключение предметов отладки (как клиентского, так и серверного) к серверу отладки.
При этом, как и раньше, у вас есть возможность настроить в конфигураторе автоматическое подключение предметов отладки независимо от того, каким образом они были запущены. Теперь эти возможности стали гораздо богаче.
Во-первых, теперь платформа предлагает вам для выбора все возможные предметы отладки.
А во-вторых, появился ещё один, более тонкий способ настройки. Это использование заранее созданных отборов.
Такие отборы вы можете использовать как при подключении предметов отладки, так и для просмотра доступных предметов отладки.
В отборе, кроме самих предметов отладки, вы можете указать конкретных пользователей, чьи сеансы вас интересуют, а также, если используется разделение данных, указать область информационной базы, которая будет отлаживаться.
Изменение переменных, свойств объектов и асинхронные вычисления выражений
Новый механизм отладки позволяет вам изменять значения переменных в процессе отладки. В прежнем механизме такая возможность отсутствовала.
Для удобного просмотра и изменения локальных переменных, что представляется наиболее частой задачей, мы реализовали окно «Локальные переменные».
Внешне оно очень похоже на привычное вам «Табло». Но, во-первых, это окно уже автоматически заполнено всеми локальными переменными, а во-вторых, значения переменных вы можете теперь менять.
Значения примитивных типов вы можете изменить прямо в ячейке «Значение»:
А для изменения других значений вы можете воспользоваться окном ввода выражений:
Приятным бонусом является то, что в этом окне полностью функционирует контекстная подсказка.
Точно таким же образом вы можете изменять и значения любых (не только локальных) переменных, свойств, доступных для записи. В окне вычисления выражений (которое вызывается командой Shift+F9) вы можете менять значения переменных как в ячейке «Значение», так и с помощью отдельного диалога.
Кстати, само вычисление выражений теперь выполняется асинхронно. Это означает, что конфигуратор заказывает вычисление предмета отладки. И некоторое время это вычисление ожидается на сервере. Если вычисление выполнено, то результаты сразу поступают в конфигуратор. Если вычисление выполняется продолжительное время, то результаты этих вычислений асинхронно приходят в конфигуратор позже. Такой подход позволяет вам не ожидать длительных вычислений в конфигураторе, и продолжить свою работу.
Источник
Отладка по протоколам HTTP и TCP/IP в 1С
Отладку можно проводить при помощи двух различных протоколов: по TCP/IP (вариант по умолчанию) и по HTTP, при этом оба протокола предоставляют достаточно похожие возможности. Собственно, эта статья и посвящена рассмотрению особенностей этих двух протоколов, также в ней рассказывается о том, что такое предмет отладки.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
Предмет отладки
Начнем с обсуждения такого понятия, как «предмет отладки». Предмет отладки — это контекст встроенного языка, который характеризуется такими параметрами как:
- имя пользователя;
- тип предмета отладки;
- номер сеанса;
- имя компьютера и номер порта при отладки по TCP/IP;
- имя информационной базы при отладке по HTTP.
Типы предметов отладки:
- тонкий клиент — код исполняемый в тонком клиенте;
- веб-клиент — код исполняемый в веб-клиенте;
- толстый клиент — код исполняемый в толстом клиенте;
- клиент (мобильное приложение) — код исполняемый в клиентском приложении, на мобильном устройстве (только HTTP);
- сервер — код исполняемый на сервере;
- сервер (файловый вариант) — код исполняемый на сервере, в файловом варианте;
- сервер (мобильное приложение) — код исполняемый на сервере, в файловом варианте, на мобильном устройстве (только HTTP);
- COM-соединение — код исполняемый через внешнее соединение;
- Web-сервис — код исполняемый при вызовах методов Web-сервисов;
- HTTP-сервис — код исполняемый при вызовах методов HTTP-сервисов;
- фоновое задание — код исполняемый в фоновом задании;
- фоновое задание (файловый вариант) — код исполняемый в фоновом задании (в файловом варианте);
- фоновое задание (мобильное приложение) — код исполняемый в фоновом задании (в файловом варианте) на мобильном устройстве (только HTTP).
Подключение предметов отладки зависит от выбранного протокола отладки и поэтому будет рассмотрено ниже.
Выбор протокола отладки
Выбрать протокол отладки можно в конфигураторе: Главное меню->Сервис->Параметры->вкладка «Отладка»:

При выборе варианта отладки по протоколу HTTP поля диалога становятся доступными для редактирования. Этот диалог может незначительно отличаться (доступностью полей и значениями по умолчанию) в зависимости от информационной базы.
Группа «Сервер отладки» позволяет указать, каким сервером отладки нужно воспользоваться:
- Использовать локальный сервер отладки — вариант в основном для файловых информационных баз, в дополнительных полях можно указать адрес сетевой карты (если их несколько), а также один или несколько диапазонов портов которые будут использоваться для отладки, например: 1560:1591, 7700-8000;
- Использовать удаленный сервер отладки — конфигуратор попытается подключиться к удаленному серверу отладки по указанному адресу и порту;
- Использовать сервер отладки кластера — используется сервер отладки кластера серверов, кластер серверов должен быть запущен в отладочном режиме.
Группа «Имя информационной базы» позволяет указать имя информационной базы, под которым отладчик зарегистрируется на сервере отладки. Если доступ к серверу отладки защищен паролем, то этот пароль можно указать в группе «Доступ».
Протокол отладки TCP/IP
При отладке по протоколу TCP/IP отладчик ищет доступные предметы отладки на текущем или указанном компьютере. Для корректной работы отладчика (если конечно речь идет не о файловой базе на одного пользователя) очень рекомендуется нормально настроить сеть — в частности DNS-сервер и доступность отладочных портов (по-умолчанию 1560:1591).
Подключение предметов отладки
Для выполнения отладки модуля нужно подключить предмет отладки. Подключенные и доступные для подключения предметы отладки, а также настройки отладчика и автоматического подключения можно увидеть в диалоге «Предметы отладки» (меню «Отладка»->»Подключение»):

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

Кнопка «Настройка…» открывается окно с настройками:

В этом окне можно изменить отладочные порты которые будет сканировать отладчик в поисках подходящих предметов отладки. Кроме этого можно узнать адрес отладчика (строка «Отладчик:»), этот адрес пригодится при различных видах отладки в файловых базах (подробнее об этом в следующей статье).
Некоторые типы предметов отладки остаются доступными для подключения очень непродолжительное время, в этом случае нужно воспользоваться настройками автоматического подключения предметов отладки:

Настройку отладки сервисов (Web, HTTP, OData) в файловой базе следует выполнять в диалоге публикации на веб-сервере (подробнее об этом в следующей статье).
Протокол отладки HTTP
Отладка по протоколу HTTP доступна начиная с версии технологической платформы 8.3.7. При этом для отладки клиент-серверной информационной базы сервер должен быть запущен в режим отладки по протоколу HTTP, о том как это сделать читайте в предыдущей статье серии.
Основное отличие отладки по протоколу HTTP заключается в наличии специального приложения — сервер отладки, который занимается координацией процесса отладки. Отладчик и предметы отладки общаются с сервером отладки по протоколу HTTP, поэтому нужно убедиться, что протокол HTTP не блокируется какими-либо прокси-серверами, брандмауэрами или чем-то другим.
Сервер отладки
Сервер отладки обычно запускается конфигуратором (в файловом варианте) или кластером серверов (если кластер запущен в режиме отладки).
Кроме этого сервер отладки может быть запущен вручную — для реализации нетривиальных сценариев отладки.
Сервер отладки (dbgs) находится в каталоге bin, параметр —help покажет информацию об имеющихся параметрах запуска (там все довольно понятно), пример запуска:
C:Program Files1cv88.3.13.1513bindbgs -a 192.168.0.170 -p 4000

Подключение предметов отладки
Как и в случае с отладкой по протоколу TCP/IP, для выполнения отладки по HTTP требуется, что бы предмет отладки был подключен. Управления предметами отладки все также происходит в диалоге «Предметы отладки» (меню «Отладка»->»Подключение»):

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

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

Для настройки автоматического подключения предметов отладки существует специальный диалог:

В левой части диалога можно указать типы предметов отладки, которые подлежат автоматическому подключению, а в правой — дополнительные отборы предметов отладки.
На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник
Одним из самых страшных сценариев для пользователя при работе в 1С является невозможность войти в информационную базу.
В этой статье мы:
- рассмотрим причины возникновения ошибок с информационной базой;
- дадим инструменты для анализа ситуации и исправления ошибки.
Содержание
- Причины возникновения ошибки
- Тестирование и исправление
- Группа переключателей Проверки и режимы
- Группа переключателей Тестирования
- Группа При наличии ссылок на несуществующие объекты
- Группа переключателей При частичной потере данных объектов
- Кнопка Выполнить
- Утилита chdbfl.exe
- Определение Платформы 1С
- Запуск утилиты chdbfl.exe
- Настройка проверки базы данных
Причины возникновения ошибки
Если копирование баз в архив выполнялось давно или вообще не выполнялось, ситуация становится близка к катастрофе. Приходится восстанавливать хозяйственные операции за большой период, а это всегда несет с собой риск появления новых ошибок.
Бухэксперт8 при работе с базой данных рекомендует делать архивные копии 1С не реже 1 раза в месяц, а также перед выполнением исправлений в базе и после закрытия месяца.
При запуске 1С выдается ошибка выполнения операции с информационной базой. Перезапуск программы не помогает, открыть базу данных для работы в ней — невозможно.
Причины, вызывающие эту ошибку, могут быть совершенно разными:
- несовместимая версия файла базы данных;
- файл базы данных поврежден;
- ошибка соединения с сервером 1С: Предприятия 8.3;
- переустановка баз на сервере;
- проблема с портами на сервере
- и т.д.
Ошибки такого уровня очень серьезны. А в случае возникновения их на сервере — однозначно требуют обращения к специалистам. И если организации, устанавливающие клиент-серверный вариант, рассчитанный на большое число пользователей, обычно имеют в штате системных администраторов и программистов, отвечающих за сервер, то пользователи, работающие на обычных файловых вариантах 1С, должны уметь самостоятельно разобраться с этой проблемой и решить ее.
Как правило, ошибка при выполнении операции с информационной базой в файловом режиме работы означает, что произошло повреждение файла базы данных. Причин может быть множество:
- сетевые проблемы при записи файла;
- неудачное копирование базы;
- отключение электропитания в момент работы программы;
- и т.д.
В данной статье мы рассмотрим возникновение этой ошибки для пользователей файловых 1С и дадим два инструмента решения проблемы:
- Тестирование и исправление;
- использование утилиты chdbfl.exe.
Обязательно сохраните поврежденный файл базы данных перед началом исправления ошибок, так как любые изменения структуры при тестировании имеют необратимый характер. Сделать копию можно обычным копированием файла 1Cv8.1CD.
Тестирование и исправление
Внутренняя обработка 1С Тестирование и исправление проверяет и исправляет структуру конфигурации и информационных данных.
Пошаговая инструкция Тестирования и исправления базы.
Шаг 1. Запустите 1С в режиме Конфигуратор.
Шаг 2. В конфигурации выберите пункт меню Администрирование — Тестирование и исправление.
Перед открытием формы тестирования программа напомнит о необходимости сделать копию базы перед проверкой. Если копия сделана — нажимаете на кнопку Продолжить.
Шаг 3. Настройка тестирования.
Форма тестирования предлагает несколько вариантов проверок и режимов, не зависящих друг от друга. Выполнить нужно все проверки в полном объеме, поэтому установите флажки напротив тех вариантов, где они не поставлены по умолчанию.
Форма тестирования и исправления информационной базы должна иметь следующий вид.
Рассмотрим основные группы переключателей проверки.
Группа переключателей Проверки и режимы
Позволяет сделать выбор между режимом, производящим только проверку информационной базы и режимом, производящим коррекцию обнаруженных ошибок.
Проверка информационной базы:
- проверка логической целостности информационной базы;
- проверка ссылочной целостности информационной базы.
Коррекция обнаруженных ошибок:
- реиндексация таблиц информационной базы;
- пересчет итогов;
- сжатие таблиц информационной базы;
- реструктуризация таблиц информационной базы.
Группа переключателей Тестирования
Варианты тестирования:
- Тестирование и исправление;
- Только тестирование.
Переключатель Тестирование и исправление выставлен по умолчанию, т. е. программа 1С будет не только искать ошибки, но и пытаться их исправить по заложенному разработчиками алгоритму.
При установке переключателя в положение Только тестирование будет произведен поиск ошибок без исправления. Просмотрев характер ошибок, пользователь сам примет решение: будет ли передавать ситуацию на автоматическое программное исправление или нет.
Группа При наличии ссылок на несуществующие объекты
Эта группа определяет, должна ли программа при обнаружении ссылок на несуществующие объекты:
- создавать объекты;
- удалять ссылки;
- не изменять.
По умолчанию установлен самый безопасный вариант Не изменять. При использовании первых двух вариантов в сложных случаях возможны искажения информации в базах 1С.
Группа переключателей При частичной потере данных объектов
Эта группа задает поведение программы, если было обнаружено, что данные объектов были частично потеряны, но оставшихся данных достаточно для того, чтобы восстановить потерянные. Пользователь самостоятельно выбирает вариант:
- создавать объекты;
- удалять объект;
- не изменять.
По умолчанию установлен самый безопасный вариант Не изменять. При использовании первых двух вариантов в сложных случаях возможны искажения информации в базах 1С.
Кнопка Выполнить
Перед нажатие на кнопку Выполнить, убедитесь, что 1С закрыта у всех пользователей. Проверка выполняется в монопольном режиме. Сохранение копии базы — обязательное условие перед проверкой.
При нажатии на кнопку Выполнить начинается процесс тестирования и исправления. По окончании проверки программа выдает системное сообщение об успешном окончании тестирования или список возможных проблем.
При просмотре сообщений обращайте внимание на сообщения типа:
- Значение должно быть… Сохранено значение…
Если сообщения нарушения целостности в отчете есть, запустите тестирование повторно после исправления, чтобы убедиться, что программа решила проблему: эти сообщения должны уйти.
Утилита chdbfl.exe
Утилита chdbfl.exe отвечает за проверку физической целостности базы. Именно она спасает пользователей в большинстве случаев при невозможности входа в базу данных.
Утилита включена в Платформу 1С и поставляется отдельно для каждой Платформы 1С.
Пошаговая инструкция работы с утилитой chdbfl.exe.
Определение Платформы 1С
Откройте на вашем компьютере папку с Платформой, на которой работает ваша база. Как правило, это последняя установленная вами Платформа 1С, но могут быть случаи, когда запуск происходит с более старых версий специально, поэтому этот момент нужно уточнить. Сделать это можно, например, в конфигурации по справке о программе: меню Справка — О программе.
Место установки Платформы на компьютере зависит от ее разрядности:
- 32-разрядные Платформы 1С устанавливаются в каталог С:Program Files (x86)1cv8
- 64-разрядные Платформы 1С устанавливаются в каталог С:Program Files1cv8
Запуск утилиты chdbfl.exe
В выбранной Платформе 1С перейдите в папку bin и запустите утилиту chdbfl.exe.
Настройка проверки базы данных
Для настройки проверки физической целостности необходимо:
- выбрать файл информационной базы, где выходит ошибка;
- установить флажок Исправлять обнаруженные ошибки.
После нажатия на кнопку Выполнить запустится проверка физической целостности файла БД.
Программа 1С при выполнении проверки должна быть закрыта у всех пользователей. Сохранение копии базы — обязательное условие перед проверкой.
При успешном окончании проверки будет выдано соответствующее сообщение о том, что проверка завершилась без обнаружения ошибок или список таблиц, в которых было выполнено исправление.
Если рассмотренные здесь методы не помогли войти в базу данных и при запуске 1С выдается ошибка выполнения операции с информационной базой, то для восстановления целостности информационной базы и исправления ошибок следует обратиться к специалистам 1С.
См. также:
- 1С удаление: указанная учетная запись уже существует
- Установка запрещена на основании системной политики 1С 8.3
- Обнаружено неправомерное использование данного программного продукта в 1С: как убрать
- Ошибка ввода пинкода. Пинкод не укомплектован в 1С 8.3
- Печатная форма недоступна 1С 8.3 при вызове внешней печатной формы
Если Вы еще не являетесь подписчиком системы БухЭксперт8:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.
Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Содержание
- Не работает отладка 1С
- 1. В списке предметов отладки не видны серверные сеансы
- 2. В списке предметов отладки не видны ни клиентские ни серверные сеансы.
- 3. В списке предметов отладки не видны клиентские сеансы.
- 4. Предмет отладки виден в конфигураторе и подключается, но точка останова все равно не срабатывает на строке кода.
- 5. Программный код выполняется в сеансе фонового задания.
- 6. Программный код выполняется в сеансе web-сервиса или http-сервиса.
- Подводим итоги
- [Расширение] Отладка внешних отчетов и обработок
- Не могу запустить Внешнюю обработку в отладчике
- Отладка в 1С
- Отладка внешних объектов
- Отладка внешних печатных форм
- Отладка внешних обработок табличных частей
- Отладка Web-сервисов, HTTP-сервисов и интерфейса OData
- Отладка регламентных/фоновых заданий
- Отладка мобильного приложения
Не работает отладка 1С
Разберем основные случаи когда и почему не работает отладка 1С.
1. В списке предметов отладки не видны серверные сеансы
Возможно сервер 1С запущен не в режиме отладки. Для того чтобы включить режим отладки, службу сервера 1С нужно запустить с ключом -debug. Пошаговый разбор как это сделать тут.
2. В списке предметов отладки не видны ни клиентские ни серверные сеансы.
Еще одной причиной отсутствия предметов отладки в списке является то, что предметы отладки находится не на том компьютере где запущен отладчик 1С. Актуально как для серверных так и для клиентских сеансов. Для решения проблемы обычно достаточно указать имя удаленного компьютера для поиска предметов отладки и обновить список.
Если и после этого список пустой, то нужно вбить вместо имени IP-адрес удалённого компьютера. В случае если это помогло, то рекомендуется прописать привязки имен и IP-адресов компьютеров в файле hosts. Если и это не помогло то необходимо проверить настройку фаервола, разрешены ли на сервере 1С (или удаленном клиенте) входящие соединения с компьютера где запущен отладчик на порты 1560-1591.
3. В списке предметов отладки не видны клиентские сеансы.
Причина как правил в том, что не разрешена отладка клиентского приложения. Для разрешения отладки клиентского сеанса достаточно в настройках программы в режиме 1С Предприятие указать в параметре «Отладка в текущем сеансе» — Разрешена TCP/IP.
4. Предмет отладки виден в конфигураторе и подключается, но точка останова все равно не срабатывает на строке кода.
Данная проблема актуальна при отладке по протоколу TCP. Причина в том что отладчик не может принимать входящие соединение из-за того что брандмауер или фаервол блокируют сетевое взаимодействие между отладчиком и предметом отладки. Тут нужно понимать, что отладчик не только устанавливает исходящее соединение с предметом отладки, но также должен иметь возможность принимать входящее соединение. Проблема решается отключением фаервола на компьютере где запущен отладчик либо открытием входящих соединений на портах 1560-1591 для исполняемого файла 1cv8.exe.
5. Программный код выполняется в сеансе фонового задания.
В типовых конфигурациях 1С широко использует запуск длительных процедур в фоновом режиме. Для этого на сервере запускается отдельный фоновый сеанс помимо основного серверного сеанса пользователя. Проблема решается включением автоматического подключения отладчика к фоновым сеансам. После этого как правило отладка начинает работать, если нет проблем с фаерволом описанных выше.
6. Программный код выполняется в сеансе web-сервиса или http-сервиса.
Как правило сеанс подключения к web-сервису http-сервису существует непродолжительное время и вручную подключиться к нему проблематично. Здесь так же достаточно включить автоматическое подключение к таким сеансам и отладчик сам будет находить и подключать предметы отладки, ваша задача только поставить точку останова в коде.
Подводим итоги
Как видим основные причины неработающей отладки 1С легко решаются. Пожалуй самой трудно-диагностируемой проблемой является работающий в сети фаервол, который может блокировать соединения между отладчиком и предметом отладки. В самом простом случае достаточно открыть порты для подключения как описано выше. В более сложном случае, когда отладчик и предмет отладки разделены NAT, может потребоваться проброс портов. Самый крайний случай когда из-за политик безопасности прямое сетевой взаимодействие по протоколу TCP между отладчиком и предметом отладки не возможно, следует рассмотреть вариант отладки по протоколу HTTP.
Напоследок стоит отметить, что как правило отладка производиться на тестовом сервере 1С, который запускается на портах отличных от типового диапазона 1560-1561. Поэтому, все изложенное выше в части номеров портов, следует рассматривать в контексте ваших реально используемых диапазонов портов.
Источник
[Расширение] Отладка внешних отчетов и обработок
Расширение работоспособно в толстом, тонком и веб клиентах, чуть ниже маленькая демонстрация:
Необходимо:
- БСП выше 2.2.2
- Платформа 8.3.12 и выше
- Конфигурация с отключенным режимом совместимости либо в режиме совместимости 8.3.12 и выше
Настройка :
. Отключить » Безопасный режим » у расширения и » Защиту от опасных действий » до кучи
Обратите внимание!
- При клиент-серверном варианте работы, запуск сервера должен быть произведен с ключом -debug
Ф айл указанной обработки должен быть физически доступен на сервере, помимо этого, у пользователя USR1CV8 должны быть права на каталог с файлом. - В веб-клиенте потребуется п араметр в строке URL-адреса ?debuge
- Отладка не сработает внутри функции «СведенияОВнешнейОбработке»
Входим в элемент справочника » Дополнительные отчеты и обработки » , переводим Публикацию в » Режим отладки » и указываем файл обработки, которую планируем отладить
Дополнительный функционал
Кнопка Добавить обработки призвана оперативно зарегистрировать обработку (без входа в элемент справочника, без лишних вопросов от системы безопасности) с одновременным переводом в режим отладки с заполненным путем до неё.
Кнопка Удалить обработки непосредственно (по возможности) удалит обработки из базы.
В списке справочника клик мыши по колонке Публикация развернет меню размещения данной публикации. Соответственно выбор из текущего меню спозиционирует на форме списка нужного объекта.
В том случае, если настройки видимости у публикации не заданы, а её имя пересекается с именем в конфигурации. Будет добавлен постфикс -= ВПФ =-


Тестировалось:
- Платформа: 1С:Предприятие 8.3 (8.3.13.1513)
- ERP Управление предприятием 2 (2.4.6.160)
- Комплексная автоматизация 2 (2.4.7.151)
- Управление торговлей, редакция 11 (11.4.8.57)
- Розница, редакция 2.2 (2.2.12.26)
- Бухгалтерия предприятия, редакция 3.0 (3.0.70.61)
- Управление нашей фирмой, редакция 1.6 (1.6.17.174)
- Зарплата и управление персоналом, редакция 3.1 (3.1.8.155)
Источник
Не могу запустить Внешнюю обработку в отладчике
Подскажите, пожалуйста, столкнулся с такой проблемой.
Создал внешнюю обработку, подключил к УТ 11, подключение прошло без проблем. При попытке выполнить команду обработки вылетает ошибка.
Создал в модуле формы обработки вызов той же самой команды при открытии формы. Запустил обработку через «файл»-«открыть» все сработало как нужно, т.е. ошибка именно связана с подключением через «внешние отчеты и обработки».
Начал смотреть отладчиком, поставил точку останова в общем модуле «Дополнительные отчеты и обработки», в процедуре «Выполнить обработку непосредственно». Процесс получения обработки из хранилища данных происходит успешно, ступор случается когда доходит до момента ВнешняяОбработка.ВыполнитьКоманду(). В этот момент стрелка отладчика просто исчезает, т.е. видимо она проваливается в модуль объекта внешней обработки, но этот модуль у меня не открывается, стрелки, которая показывает текущую строку выполняемого кода просто нет.
Насколько мне известно, в процессе выполнения 1С копирует файл внешней обработки в какой-то временный каталог и оттуда его открывает, но по адресу C:UsersUserAppDataLocalTemp я ничего похожего не нашел.
Может кто-нибудь сможет помочь, как мне попасть в модуль внешней обработки? Подскажите, пожалуйста, уже третий день ломаю голову, ничего не получается 🙁
PS В продолжение вопроса:
На Мисте подсказали поймать ошибку с помощью «остановки по ошибке». Попробовал сделать в обработке попытку с делением на ноль, попробовал и просто так остановить по ошибке, без изменений в обработке, вот что получается —
«Ошибка времени выполнения:
<ВнешняяОбработка.ВнешняяОбработка.МодульОбъекта(81)>: деление на 0 в модуле ВнешняяОбработка.ВнешняяОбработка.МодульОбъекта, строка 81.»
Курсор при этом встает на ОбщийМодуль.ДополнительныеОтчетыИОбработки, на строчке: ВнешняяОбработка.ВыполнитьКоманду(ИдентификаторКоманды); и самой стрелочки, которая показывает текущую строку нет.
Если не делать деления на ноль, то тоже появляется ошибка:
«Ошибка времени выполнения:
<ВнешняяОбработка.ВнешняяОбработка.МодульОбъекта(82)>: Ошибка при вызове метода контекста (Записать) в модуле ВнешняяОбработка.ВнешняяОбработка.МодульОбъекта, строка 82.»
Курсор позиционируется на том же месте общего модуля, стрелочка текущей строки так же не видна.
Источник
Отладка в 1С
В этой статье рассматриваются ситуации, в которых процесс отладки (или процесс запуска отладки) проходит каким-либо особенным образом.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
Отладка внешних объектов
Отладка обычных внешних обработок и отчетов, как правило, не вызывает трудностей — главное открывать в конфигураторе и предприятии один и тот же файл внешней обработки/отчета.
Отладка внешних печатных форм
Отладка внешних печатных форм отличается от отладки обычных внешних обработок. Это связано с тем что, во-первых, выполнение кода происходит не сразу после запуска печатной формы, а при вызове соответствующей процедуры, и, во-вторых, при вызове внешней печатной формы система создает временный файл и точки останова не срабатывают. Более подробно о внешних печатных формах можно прочитать в этой статье.
В обычном приложении внешняя печатная форма имеет реквизит «СсылкаНаОбъект» и функцию «Печать», которая вызывается без параметров. Следовательно наиболее простым вариантом будет создать форму обработки, вывести на эту форму реквизит «СсылкаНаОбъект» (что бы его можно было заполнить) и по нажатию кнопки (или при другом событии) вызвать процедуру «Печать». В этом варианте внешняя печатная форма превращается в обычную внешнюю обработку и отлаживается также.
Для управляемого приложения нужно сделать примерно тоже самое — эмулировать вызов функции «Печать», для этого создать форму обработки, добавим ей реквизит «СсылкаНаОбъект» (и выведем его на форму) и команду с примерно таким кодом:

Отладка внешних обработок табличных частей
Трудности при отладке внешних обработок табличных частей (внешних обработок заполнения объекта) возникают по той же причине, что и случае с внешними печатными формами. Подробнее о внешних обработках табличных частей можно прочитать в этой статье.
В обычном приложении внешние обработки табличных частей имеют экспортную функцию «Инициализировать» которой в качестве параметров передаются объект, имя табличной части и табличное поле объекта. Таким образом для отладки нам требуется добавить основную форму обработки, разместить на ней поле для выбора объекта и реализовать вызов функции «Инициализировать» с нужными параметрами.
Отладка внешней обработки заполнения в управляемом приложении немного отличается от внешних печатных форм, так как обработка заполнения уже может иметь основную форму, в этом случае можно создать еще одну форму (такую же как для внешних печатных форм), назначить ее основной и эмулировать вызов команды заполнения, например так:
Кроме этого имеется прекрасная обработка, которая помогает отлаживать внешние обработки заполнения: ссылка.
Отладка Web-сервисов, HTTP-сервисов и интерфейса OData
Для отладки Web-сервисов, HTTP-сервисов и интерфейса OData нужно разрешить соответствующую возможность при публикации сервиса/интерфейса на веб-сервере, например:

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

Напомню, что при клиент-серверном варианте работы сервер должен быть запущен в режиме отладки.
Отладка регламентных/фоновых заданий
Напомню, что регламентные задания — это механизм 1С, предназначенный для каких-либо действий по расписанию. А фоновое задание — это объект, который создается регламентным заданием и непосредственно выполняет требуемые действия. Стало быть в отладке нуждаются именно фоновые задания, а регламентные задания просто настраиваются (расписание, пользователь и тд.).
Для отладки фонового задания, так же как и в предыдущем разделе, нужно настроить автоматическое подключение предметов отладки. Для этого идем в меню «Отладка»-«Подключение…» , открываем окно настройки автоматического подключения и указываем, что нам нужно автоматически подключать фоновые задания:

При клиент-серверном варианте работы сервер должен быть запущен в режиме отладки. При файловом варианте работы база данных должна быть запущена в режиме предприятия.
Отладка мобильного приложения
Отладка мобильного приложения возможна только по протоколу HTTP. Хотя для устройств на Android-е возможен вариант с подключением по USB-кабелю и использованием Android Debug Bridge, но это частный случай. В общем же случае нужно переключиться на отладку по протоколу HTTP (подробнее об этом в предыдущих статьях цикла). Затем в настройках мобильного приложения нужно разрешить настройку и указать адрес отладчика, например так:

На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Источник




























































