1с управляемые формы отладка внешней печатной формы

Как отладить внешние печатных формы в 1С 8.3 управляемом приложении

Многие сталкиваются с проблемой отладки внешних печатных форм в 1С 8.3 (8.2) в режиме управляемых форм (да порой и в обычном тоже). Связано это в первую очередь с тем, что, запуская такую форму, система создает временный файл, и точки останова не срабатывают.

Можно, конечно, использовать готовые обработки для целей отладки, благо, найти их не составляет проблемы. Например: http://infostart.ru/public/73691/.

Но есть недостатки большинства таких решений:

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

Создание внешней обработки для отладки печатных форм на управляемом приложении 1С

Суть разработки заключается в том, что мы создадим обычную внешнюю обработку с макетом и процедурой печати, а в форму обработки будем передавать нужный объект.

Итак, создаем новую внешнюю обработку. Назовите ее как угодно.

Добавим в обработку реквизит «СсылкаНаОбъект». Тип реквизита может быть составным и зависеть от конфигурации. Я выбрал тип – документ «РеализацияТоваровУслуг». Такой документ есть и в торговле, и в бухгалтерии.

Также добавим форму с единственным полем «Ссылка» и кнопкой «Печать». Кнопку добавим позже, когда создадим команду. Еще добавим макет, в который будем выводить данные документа.

Команду назовем «ПечатьОбъекта» с одноименным действием на клиенте:

FORMA DLYA OTLADKI

Создадим простой Макет:

novyiy maket

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

Пример функции на сервере:

Для отладки ставим точку останова в нужном нам месте и запускаем обработку в режиме предприятия.

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

Важно: Если база данных находится на сервере, для отладки на сервере нужно запустить с параметром «-debug».

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

Создание внешних печатных форм в 1С 8.3 (Управляемое приложение) с нуля:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Отладка в 1С

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Универсальная отладка внешней обработки заполнения (типовые механизмы, без внешних файлов, расширений или вызова внешних файлов)

Буду краток, без излишней воды. Если будут вопросы, прошу писать в комментариях к публикации. Спасибо!

ЗАМЕТКА. В скриншотах использована ДЕМОНСТРАЦИОННАЯ база 1С: ERP релиз 2.5.5.104

Сама обработка будет подходить для любых релизов ERP.

Почему я так уверен?

Так как используется типовой код команды формы документа ЗаказКлиента, который не меняется от релиза к релизу.

А1. Создать обработку заполнения табличной части документа

А2. Обработку необходимо добавить как внешнюю обработку. В форме документа Заказ Клиента должен появится пункт меню Форма-Еще-Обновление цены в строке по виду цен

А3. При разработке обработки должен использоваться типовой код (форма документа, модуль документа, общие модули).

А4. Заимствование и изменение типового кода можно делать в модуле обработки (или в форме обработки).

А5. ЖЕЛАТЕЛЬНО, использование и изменение типового кода свести к минимуму (для того, чтобы обработка поддерживалась на максимальном количестве релизов и версий конфигурации).

Б. Демонстрирую выполнение задачи А по пунктам.

Б1.1. Создаем новую внешнюю обработку в конфигураторе.

Б1.2. Заполняем код в модуле обработки.

Код достаточно типовой, комментировать думаю излишне. На тему данного кода полно других публикаций.

Если появятся вопросы по коду, задавайте в комментариях к публикации.

69d9f2a26a433b6f6d36a008406bfbf6

Б1.3. В обработке добавляем реквизит Ссылка с типом = СписокЗначений

eaae19b9634eb7911595e2713e0c3491

Б1.4. Создаем форму обработки.

В форме обработки переносим реквизит формы Объект.ссылка на форму. Таким образом должно появится поле формы «Ссылка».

У реквизита формы «Объект.Ссылка» тип = СписокЗначений

6ee91cc4fc149c1739cadb583da40607

Б1.5. В коде формы обработки переопределяем процедуру ПриСозданииНаСервере

Важно не просто написать код. Важно в конфигураторе нажать на кнопку «Процедуры и функции» и выбрать нужную типовую функцию модуля формы.

6e21524ca5de14e55b059b04758a5efa

В данной процедуре мы заполняем реквизит Ссылка конкретным документом ЗаказКлиента.

При открытии формы обработки как внешний файл, будет автоматически выбираться данный документ

