1с как запустить отладку под другим пользователем
По умолчанию, при использовании клиент-серверного режима работы 1С-предприятия никакие серверные функции и процедуры не будут поддаваться пошаговой отладке. Система будет выполнять их «на сервере 1С 8.3″, такие процедуры не видны для клиентской машины.
Для включения режима отладки 1С в режиме клиент-сервер достаточно последовать простым инструкциям для каждой версии 1С:
Отладка на сервере для платформы 1С 8.1
Чтобы точки останова отрабатывали в серверных процедурах, необходимо:
- Остановить службу 1C Enterprise Server Agent.
- Запустить редактор системного реестра. Чтобы открыть редактор реестра, необходимо нажать Windows + R (или Пуск-Выполнить) и ввести в командную строку regedit.
- Найти ветку реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.1 Server Agent].
- Скорректировать атрибут «ImagePath»= , добавив «-debug».
- Запустить службу 1C Enterprise Server Agent.
Пример:
До включения:
«C:\Program Files\1cv81\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files\1cv81\server»
После включения отладки:
«C:\Program Files\1cv81\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -debug -d «C:\Program Files\1cv81\server»
Если не работает отладка в 1С 8.2 и 8.3
- Остановить службу 1C:Enterprise 8.2 Server Agent.
- Запустить редактор системного реестра. Чтобы открыть редактор реестра, необходимо нажать Windows + R (или Пуск-Выполнить) и ввести в командную строку regedit.
- Найти ветку реестра [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\1C:Enterprise 8.2 Server Agent\].
- Находим свойство «ImagePath»= , добавляем в строку «-debug».
- Записываем и запускаем службу.
Пример:
До включения:
«»C:\Program Files (x86)\1cv82\8.2.18.109\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files (x86)\1cv82\srvinfo»»
После включения отладки:
«»C:\Program Files (x86)\1cv82\8.2.18.109\bin\ragent.exe» -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d «C:\Program Files (x86)\1cv82\srvinfo» -debug»
После того как Вы включили отладку, можно ознакомиться с инструкцией по отладке кода в 1С.
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Отладка 1С — очень мощный и функциональный механизм платформы 1С 8.3, позволяющий быстро найти ошибки в программном коде (в других языках программирования это называется «дебаг», от английского «debug»).
Ниже рассмотрим основные методы использования механизма отладки в виде практической инструкции на конкретном примере.
Внимание! Если Вы используете клиент-серверный режим работы (на сервере), Вам необходимо включить отладку на сервере 1С Предприятия.
Запуск отладки в 1С
Самый простой способ запустить отладку в 1С — открыть 1С в режиме конфигуратор и из него запустить режим отладки в нужном режиме работы (тонком/толстом, управляемом/обычном):
Рекомендуем при рядовой разработке использовать режим отладки «Толстого клиента». Но в чистовом варианте всегда прогонять в режиме «тонкого» и «веб-клиента».
Отладка фоновых заданий 1С
Для того чтобы иметь возможность отладки фоновых заданий, необходимо зайти в меню «Отладка — Подключение». В открывшемся окне нажать кнопку «Автоматическое подключение»:
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
В этом окне Вы можете установить соответствующий флаг.
Установка точки останова (брейкпойнта)
Вторым этапом при отладке является установка точки останова (в других языках программирования — брейкпойнт).
Для примера я выбрал для отладки обработчик «При изменении» на форме документа Доверенность:
Для того чтобы установить точку останова, необходимо найти нужный программный код и кликнуть дважды на поле, слева от поля ввода кода (или нажать кнопку F9):
Чтобы увидеть список всех установленных, необходимо зайти в меню Отладка — Список точек останова (alt + F9):
Точка останова 1С с условием (синяя)
Помимо обычной точки останова в 1С есть еще один вид точек останова — с условием. Графически такая точка отображается синим цветом. Такая точка останова очень полезна, когда нужно отловить какую-либо определенную итерацию при обходе в цикле. Отладка включится в тот момент, когда выполнится определенное условие.
Например, остановим цикл на строке с номером 25:
Неактивная точка останова (серая)
Серая точка останова означает, что она не активна, система не будет останавливаться на такой точке. Сделать не активной её можно, нажав специальную кнопку на панели «Отключить точку останова» (shift+ctrl+F9):
Точка останова по ошибке
Система может остановиться по вызванной ошибке, для этого необходимо в меню Отладка — Остановка по ошибке установить соответствующий флаг:
Также остановка по ошибке имеет функционал, аналогичный точке остановки с условием, — она позволяет отфильтровать исключения с определенным текстом ошибки.
Пошаговое перемещение по программному коду 1С
После установки точки останова необходимо инициировать выполнение нужного программного кода, чтобы система вошла в пошаговое исполнения кода. Отображение стрелки свидетельствует о запуске режима пошагового выполнения кода:
Для того чтобы сделать шаг к следующей строке, необходимо нажать кнопку «F11″(Шагнуть в).
Если Вы пошагово проходите по строчкам программного кода и на строке присутствует процедура или функция, то Вы «провалитесь» внутрь этой процедуры (или функции).
Чтобы не «проваливаться», достаточно вместо F11 (Шагнуть в) выполнять переход по строкам кнопкой F10 (Шагнуть через), эта кнопка позволяет перешагивать через процедуры в программном коде.
Чтобы перейти с текущего положения курсора к нужному, минуя промежуточные строчки кода, необходимо установить курсор на нужной строке и нажать shift + F10 (Идти до курсора).
Анализ значений в режиме отладки 1С
Посмотреть значения определенных значений можно разными способами:
Отображение значения при наведении курсора
При наведении на переменную система «подсвечивает» значения переменной:
Использование «Вычислить выражение» или «Табло»
- Форму Вычислить выражение можно вызвать с помощью контекстного меню или нажатия быстрых клавиш — (Shift + F9), или меню (Отладка — Вычислить выражение).
- Табло вызывается с помощью быстрых клавиш Ctrl + Alt +W или из меню (Отладка — Табло).
Эти два метода анализа очень похожи, основные отличия в интерфейсе. Табло удобнее использовать для группы показателей, выражения — для одиночных.
Использовать эти методы очень просто. Достаточно ввести в табло имя нужной переменной. Большой плюс произвольных вычислений — Вы можете добавить в выражение свои данные.
Очень полезно использовать вычисление выражения и выполнить запрос, выгрузить в таблицу значений и посмотреть её.
Как узнать откуда вызвана процедура в отладке — Стек вызовов
Очень часто требуется понять, откуда была вызвана та или иная процедура или функция и с какими параметрами. Для этого в 1С предусмотрена специальная функция — «Стек вызовов». Для запуска Стека вызовов необходимо нажать горячие клавиши — Ctrl + Alt + C или через меню (Отладка — Стек вызовов).
С помощью него Вы можете подробно узнать, откуда была вызвана процедура и с какими параметрами:
Если Вас интересует оценка производительности при отладке — Замер производительности при отладке.
Смотрите также обзорное видео по отладке в 1С:
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Как часто вам приходится запускать отладку под другим пользователем? Сколько времени у вас занимает запуск "чужого" сеанса? Убрать (если имеется) у себя аутентификацию ОС, сбросить пароль пользователя и восстановить его потом и т.д. Есть простой и действенный код, который поможет запускать сеансы под другим пользователем без ручной смены параметров аутентификации.
Вступление
Натолкнуло на идею создания статьи отсутствие вменяемой, открытой информации о методике решения текущего вопроса на просторах "интернетов", удалось найти пару обработок, внешние подсистемы и т.д., некоторые из решений так вообще на иностранных, незнакомых рядовому конфигуральщику 1с(мне в их числе), языках в программном коде, ужас.
Покопавшись в том и другом, удалось понять алгоритм решения задачи и написать код, который был бы принят архитекторами, о чем и хочу рассказать, а точнее, как это работает и в чем могут быть сложности.
"Ларчик просто открывался"
Чтобы запустить приложение нам понадобится команда "ЗапуститьСистему" и строка параметров, которая будет заполнена следующим набором: имя приложения, параметр запуска приложения, имя базы, имя пользователя и пароль. На последнем стоит заострить внимание.
Как оказалось, имея даже роль "полные права", у вас не будет возможности посмотреть пароль пользователя используемый для ввода, он будет представлен в виде "QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8=", а для запуска нужен вид "123". Из-за этого мы не сможем запустить систему под текущим паролем пользователя, нам нужно будет установить свой пароль, запустить систему со своим паролем, а потом вернуть старый. В этом то и вся загвоздка.
!ЛикБез из комментариев! - это 2 хеша паролей: от регистрозависимого и от пароля в нижнем регистре. Т. е. установив для пользователя пароль "ReGiStR", вы также сможете войти и под паролем "registr". 1С (так же как и сбер) заботится об удобстве бабушек пользователей и снижает секьюрность
Пароль «Рыба-меч»
Это работает как-то так: в момент запуска окна аутентификации вы вводите цифры, платформа кодирует их и сравнивает с сохраненным, кодированным тем же алгоритмом, паролем пользователя. Это было выявлено опытным путем. Итак, чтобы получить этот параметр (пароль для ввода) мы можем установить какому-то пользователю новый пароль вида "123". Программа его кодирует, а мы любым из доступных способов (написать обработку, которая выведет на экран или в точке остановки найти в параметрах пользователя ИБ СохраняемоеЗначениеПароля, или на что у вас хватит фантазии) получим пароль вида "QL0AFWMIX8NRZTKeof9cXsvbvu8=,QL0AFWMIX8NRZTKeof9cXsvbvu8=". Теперь у нас есть связь кодированного и некодированного пароля для подстановки в нашем алгоритме.
5 простых шагов к успеху
Итак весь алгоритм от Элемента справочника "Пользователи" до запуска под ним системы строится в пять действий:
1. Получаем пользователя ИБ из "пользователя справочника". Для решения этого непростого задания создаем супер процедуру:
Как говорится, "куй железо пока горячо", сразу получим параметры: шифрованный пароль (СохраняемоеЗначениеПароля), может ли он "логиниться" стандартным путем (АутентификацияСтандартная) и его имя. А сам пользователь вовсе и не нужен больше.
!Важный момент! хранить полученный набор параметров в реквизитах формы. Для этого я выделил переменную с произвольным типом "ДанныеПользователя".
2. Создаем строку параметров запуска для процедуры "ЗапуститьСистему", используя имя, которое получили из пользователя ИБ и пароль "123". Каких-то сложностей быть не должно.
3. Сменим пользователю ИБ шифрованный пароль, на тот, который мы подсмотрели и возможность "логиниться" через 1с. Для этого лучше создать процедуру, которая по параметрам установит пользователю другой пароль, и запустить её.
Что делает обработка:
При открытии получает список пользователе ИБ. Программист выбирает вариант запуска: Пароль или Авторизация.
Далее для выбранного пользователя подменяется пароль - на заранее известный, при выборе смены авторизации - у выбранного пользователя устанавливается авторизация == авторицаии текущего пользователя. Запускается система. После измененые параметры возращаются обратно.
Работает в обычном и управляемом приложении.
Специальные предложения
(2) tormozit, У меня релиз, инструментов разработчика, был 2.49(кстати, респект Вам за них :)) - там, чтобы залогинется под пользователем создавался пользователь, затем он удалялся. В этой обработке этого нет. Просто подменяются параметры пользователя ИБ и запускается система. После запуска все возвращается на свои места.
(3) Действительно в ранних версиях этого инструмента был только такой способ, но позже появился и с изменением пароля.
(4) tormozit, Скачал последнею версию Инструментов разработчика. Различие с Вашей в реализации решения + нужны были управляемые формы. В мобильных инструментах этого нет (уф).
(0) Спасибо за идею, возьму на вооружение.
Только не понятно - зачем два способа. Думаю достаточно одного способа - временной подмены пароля.
KonstB , а вот косяков с восстановлением пароля быть не должно? Я к тому, что ничего нельзя обработкой испортить? Несколько похожих обработок видел, но, т.к. ваша с УФ - решил пользоваться ей =) Вот опасаюсь только использовать на клиентских базах.
(8) SeiOkami, Механизм:
1. У пользователя меняется пароль.
2. Запускается база под пользователем с измененным паролем.
3. Задержка (время задержки указано в шапке справа).
4. Восстанавливается исходный пароль.
Косяк может быть только в случае, если произошел сбой после пункта 1 и до пункта 4.
(9) SeiOkami, не удалось воспроизвести. ((
(10) gull22, Время в шапке стоит по умолчанию и зависит от "производительности", т.е. после того как подменился пароль у пользователя, идет команда на запуск системы, с подмененным паролем. База стартует. после истечения времени (указанного в шапке обработки) - восстанавливается пароль у пользователя.
Итого, если при запуске базы, время до начала проверки пользователя больше, чем в шапке обработки, то база запустится (попытается) под пользователем с исходным(не известным) паролем.
Когда писал обработку, дождаться завершения запуска системы не получилось. (луна не в той фазе была :))
Сейчас решение есть, но как-то лень.
Не пойму как работает. Затестил на УТ11 демо. Присвоил пользователю пароль, пытаюсь при помощи обработки зайти под ним. Открывается 1С, пользователь = тот, кто мне нужен, пароль - заполнен звёздочками. Но авторизация не проходит, т.к. пароль не верный. Ввожу его вручную - всё ок.
Информация для автора и пользователей. Сразу оговорюсь, я не программист, а пользователь.
На одной машине все работало "ОК", перешел на другую машину. При выборе исправления пароля обработка стала выводить пользователя для запуска, которые аутентифицировались операционной системой, и стала требовать для них пароль. Заводил qwerty, тогда обработка писала что неправильно определен пользователь или пароль. На этом моя попытка зайти под пользователем обрывалась. Оказалось, что для решения проблемы достаточно было в шапке обработки увеличить время ожидания до 30 сек. (установил "от балды").
Предлагаю автору дополнить обработку оценкой этого времени ожидания, или автоматизировать увеличение этого времени, если обработка выбирает пользователя и начинает требовать пароль.
Как запустить 1С в отладке под другим пользователем
Инструкция по запуску 1С 8.2 под другим пользователем
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Вот и всё, Вы запустили 1С от имени другого пользователя.
Как зайти в 1с под другим пользователем
Правильная настройка списка пользователей и их прав доступа в базу 1С:Бухгалтерия 8.3 (редакция 3.0) является необходимой при любом количестве людей, работающих с программой. Даже если с ней работаете только вы!
Такая настройка позволяет в дальнейшем ответить на такие вопросы, как "Кто внес те или иные изменения в базу", "Как дать к базе доступ только на просмотр для проверяющего", "Кто позволил помощнику изменить настройки учетной политики" и подобные им.
В третьей редакции такая настройка, на мой взгляд, стала проще и интуитивно понятнее. Сегодня я расскажу, как лучше настроить пользователей и их права. Постараюсь рассмотреть наиболее общий случай.
Итак, будем настраивать следующих пользователей:
- Администратор : пользователь, который обладает полными правами на базу и не имеет никаких ограничений. Не нужно использовать этого пользователя для ежедневной работы. Пароль от администратора следует давать программистам и администраторам, которые нам настраивают или обновляют базу. Так как под этим пользователем будут работать только они — мы в дальнейшем всегда сможем в журнале регистрации отделить их изменения в базе от работы других пользователей. Это бывает полезно в случае "разбора полётов".
- Главный бухгалтер : пользователь, который обладает правами не меньшими, чем администратор, но является самостоятельной ролью со своим паролем. Под этим пользователем будете работать вы сами.
- Бухгалтер : если у вас есть помощники или другие бухгалтеры в подчинении, то этот пользователь подойдет для них. Какие ограничения накладывает эта роль:
- Запрет на изменение параметров учета.
- Запрет на изменение учетной политики.
- Запрет на изменение плана счетов.
- Запрет на редактирование списка пользователей.
- Запрет на настройку счетов учета номенклатуры.
- Запрет на удаление помеченных на удаление элементов.
- Запрет на смену даты запрета изменения данных.
- Проверяющий : этот пользователь будет обладать только правами на просмотр базы. Ничего менять в ней он не сможет.
Администратор
1. Зайдите в раздел "Администрирование" и выберите там пункт "Настройки пользователей и прав" ( у вас другое меню? ):
2. В открывшейся панели выберите пункт "Пользователи":
3. По умолчанию, пользователь "Администратор" уже должен быть в этом списке. Сделайте двойной щелчок на нём, чтобы открыть его настройки.
4. Сделайте настройку, как на рисунке ниже. Пароль придумайте сами — его нужно повторить два раза. Обращаю ваше внимание, что у каждого из пользователей должен быть свой пароль. Осталось нажать "Записать и закрыть". Готово!
Главный бухгалтер
1. Вернитесь в список пользователей и нажмите кнопку "Создать" на панели инструментов.
2. Откроется окно с новым пользователем. Укажите настройки как показано ниже, только пароль придумайте свой.
4. В окне настройки прав укажите галки рядом с пунктами "Администратор" и "Главный бухгалтер". Осталось нажать кнопку "Записать". Готово!
Бухгалтер
1. Вернитесь в список пользователей и нажмите кнопку "Создать" на панели инструментов.
2. Откроется окно с новым пользователем. Укажите настройки как показано ниже, только пароль придумайте свой.
4. В окне настройки прав укажите галки рядом с пунктом "Бухгалтер". Осталось нажать кнопку "Записать". Готово!
Проверяющий
1. Вернитесь в список пользователей и нажмите кнопку "Создать" на панели инструментов.
2. Откроется окно с новым пользователем. Укажите настройки как показано ниже, только пароль придумайте свой.
4. В окне настройки прав укажите галки рядом с пунктом "Только просмотр". Осталось нажать кнопку "Записать". Готово!
Мы молодцы, на этом всё
Кстати, подписывайтесь на новые уроки.
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Допустим, что в конфигурации была обнаружена ошибка, но проявляется она только у определенных пользователей. Чтобы получить подробности, нужно запустить программу от имени одного из них. Но вот проблема! Мы не знаем пароль от учетной записи!
Решение
Решение на самом деле очень простое. Если у Вас есть доступ администратора, то войдя в конфигуратор и перейдя к списку пользователей информационной базы:
В настройка пользователя установите аутентификацию средствами операционной системы и выберите своего пользователя.
После этого вход под выбранным пользователем не составит труда. При запуске 1С:Предприятия программа даже не спросит логин/пароль, если Вы выбрали пользователя операционной системы, под которым зашли в текущий момент.
Вывод
Данный подход позволяет тестировать прикладное решение, выявлять ошибки под любым пользователям программы. Конечно, у Вас должны быть соответствующие права на просмотр/изменение пользователей информационной базы. И не забывайте возвращать настройки входа в информационную базы для пользователя, которого изменили!
Читайте также: