1с как отладить внешнюю обработку
Перейти к содержимому

1с как отладить внешнюю обработку

  • автор:

Отладка внешней обработки

или которая лежит в разделе "Дополнительные отчёты и обработки" ?

(12) (14) (13) Я с 1с знаком плохо. Я работаю в 1с упп, а учебные материалы мне давали книгу Радченко, я ахудел, когда увидел как там сильно различается работа с формами. По сему для меня вся система 1с с ветвлениями в духе ЗУП, ERP и прочих складывается в голве как мимик. Ты знаешь что это мимик, но всякий раз он выглядит по-разному.

Если подробнее дела с клиент сервером обстоят так. Есть основная база УПП, есть моя тестовая. Я свою отключаю от хранилища и там балуюсь, тестирую, работаю. С внешними обработками раньше работал, но необходимости в их отладке не было. Сейчас появилась. В самом коде формулировк &НаКлиенте &НаСервере нет. Отлаживаю я обычно запуская прогу из конфигуратора, в следствии чего она автоматически заходит в УПП под моей учеткой. Так вот, как отладить внешнюю обработку в этом случае, что тыкать, что писать, как запускать?

(30) Да, у меня .epf открываю там реквизит СсылкаНаОбъект и Макет . Ну и процедура печати макета. У меня задача найти откуда в доке Авансовых отчетов у одного товарища взялось 117 рублей грубо говоря понять чей косяк: проги или человека.

Изначально печать реализована в конфигурации я ее прочесал от и до и там нет ошибок. Потом запустил печать черзе "Печать" внизу формы, вылезло окошко с выбором макета и надписью "печатная форма замещена". Ругнулся, что два часа не то делал и стал рыскать че там в замещении (собствено там .epf описанный выше). А оно как две капли воды похоже на то что в доке, просто добавлено СсылкаНаОбъект где надо. Запросы тоже одинаковые (единственное что некоторые пустые и там, и там). Понял я одно, своими не шибко сведущими в 1с мозгами, — нужна отладка, чтоб посмотреть че оно там в запрос пишет и какие цифры куда сует.

Если знаете чем лучше решить эту проблему (вдруг отладка тут и нафиг не нужна) подскажите пожалуйста, молодой боец жаждит знаний.

(33) Сейчас наверное я унижу себя сам. А можно подробнее. Типа, я видел это решение в коде. Но у меня УПП, у меня не такой интерфес как тут https://wiseadvice-it.ru/o-kompanii/blog/articles/otladka-vneshnei-pechatnoi-formy-1s-8-3/ Как мне туда ссылку на объект пихать? Типа в данные забивать или в ТипЗначения? Дайте инструкцию для чайников, пожалуйста. И ещ у меня ошибка вылазит "недостаточно фактических параметров.

Хотя вот вызов:
Процедура ТестНажатие(Элемент)
Печать();
КонецПроцедуры

И вот куда обращаюсь:
Функция Печать() Экспорт

1) Пастим код модуля обработи
2) Пастим код твоей формы (то что ты написал)

Отладка внешней обработки

Использование внешних обработок — довольно популярный механизм расширения функциональности стандартной конфигурации, который часто используют разработчики. Кроме того, специалистам приходится самостоятельно осуществлять их дальнейшую поддержку, это же Ваша обработка и компания 1С за Вас этого делать не будет. Разумеется, во время написания внешней обработки и в дальнейшем при ее сопровождении возникает необходимость отладки и исправления ошибок (куда же без них). Предлагаю следующую технологию, которая, с моей точки зрения, упрощает этот процесс.

Сразу скажу, что особенность данного способа в ускорении процесса отладки и отсутствии внесения каких-либо изменений непосредственно в исходном коде стандартной конфигурации. Рассмотрим весь процесс на примере 1С 8 ЗУП 3.1.

1. Изменение стандартной загрузки внешней обработки через расширение

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

Создаем новое расширение через меню «Конфигурация»→«Расширение конфигурации» 1С 8.3 →«Действия»→«Добавить». Новое расширение я так и назвал «ОтладкаВнешнейОбработки».