a8c86e10abf575b4f5b6632face4adfa

95c1995ca0f4e002d1ccae427dee2fbb

Б1.6. В коде формы обработки определяем процедуру ВыполнитьКоманду

В данную процедуру передается управление, когда данная обработка запускается из формы документа ЗаказКлиента как пункт меню.

Кроме того, мы будем программно передавать в нее управление с заполнение параметров.

52f040b0fbf10dfea26bbe61b48303d2

Объясняю по порядку.

Б1.7. Если данную обработку поместить во внешние обработки в режиме 1с Предприятие

439f0806a6ecea10eefd00910561f86d

756a238e69993a578d96d640c501a1a5

то в Заказе Клиента появится пункт меню меню Форма-Еще-Обновление цены в строке по виду цен

a33aa8578b63f838dfd69faa9e23494c

Теперь, если запустить обработку по клику на меню в форме документа, запустится код в форме обработки, в процедуре ВыполнитьКоманду(. ).

ПРОБЛЕМА в том, что такой код НЕ ОТЛАДИТЬ. Точки останова в конфигураторе срабатывать не будут!

В. КАК Сделать отладку в модуле обработки?

В.1. Мы будем запускать форму обработки как внешний файл в режиме 1С: Предприятие.

В.2. При открытии формы обработки будет срабатывать код процедуры ПриСозданииНаСервере

Будет открываться форма обработки с выбранным ЗаказомКлиента в поле формы Ссылка

95c1995ca0f4e002d1ccae427dee2fbb

В.3. У нас на форме есть кнопка «Выполнить команду».

Определим обработчик команды, которая вызывается нажатием на данную кнопку

9e772aa1cd52da3d0eafa0b3c21da632

Команда «Выполнить команду» (закладка Команды формы обработки) выполняет код процедуры «ВыполнитьКоманду1»

Почему именно такое наименование? Потому что процедура «ВыполнитьКоманду» уже зарезервирована типовым механизмом.

63c4ecf20a2782d48c3e8bc331828a32

В обработчике команды «ВыполнитьКоманду1» мы выполняем код:

dcefbf7919091078ab0e7af1ee76af56

1. Мы создаем и заполняем параметры для запуска типовой процедуры «ВыполнитьКоманду»

2. Мы создаем и заполняем Массив, в который помещаем ссылку на документ, который находится в поле Ссылка.

Этот документ мы могли перезаполнить вручную, либо выбрать несколько документов.

В.4. Далее выполнение кода передается в процедуру «ВыполнитьКоманду»

1. Данная процедура Может запускаться типовым механизмом (см. пункт Б1.7)

а также программным механизмом (пункт В.4.)

2. В коде процедуры мы должны сделать определенные телодвижения, чтобы запуск процедуры обоими методами ничем не отличался (был универсальным)!

838117ff24e2b35e7a12946c9799e6c6

1. В начале выполнения процедуры мы проверяем типовой реквизит ВладелецФормы.

2. Если данная процедура запущена типовым механизмом (см. пункт Б1.7) то ВладелецФормы = форма документа из которого запускается пункт меню.

3. Если данная процедура запущена программным механизмом (см. пункт В.4.), то ВладелецФормы = неопределено.

В этом случае, в режиме 1с Предприятие у нас открыта форма обработки.

Нам необходимо открыть форму документа (либо открыть существующую форму документа, если она ранее уже была открыта в 1с режиме предприятие).

После открытия формы, в переменную ФормаДок заполняется ссылка на данную форму.

4. После предыдущих пунктов в переменной ФормаДок у нас есть ссылка на форму документа.

ВАЖНО. САМОЕ ГЛАВНОЕ! ВОЗМОЖНА ОТЛАДКА КОДА!

Если поставить точку останова в коде и запустить обработку как внешний файл, то точка останова сработает!

Далее мы на выбор используем ПОДХОДЫ К РАЗРАБОТКЕ:

1. запускаем типовой код формы документа (экспортные процедуры и функции)

2. модуля документа (экспортные процедуры и функции)

3. либо заимствуем код документа в обработку.

Я в большинстве случаев использую подход 3. Потому что экспортных процедур очень мало (спасибо разработчикам типовых конфигураций). Изменять код формы документа или модуля я не практикую.

1. Находим нужный кусок кода или несколько кусков. Собираем нужный нам алгоритм с использованием типовых процедур.

