В этой статье рассматриваются ситуации, в которых процесс отладки (или процесс запуска отладки) проходит каким-либо особенным образом.
Кроме этого отмечу, что эта статья входит в небольшую серию статей об отладке в 1С:
- Как включить отладку на сервере 1С
- Отладка по протоколам HTTP и TCP/IP в 1С
- Инструменты отладки в 1С
- Отладка в 1С
Отладка внешних объектов
Отладка обычных внешних обработок и отчетов, как правило, не вызывает трудностей — главное открывать в конфигураторе и предприятии один и тот же файл внешней обработки/отчета.
Отладка внешних печатных форм
Отладка внешних печатных форм отличается от отладки обычных внешних обработок. Это связано с тем что, во-первых, выполнение кода происходит не сразу после запуска печатной формы, а при вызове соответствующей процедуры, и, во-вторых, при вызове внешней печатной формы система создает временный файл и точки останова не срабатывают. Более подробно о внешних печатных формах можно прочитать в этой статье.
В обычном приложении внешняя печатная форма имеет реквизит «СсылкаНаОбъект» и функцию «Печать», которая вызывается без параметров. Следовательно наиболее простым вариантом будет создать форму обработки, вывести на эту форму реквизит «СсылкаНаОбъект» (что бы его можно было заполнить) и по нажатию кнопки (или при другом событии) вызвать процедуру «Печать». В этом варианте внешняя печатная форма превращается в обычную внешнюю обработку и отлаживается также.
Для управляемого приложения нужно сделать примерно тоже самое — эмулировать вызов функции «Печать», для этого создать форму обработки, добавим ей реквизит «СсылкаНаОбъект» (и выведем его на форму) и команду с примерно таким кодом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | &НаСервере Функция ОтладкаНаСервере(ОбъектыПечати) ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); МассивОбъектов = Новый Массив; МассивОбъектов.Добавить(ОбъектыПечати[0].Значение); КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("СчетНаОплату"); ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода(); ОбработкаОбъект.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); МассивПечатныхФорм = ОбщегоНазначения.ТаблицаЗначенийВМассив(КоллекцияПечатныхФорм); Возврат МассивПечатныхФорм; КонецФункции &НаКлиенте Процедура Отладка(Команда) ОбъектыПечати = Новый СписокЗначений; ОбъектыПечати.Добавить(СсылкаНаОбъект); МассивПечатныхФорм = ОтладкаНаСервере(ОбъектыПечати); УправлениеПечатьюКлиент.ПечатьДокументов(МассивПечатныхФорм, ОбъектыПечати, ЭтаФорма); КонецПроцедуры |
Отладка внешних обработок табличных частей
Трудности при отладке внешних обработок табличных частей (внешних обработок заполнения объекта) возникают по той же причине, что и случае с внешними печатными формами. Подробнее о внешних обработках табличных частей можно прочитать в этой статье.
В обычном приложении внешние обработки табличных частей имеют экспортную функцию «Инициализировать» которой в качестве параметров передаются объект, имя табличной части и табличное поле объекта. Таким образом для отладки нам требуется добавить основную форму обработки, разместить на ней поле для выбора объекта и реализовать вызов функции «Инициализировать» с нужными параметрами.
Отладка внешней обработки заполнения в управляемом приложении немного отличается от внешних печатных форм, так как обработка заполнения уже может иметь основную форму, в этом случае можно создать еще одну форму (такую же как для внешних печатных форм), назначить ее основной и эмулировать вызов команды заполнения, например так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | &НаСервере Процедура ОтладкаНаСервере(СсылкаНаОбъект) ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); ОбъектыНазначения = Новый Массив; ОбъектыНазначения.Добавить(СсылкаНаОбъект); ПараметрыВыполнения = Новый Структура; ПараметрыВыполнения.Вставить("ДополнительнаяОбработкаСсылка", ОбработкаОбъект); ОбработкаОбъект.ВыполнитьКоманду("ЗаполнитьВсе", ОбъектыНазначения, ПараметрыВыполнения) КонецПроцедуры &НаКлиенте Процедура Отладка(Команда) ОтладкаНаСервере(СсылкаНаОбъект); КонецПроцедуры |
Кроме этого имеется прекрасная обработка, которая помогает отлаживать внешние обработки заполнения: ссылка.
Отладка Web-сервисов, HTTP-сервисов и интерфейса OData
Для отладки Web-сервисов, HTTP-сервисов и интерфейса OData нужно разрешить соответствующую возможность при публикации сервиса/интерфейса на веб-сервере, например:
После этого нужно настроить автоматическое подключение соответствующих предметов отладки. Для этого нужно выбрать пункт меню «Отладка»-«Подключение…», открыть окно настройки автоматического подключения и выбрать нужные предметы отладки, например:
Напомню, что при клиент-серверном варианте работы сервер должен быть запущен в режиме отладки.
Отладка регламентных/фоновых заданий
Напомню, что регламентные задания — это механизм 1С, предназначенный для каких-либо действий по расписанию. А фоновое задание — это объект, который создается регламентным заданием и непосредственно выполняет требуемые действия. Стало быть в отладке нуждаются именно фоновые задания, а регламентные задания просто настраиваются (расписание, пользователь и тд.).
Для отладки фонового задания, так же как и в предыдущем разделе, нужно настроить автоматическое подключение предметов отладки. Для этого идем в меню «Отладка»-«Подключение…» , открываем окно настройки автоматического подключения и указываем, что нам нужно автоматически подключать фоновые задания:
При клиент-серверном варианте работы сервер должен быть запущен в режиме отладки. При файловом варианте работы база данных должна быть запущена в режиме предприятия.
Отладка мобильного приложения
Отладка мобильного приложения возможна только по протоколу HTTP. Хотя для устройств на Android-е возможен вариант с подключением по USB-кабелю и использованием Android Debug Bridge, но это частный случай. В общем же случае нужно переключиться на отладку по протоколу HTTP (подробнее об этом в предыдущих статьях цикла). Затем в настройках мобильного приложения нужно разрешить настройку и указать адрес отладчика, например так:
На этом все, надеюсь, что эта статья была Вам полезна. Также напомню про другие статьи серии об отладке в 1С, ссылки на них можно найти в начале этой статьи.
Спасибо, полезная статья