Далее в дереве основной конфигурации находим «Общие модули» 1С 8.3→«ДополнительныеОтчетыИОбработки», в котором есть два интересующие нас объекта:

Добавляем их в наше расширение методом «Вместо» и, соответственно, копируем в расширение все их содержимое.

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

Напомню, что для быстрого копирования полного имени файла достаточно в «Проводнике» щелкнуть правой кнопкой мышки при нажатой клавише «Shift».

Далее ищем то место в конце модуля функции 1С, которое нам необходимо откорректировать. Вот оно:

Заменяем этот текст следующим:

Замечу, что имя обработки «НашаОбработка» то же, что прописано в главном окне редактирования обработки:

Далее в процедуре «ПриПолученииРегистрационныхДанных» необходимо заменить этот код:

на аналогичный предыдущему:

Это весь подготовительный этап.

2. Подключение обработки к основной конфигурации 1С

Эта процедура выполняется стандартными средствами. В стандартной конфигурации 1С 8 ЗУП 3.1, например так: «Администрирование»→«Печатные формы, отчеты и обработки»»→«Дополнительные отчеты и обработки»→«Добавить из файла. ».

Далее нажимаем кнопку «Выполнить» и приступаем к отладке. В нужном месте ставим точку останова, и при ее достижении система проваливается в код модуля 1С.

Замечу, что при внесении изменений достаточно сохранить (Ctrl + S) и перезапустить только обработку. Перезагружать всю конфигурацию не нужно. Теперь, после внесения изменений в модуль «ДополнительныеОтчетыИОбработки» система всякий раз будет заново загружать ваш файл с обработкой 1С, что гораздо быстрее перезагрузки всей конфигурации.

При первом старте после каждого изменения и отладки внешней обработки 1С система «предупредит» вас об огромной опасности использования посторонних обработок, а потом «попросит» выполнить обработку еще раз. Нажимаем «Выполнить» повторно и все работает.

По окончании работы не забудьте отключить расширение, сняв галочку «Активно» в окне расширений. Иначе система не выполнит никакую другую обработку!

Отладка в 1С

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

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

Отладка внешних объектов

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

Отладка внешних печатных форм

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

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

Для управляемого приложения нужно сделать примерно тоже самое — эмулировать вызов функции «Печать», для этого создать форму обработки, добавим ей реквизит «СсылкаНаОбъект» (и выведем его на форму) и команду с примерно таким кодом:

Форма обработки

Форма обработки

Отладка внешних обработок табличных частей

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

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

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

Кроме этого имеется прекрасная обработка, которая помогает отлаживать внешние обработки заполнения: ссылка.

Отладка Web-сервисов, HTTP-сервисов и интерфейса OData

Для отладки Web-сервисов, HTTP-сервисов и интерфейса OData нужно разрешить соответствующую возможность при публикации сервиса/интерфейса на веб-сервере, например:

Включение отладки при публикации сервиса/интерфейса

Включение отладки при публикации сервиса/интерфейса

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

Настройка автоматического подключения

Настройка автоматического подключения

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

Отладка регламентных/фоновых заданий

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

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

Настройка автоматического подключения

Настройка автоматического подключения

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

Отладка мобильного приложения

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

Разрешаем отладку и указываем адрес отладчика

Разрешаем отладку и указываем адрес отладчика

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

Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

УжасноПлохоНеплохоХорошо Отлично(оценок: 6, средняя оценка: 5,00 из 5)

Отладка обычной внешней обработки.

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

Отладка внешней печатной формы.

Отладка внешней обработки заполнения табличных частей.

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

Теперь запустим ее из режима предприятие. Т.е. вызовем подбор из какого-нибудь документа. Получим ошибку.
Нажмем «Подробнее»-«Конфигуратор».

В этом временном файле можно ставить точки останова и отлаживать.

Далее убираем ошибку, сохраняем. Устанавливаем обработку без ошибок и отлаживаем через этот временный файл.

  • Главная />
  • В помощь 1с программисту />
  • Отладка внешней обработки. Отладка внешней обработки заполнения табличных частей 8.2

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *