1с обычные формы запуск внешней обработки

Программирование в 1С для всех

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

Открыть форму обработки 1С

Начнем с того, что саму по себе открыть программной обработку нельзя. Можно открыть какую-либо из форм обработки. Для программного открытия управляемой формы обработки необходимо использовать метод ОткрытьФорму.

В первой статье, в которой мы начали знакомиться с обработками в 1С, я создал обработку «Обработка для примера» с формой.

В этой статье я покажу, как открыть программно форму этой обработки из другой обработки «Обработка1». Для этого у Обработки1 я создал управляемую форму и команду формы.

1 3

В клиентском обработчике команды, напишем код, который будет открывать основную форму обработки.

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

2 3

После, в результате выполнения команды, в отдельном окне будет открываться форма обработки «Обработка для примера».

3 3

Открыть форму внешней обработки 1С

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

Разберем пример. Пусть, у внешней обработки будут две формы: Основная и Дополнительная.

4 4

На основной форме создадим команду «Открытие дополнительной», при выполнении которой будет открываться дополнительная форма.

5 4

У этой команды будет клиентский обработчик события, со следующим кодом:

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

6 3

Открыть внешнюю обработку 1С

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

Разберем эту задачу. Откроем внешнюю обработку из обработки, которую создали в предыдущей статье, и с которой работали уже в этой — «Обработка 1».

В этой обработке создадим команду, при выполнении которой откроется форма внешней обработки.

7 3

В форме обработки напишем следующий код:

Код работает, начиная с платформы 8.3.15.

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

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

8 3

Если файл будет выбран, внешняя обработка откроется.

9 3

Статьи про открытие форм:

Статьи по конфигурированию в 1С:

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

1C %D0%B2 %D0%B6%D0%B5%D0%BB%D1%82%D0%BE%D0%BC %D1%86%D0%B2%D0%B5%D1%82%D0%B5 3D

Книга написана понятным и простым языком — для новичка.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

1C taxi blog

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Источник

Выполнение внешней обработки по расписанию для управляемого и обычного приложения

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

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

создать внешнюю обработку (в моем примере даже не буду создавать форму),

в модуле внешней обработки разместить следующую процедуру:

далее идут процедуры и функции, необходимые для выполнения вашего алгоритма:

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

9fb64f10a647a10b6a3c8cf2425e671f

проверяем журнал регистрации, чтобы убедиться в выполнении нашей обработки:

7bf311a3a2b7ea84eed931fa5fcd9108

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

Возьмем какую-нибудь типовую конфигурацию на обычных формах, например УПП.

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

c220f77f4f19c394cfc7a35c6c09d60e

в модуль формы добавим следующий код, для обработки изменения расписания на форме:

Теперь касаемо БСП, берем за основу подсистему дополнительных отчетов и обработок, и адаптируем ее под обычное приложение, поместим в общий модуль ДополнительныеОтчетыИОбработки, рабочий код выглядит следующим образом:

Добавим подписку на событие ПриЗаписиВнешнейОбработки для события ПриЗаписи, в качестве обработчика будет выступать ДополнительныеОтчетыИОбработки.ПриЗаписиВнешнейОбработки:

ff3c440c710e08b15fcdd57fcb029748

Добавим регламентное задание без расписания, назовем ЗапускДополнительныхОбработок, с его помощью и будем запускать внешние обработки, в качестве метода укажем ДополнительныеОтчетыИОбработки.ПриЗаписиВнешнейОбработки:

5e17e75eb80787ba7a2aa0bc5f584876

А теперь создадим, какую-нибудь внешнюю обработку, которую хотим запускать по расписанию, для этого в модуле обработки обязательно наличие следующей процедуры:

Теперь запустим конфигурацию, добавим внешнюю обработку и посмотрим, что получилось, появилась настройка расписания:

55b3a3c87ec40939a4d901be681162ea

Проверяем через консоль заданий, и видим, что добавилось регламентное задание с названием нашей внешней обработки:

4b2a30c54a49a1faeb79b6a11b7a4d8c

Источник

Внешние обработки, печатные формы, обработки по заполнению табличных частей

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

Общее описание

Механизм предназначен для подключения (без изменения конфигурации):

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

Для реализации механизма ВПФО используется справочник «Внешние обработки».

Для справочника предусмотрены специализированные реквизиты*:

ПРИМЕЧАНИЕ
Полный перечень реквизитов будет описан ниже, в разделе Техническая реализация механизма «Внешние обработки, печатные формы, обработки по заполнению табличных частей»

Для удобства, формы списков ВПФО вызываются раздельно, с предустановленным отбором по реквизиту «Вид обработки», из подменю «Сервис».

Добавлять и изменять ВПФО в базе данных может пользователь, обладающий правом администрирования дополнительных форм и обработок. Это отдельная роль в конфигурации.

Для остальных пользователей назначаются права на чтение(использование) и запись(изменение) по каждому элементу справочника ВПФО.

