Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
Вы уже открыли базу в режиме «1С:Предприятие» и хотите отладить, почему по кнопке «Заполнить» документ «Ведомость в кассу» подбирает не тех сотрудников или не подтягивает суммы. Как правильно начать отладку, не закрывая текущий сеанс?
Просто включить отладчик прямо в «1С:Предприятии» через меню «Сервис» и сразу ставить точки останова
Неправильно: полноценная отладка модулей (точки останова, пошаговое выполнение, просмотр переменных) выполняется из «Конфигуратора». В клиентском приложении можно лишь разрешить отладку для текущего сеанса, но подключение и управление отладчиком делается в «Конфигураторе».
Оставить сеанс «1С:Предприятие» открытым, разрешить отладку в параметрах этого сеанса, затем запустить «Конфигуратор» и подключиться к предмету отладки
Правильно: чтобы отлаживать уже запущенный сеанс, в нем нужно включить режим «Отладка в текущем сеансе» (обычно - «Разрешена, протокол TCP/IP»), а затем в «Конфигураторе» выполнить подключение к предмету отладки и работать с точками останова в нужных модулях (например, в обработчике заполнения «Ведомости в кассу»).
Обязательно закрыть запущенный сеанс, затем открыть базу в «Конфигураторе» и запустить отладку командой «Отладка → Начать отладку»
Неправильно: так действительно можно отлаживать, но закрывать уже работающий сеанс не обязательно. Если задача - отладить поведение именно текущего пользователя/сеанса (например, его настройки выплат, права, отборы), удобнее подключиться к нему без перезапуска.
Не закрывая сеанс, открыть «Конфигуратор» и нажать «Отладка → Начать отладку», чтобы он автоматически подцепился к открытому «Предприятию»
Неправильно: команда «Начать отладку» обычно запускает новый отладочный запуск клиентского приложения, а не подключается к уже работающему сеансу. Для действующего сеанса используется именно подключение к предметам отладки после разрешения отладки в самом сеансе.
Пояснение
Практика: как быстро отладить автозаполнение «Ведомости в кассу» в уже открытом сеансе.
1) Подготовьте «живой» сценарий.
Откройте «Ведомость в кассу», заполните шапку (организация, месяц выплаты, «Выплачивать», касса) и нажмите «Заполнить». Зафиксируйте, что именно не так: документ пустой, нет конкретного сотрудника, сумма меньше ожидаемой и т.д.
2) Разрешите отладку в текущем сеансе «1С:Предприятия».
В клиенте откройте параметры (обычно через «Сервис → Параметры») и включите «Отладка в текущем сеансе: Разрешена (протокол TCP/IP)». Важно: после применения настроек значение часто нельзя поменять в этом же сеансе, поэтому включайте осознанно.
3) Подключитесь из «Конфигуратора».
Откройте базу в режиме «Конфигуратор» и выполните команду подключения к предметам отладки (пункт «Отладка → Подключение/Подключиться…»). В списке доступных предметов появится ваш работающий сеанс - подключитесь к нему.
4) Куда ставить точки останова для «Заполнить».
Обычно логика автозаполнения ведомости вызывается командой формы документа и уходит в модули, которые:
- подбирают сотрудников по способу/месту выплаты (касса/банк);
- отбирают суммы «к выплате» за указанный месяц и вид выплаты;
- учитывают уже сформированные ведомости/выплаты (чтобы не задвоить);
- применяют отборы по организации, подразделению, кассе.
Поставьте точки останова в обработчике команды «Заполнить» формы «Ведомость в кассу» и в методах, которые формируют табличную часть.
5) Что смотреть в переменных и отборах при пошаговой отладке.
Проверяйте, какие параметры из шапки реально передаются в заполнение: «Месяц выплаты», «Выплачивать», «Касса», организация, отборы по подразделениям/сотрудникам.
6) Типовые причины, из-за которых ведомость не заполняется или сотрудник не попадает (и как это видно в отладке).
- Несоответствие способа/места выплаты типу ведомости: сотруднику задано «через банк», а вы формируете «в кассу» (или наоборот). В отладке это видно как отбор по месту выплаты, который исключает сотрудника.
- Неверно выбран «Выплачивать» или месяц выплаты: суммы «к выплате» не находятся, потому что ищутся не в том периоде/виде выплаты.
- По суммам уже есть ведомость/выплата: алгоритм не подтягивает уже выплаченное.
- Есть задолженность сотрудника перед организацией: итог «к выплате» может стать нулевым.
7) Мини-пример, как проверить гипотезу быстро.
Если сотрудник не попал в «Ведомость в кассу», откройте его карточку и проверьте настройку «Выплата зарплаты/способ выплаты». Затем повторите «Заполнить» и посмотрите в отладке, поменялся ли результат отбора.
Такой подход позволяет отладить именно «текущий» сеанс и точно понять, почему автозаполнение «Ведомости в кассу» срабатывает не так, как ожидается.