Количество использованных процедур сводим к минимуму.

Для этого желательно найти кусок кода который выполняет большинство нужных операций.

2. Копируем текст Процедур в форму обработки.

3. Заменяем переменные.

Например. Если скопированный код из модуля формы то заменяем переменные

Объект на ТекОбъект (в него передаем данные Объект формы документа).

ЭтотОбъект на ФормаДок (передаем ссылку на форму документа)

Источник

Отладка внешних печатных форм документа для 1С: 8.1

Иногда очень надо отладить внешнюю печатную форму документа.
С помощью этой обработки вы сделаете это очень легко!

В данной обработки поставьте точку останова при нажатии на кнопку «выполнить».

Скачать файлы

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Еще проще во внешней печатной форме создать форму
на которой разместить реквизит обработки СсылкаНаОбъект.
В процедуре нажатия кнопки Выполнить пишем код
ТабДокумент = Печать();
ТабДокумент.Показать();

Обновление 25.04.12 20:32

Код открыт Не указано

a8770664008e09baa9c64b703668bfa6

См. также

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы «Режим сравнения форм») на примере ERP 2.5 Промо

Данная публикация является продолжением описания функционирования обработки «FormCodeGenerator » в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

21.12.2020 9849 27 huxuxuya 11

Интерактивная справка по объектам 1С (подключаемое расширение)

База знаний, подключаемая к объектам основной базы. Пополняется интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.

29.09.2020 15556 82 sapervodichka 45

Конвейер проверки качества кода

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

04.09.2019 37618 27 Stepa86 46

Вам нравятся запросы в 1С?

Речь не только о том, что простейший запрос с «легальным» оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать «в нагрузку» к тексту запроса. Все эти «Новый Запрос», «УстановитьПараметр» и последующие пляски с обработкой результата. Пора с этим заканчивать!

03.07.2019 28306 7 m-rv 91

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

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

17.08.2015 54693 170 ekaruk 32

Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом

Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями «Управление торговлей 10.3», «Управление производственным предприятием 1.3», «Комплексная автоматизация 1.1», «Бухгалтерия предприятия 2.0».

21.09.2018 31033 24 stvorl 1

Работа с публикациями «Инфостарт»

Работа с рублевыми публикациями на сайте «Инфостарт»: ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

13.09.2018 29088 14 RocKeR_13 16

HTTP Сервисы: Путь к своему сервису. Часть 3

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

27.08.2018 55311 68 dsdred 17

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ («001», «Новый товар») Промо

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

01.06.2018 37221 96 m-rv 58

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

09.08.2018 36873 31 informa1555 30

Работа с данными выбора

17.07.2018 68043 25 kalyaka 17

Источник

Отладчик внешних печатных форм (обычное и управляемое приложение)

Обработка предназначена для отладки внешних печатных форм (ВПФ) в обычном и управляемом приложении.

В Конфигураторе открываем ВПФ, ставим точку останова в модуле.

Запускаем обработка в Предприятии и заполняем данные.

выводится табличный документ.

Тестирование проводилось в:

Скачать файлы

Специальные предложения

f71a8c4e70c0ff03708038e2b0210df8

9c2808762ec294cd4c55532520b9c521

895fb1e0f7afc3c0ed0d73bf5ee9d9d0

egais promo

b34b292ed32e9501f98cc31df406353e

789363929b9f37ddc5641a069a5fe52e

5b19cd6c4494a88b2abefce64a1b7565

199e2be4fd21dd8f4209d8ec34616c76

Автор запретил комментарии

Обновление 12.02.20 20:07

См. также

Внешний регламент для 1С Промо

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

05.03.2020 8450 9 moolex 11

Конструктор запросов для пользователей

Конструктор запросов на языке 1С 8.3 (УФ) совместно с СКД, ориентированный для пользователей и бизнес аналитиков BI систем, доступный и понятный, результатом является текст запроса.

19.10.2021 748 2 serovmsk 0

JКоннектор (jc1c), Java

04.10.2021 877 1 kaliuzhnyi 4

Табличная часть как поле ввода

Табличная часть как поле ввода с программным добавлением строк.

20.09.2021 2959 4 harchenko_pavel 87

Подсистема «Показатели объектов» Промо

06.03.2021 6787 6 pila86 16

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с управляемые формы отбор по владельцу
  • 1с управляемые формы отбор в динамическом списке