Преимущества использования механизма ВПФО перед механизмом платформы открытия внешних обработок:

Описание видов справочника ВПФО и требования к подключаемым внешним обработкам

Рассмотрим каждый вид ВПФО по отдельности.

Произвольная обработка

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

Открытие произвольных обработок в форме списка производится при выборе элемента ВПФО с видом «Произвольная обработка». При этом, производится сохранение двоичных данных из реквизита «Хранилище внешней обработки» на диск во временный файл. После этого, у сохраненной внешней обработки открывается основная форма.

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

Обработка для заполнения ТЧ объектов

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

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

Перед открытием формы объекта в командных панелях табличных полей (источником данных для которых является табличная часть объекта), которым соответствуют определенные строки в справочнике ВПФО, программно добавляются пункты в подменю «Заполнить» (если подменю «Заполнить» отсутствует на командной панели, оно создается).

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

Инициализировать (Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта)

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

Обработка так же может иметь в своем составе макет «Параметры_Авторегистрации», используемый для автоматического заполнения принадлежности печатной формы в справочнике «Внешние обработки». Макет должен состоять из 2-х колонок – «полное имя объекта» и «имя табличной части».

Пример макета Параметры_Авторегистрации:

Внешняя печатная форма

Для подключаемых внешних печатных форм указывается:

Для каждого типа объекта дополнительно можно указать:

Вызов диалога настройка условий отбора осуществляется при начале выбора значения в колонке «отбор»:

fieldchoice

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

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

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

Для сохраненной внешней обработки:

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

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

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

Пример макета Параметры_Авторегистрации:

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

Техническая реализация механизма «Внешние обработки, печатные формы, обработки по заполнению табличных частей»

В базе данных внешние обработки, печатные формы, обработки по заполнению табличных частей хранятся в справочнике «Внешние обработки». Справочник имеет следующую структуру:

structure

ТабличнаяЧасть.Принадлежность. Хранит типы объектов, для которых задается ВПФО и прочие описанные ниже параметры. Табличная часть используется для элементов с видом обработки: «Печатная форма» или «Заполнение табличных частей».

Реквизиты табличной части:

** Используется только для элементов с видом обработки: «Заполнение табличных частей»
*** Используется только для элементов с видом обработки: «печатная форма».

Подключение дополнительных печатных форм к формам объектов конфигурации

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

Подключение обработок по заполнению табличных частей к формам объектов конфигурации

Для обеспечения подключения механизма в форме объекта должны присутствовать следующие процедуры и функции:

Источник

Как программно открыть внешнюю обработку, внешнюю печатную форму в 1С

Для работы с внешними обработками (а внешняя печатная форма тоже является внешней обработкой) существует объект ВнешниеОбработки.

Рассмотрим два возможных случая:

Внешняя обработка хранится на диске отдельно от информационной базы

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

Открытие формы внешней обработки

Для программного открытия формы внешней обработки в 1С используется функция ПолучитьФорму() объекта ВнешниеОбработки. Функция имеет несколько параметров. Рассмотрим простое открытие основной формы обработки:

Для открытия неосновной формы внешней обработки необходимо указать ее имя.

Открытие внешней обработки как объекта

Для того чтобы получить внешнюю обработку как объект используется функция Создать() объекта ВнешниеОбработки.

По умолчанию все обработки открываются в безопасном режиме. Чтобы его отключить, используются следующие параметры:

Внешняя обработка или печатная форма сохранена в информационной базе

Во многих конфигурациях существует возможность сохранять внешние печатные формы и обработки непосредственно в информационной базе. Для этого используется справочник ВнешниеОбработки. Сама внешняя обработка хранится в виде двоичных данных либо в реквизите ХранилищеВнешнейОбработки, либо в табличной части Принадлежность в реквизите ХранилищеВнешнейОбработки.

Для открытия внешней обработки нужно:

//Для внешней печатной формы. СсылкаНаОбъект содержит ссылку на элемент, которому принадлежит печатная форма

Источник

Как создать внешнюю обработку в 1С 8.3 (управляемые формы)

Рассмотрим в данной статье пошаговую инструкцию по созданию внешней обработки в 1С 8.3 в режиме управляемого приложения, соответственно, будем использовать управляемые формы. А самое главное — мы научимся подключать её к механизму «внешних обработок» конфигураций 1С, построенных на библиотеке стандартных подсистем версии 2.0 и новее.

Задача будет следующая: создать простейшую внешнюю обработку, которая будет выполнять групповое действие над справочником «Номенклатура», а именно, устанавливать выбранный процент ставки НДС для указанной группы номенклатуры.

Включение механизма внешних обработок в программе

Для этого сразу произведем необходимую настройку в программе (рассматривается конфигурация 1С 8.3: «Бухгалтерия предприятия 3.0» на управляемых формах).

Заходим в меню «Администрирование» и по ссылке «Печатные формы, отчеты и обработки» переходим в настройки. Здесь нужно установить флажок «Дополнительные отчеты и обработки»:

vklyuchenie v konfiguratsii dopolnitelnyih otchetov i obrabotok

Установка данного флажка дает нам возможность использовать внешние обработки.

Создание новой внешней обработки в 1С 8.3 на примере

Теперь переходим в конфигуратор. В меню «Файл» выбираем «Новый…». Откроется окно выбора вида создаваемого файла. Выбираем «Внешняя обработка»:

vyibor vida dokumenta

Откроется окно новой внешней обработки. Сразу зададим ей имя. Оно будет предложено при сохранении обработки на диск:

ukazanie naimenovaniya novoy obrabotki 1S

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

sozdanie formyi obrabotki

На форме у нас будет два реквизита:

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

Очередность реквизитов можно менять стрелками «Вверх» – «Вниз»:

Raspolozhenie e%60lementov na forme

Осталось добавить кнопку «Установить». В управляемых формах нельзя просто так добавить кнопку на форму. Даже если добавить её в структуру элементов формы, на самой форме её видно не будет. Кнопку обязательно нужно связать с командой, которую она будет выполнять. Переходим к закладке «Команды» и добавляем команду «УстановитьСтавкуНДС». В свойствах команды создаем действие. Обработчик команды выбираем «На клиенте». Команду можно добавить на форму также простым «перетаскиванием» в раздел с элементами формы.

sozdanie komandyi na upravlyaemoy forme 1S

В модуле формы будет создана одноименная процедура. В ней вызовем процедуру на сервере:

В процедуре на сервере напишем небольшой запрос и действия, связанные с установкой ставки НДС:

Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ (&ГруппаНоменклатуры)
| И НЕ Номенклатура.ПометкаУдаления
| И НЕ Номенклатура.ЭтоГруппа»;

Запрос.УстановитьПараметр(«ГруппаНоменклатуры», ГруппаНоменклатуры);
РезЗапроса = Запрос.Выполнить();
ВыбДетЗаписи = РезЗапроса.Выбрать();

Пока ВыбДетЗаписи.Следующий() Цикл

СпрНомОбъект = ВыбДетЗаписи.Ссылка.ПолучитьОбъект();
СпрНомОбъект.СтавкаНДС = ВыбСтавкаНДС;

Попытка
СпрНомОбъект.Записать();
Исключение
Сообщить(«Ошибка записи объекта «»» + СпрНомОбъект + «»»!
|» + ОписаниеОшибки());
КонецПопытки;

Возвращаемся на закладку «Форма», добавляем на форму кнопку и связываем ее с командой:

dobavlenie komandyi na formu

Как таковая наша обработка готова к использованию. Чтобы ее вызвать, в режиме «1С Предприятия» нужно зайти в меню «Файл» – «Открыть» и выбрать созданный файл.

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

Для этого и служит раздел «Дополнительные отчеты и обработки».

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

Описание функции «Сведения О Внешней Обработке»

Приведу пример содержимого данной функции. Она должна быть экспортной и, соответственно, располагаться в модуле обработки:

Функция СведенияОВнешнейОбработке() Экспорт

ДанныеДляРег = Новый Структура();
ДанныеДляРег.Вставить(«Наименование», «Установка ставки НДС»);
ДанныеДляРег.Вставить(«БезопасныйРежим», Истина);
ДанныеДляРег.Вставить(«Версия», «ver.: 1.001»);
ДанныеДляРег.Вставить(«Информация», «Обработка для установки ставки НДС в справочнике Номенклатура»);
ДанныеДляРег.Вставить(«Вид», «ДополнительнаяОбработка»);

ТабЗнКоманды = Новый ТаблицаЗначений;
ТабЗнКоманды.Колонки.Добавить(«Идентификатор»);
ТабЗнКоманды.Колонки.Добавить(«Использование»);
ТабЗнКоманды.Колонки.Добавить(«Представление»);

НовСтрока = ТабЗнКоманды.Добавить();
НовСтрока.Идентификатор = «ОткрытьОбработку»;
НовСтрока.Использование = «ОткрытиеФормы»;
НовСтрока.Представление = «Открыть обработку»;
ДанныеДляРег.Вставить(«Команды», ТабЗнКоманды);

Чтобы лучше понять, какие поля структуры регистрационных данных нужно использовать, посмотрим реквизиты справочника «Дополнительные отчеты и обработки»:

svedeniya o vneshney obrabotke

Как видим, все довольно просто. Не совпадает лишь один реквизит: «ВариантЗапуска» – «Использование». Если посмотреть код одного из общих модулей, то мы увидим, как возникает связка этих полей:

Variant zagruzki vneshney obrabotki

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

Подключение внешней обработки в 1С 8.3

Перейдем теперь в режим «1С Предприятия» и добавим внешнюю обработку:

registratsiya obrabotki v sisteme

dopolnitelnaya informatsiya

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

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

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

Источник

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