Открыть форму во внешней обработке 1с
Рассмотрим в данной статье пошаговую инструкцию по созданию внешней обработки в 1С 8.3 в режиме управляемого приложения, соответственно, будем использовать управляемые формы. А самое главное — мы научимся подключать её к механизму «внешних обработок» конфигураций 1С, построенных на библиотеке стандартных подсистем версии 2.0 и новее.
Задача будет следующая: создать простейшую внешнюю обработку, которая будет выполнять групповое действие над справочником «Номенклатура», а именно, устанавливать выбранный процент ставки НДС для указанной группы номенклатуры.
Для этого сразу произведем необходимую настройку в программе (рассматривается конфигурация 1С 8.3: «Бухгалтерия предприятия 3.0» на управляемых формах).
Установка данного флажка дает нам возможность использовать внешние обработки.
Создание новой внешней обработки в 1С 8.3 на примере
Теперь переходим в конфигуратор. В меню «Файл» выбираем «Новый…». Откроется окно выбора вида создаваемого файла. Выбираем «Внешняя обработка»:
Откроется окно новой внешней обработки. Сразу зададим ей имя. Оно будет предложено при сохранении обработки на диск:
Добавим новую управляемую форму обработки. Указываем, что это форма обработки и она является основной:
На форме у нас будет два реквизита:
- ГруппаНоменклатуры – ссылка на справочник «Номенклатура»;
- ВыбСтавкаНДС – ссылка на перечисление Ставки НДС.
Создаем реквизиты в колонке «Реквизит» в верхнем правом окне. Перетаскиваем мышкой их в левое верхнее окно. Новые реквизиты должны сразу отобразиться на форме внизу.
Очередность реквизитов можно менять стрелками «Вверх» – «Вниз»:
Получите 267 видеоуроков по 1С бесплатно:
Осталось добавить кнопку «Установить». В управляемых формах нельзя просто так добавить кнопку на форму. Даже если добавить её в структуру элементов формы, на самой форме её видно не будет. Кнопку обязательно нужно связать с командой, которую она будет выполнять. Переходим к закладке «Команды» и добавляем команду «УстановитьСтавкуНДС». В свойствах команды создаем действие. Обработчик команды выбираем «На клиенте». Команду можно добавить на форму также простым «перетаскиванием» в раздел с элементами формы.
В модуле формы будет создана одноименная процедура. В ней вызовем процедуру на сервере:
&НаКлиенте
Процедура УстановитьСтавкуНДС(Команда)
УстановитьСтавкуНДСНаСервере();
КонецПроцедуры
В процедуре на сервере напишем небольшой запрос и действия, связанные с установкой ставки НДС:
&НаСервере
Процедура УстановитьСтавкуНДСНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Ссылка В ИЕРАРХИИ (&ГруппаНоменклатуры)
| И НЕ Номенклатура.ПометкаУдаления
| И НЕ Номенклатура.ЭтоГруппа»;
Запрос.УстановитьПараметр(«ГруппаНоменклатуры», ГруппаНоменклатуры);
РезЗапроса = Запрос.Выполнить();
ВыбДетЗаписи = РезЗапроса.Выбрать();
Пока ВыбДетЗаписи.Следующий() Цикл
Попытка
СпрНомОбъект.Записать();
Исключение
Сообщить(«Ошибка записи объекта «»» + СпрНомОбъект + «»»!
|» + ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Возвращаемся на закладку «Форма», добавляем на форму кнопку и связываем ее с командой:
Как таковая наша обработка готова к использованию. Чтобы ее вызвать, в режиме «1С Предприятия» нужно зайти в меню «Файл» – «Открыть» и выбрать созданный файл.
Однако работа в таком режиме удобна для отладки обработки, а для работы пользователю не совсем подходит. Пользователи привыкли, чтобы у них все было «под рукой», то есть в самой базе данных.
Для этого и служит раздел «Дополнительные отчеты и обработки».
Но чтобы добавить туда нашу обработку, нужно сначала дать ей описание и сообщить программе ее свойства.
Описание функции «Сведения О Внешней Обработке»
Приведу пример содержимого данной функции. Она должна быть экспортной и, соответственно, располагаться в модуле обработки:
Функция СведенияОВнешнейОбработке() Экспорт
ДанныеДляРег = Новый Структура();
ДанныеДляРег.Вставить(«Наименование», «Установка ставки НДС»);
ДанныеДляРег.Вставить(«БезопасныйРежим», Истина);
ДанныеДляРег.Вставить(«Версия», «ver.: 1.001»);
ДанныеДляРег.Вставить(«Информация», «Обработка для установки ставки НДС в справочнике Номенклатура»);
ДанныеДляРег.Вставить(«Вид», «ДополнительнаяОбработка»);
ТабЗнКоманды = Новый ТаблицаЗначений;
ТабЗнКоманды.Колонки.Добавить(«Идентификатор»);
ТабЗнКоманды.Колонки.Добавить(«Использование»);
ТабЗнКоманды.Колонки.Добавить(«Представление»);
НовСтрока = ТабЗнКоманды.Добавить();
НовСтрока.Идентификатор = «ОткрытьОбработку»;
НовСтрока.Использование = «ОткрытиеФормы»;
НовСтрока.Представление = «Открыть обработку»;
ДанныеДляРег.Вставить(«Команды», ТабЗнКоманды);
Возврат ДанныеДляРег;
КонецФункции
Чтобы лучше понять, какие поля структуры регистрационных данных нужно использовать, посмотрим реквизиты справочника «Дополнительные отчеты и обработки»:
Как видим, все довольно просто. Не совпадает лишь один реквизит: «ВариантЗапуска» – «Использование». Если посмотреть код одного из общих модулей, то мы увидим, как возникает связка этих полей:
Чтобы определить, какие поля структуры обязательны, можно сначала не описывать ее, просто создать пустую, а далее воспользоваться отладчиком. Если трассировать модули при регистрации обработки, сразу становится ясно, какие поля требуются, а какие нет.
Подключение внешней обработки в 1С 8.3
Для работы с внешними обработками (а внешняя печатная форма тоже является внешней обработкой) существует объект ВнешниеОбработки.
Рассмотрим два возможных случая:
Внешняя обработка хранится на диске отдельно от информационной базы
Для программного открытия внешней обработки в 1С нужно знать адрес ее файла. Зная его, можно либо открыть форму обработки, либо получить объект обработки для проведения с ним дальнейших действий (например, для вызова экспортных функций из модуля объекта).
Открытие формы внешней обработки
Для программного открытия формы внешней обработки в 1С используется функция ПолучитьФорму() объекта ВнешниеОбработки. Функция имеет несколько параметров. Рассмотрим простое открытие основной формы обработки:
Форма=
ВнешниеОбработки.
ПолучитьФорму(АдресФайла)
;
Форма.
Открыть()
;
Для открытия неосновной формы внешней обработки необходимо указать ее имя.
//В переменной АдресФайла находится полный путь к файлу внешней обработки
Форма=
ВнешниеОбработки.
ПолучитьФорму(АдресФайла,
"НеосновнаяФорма"
)
;
Форма.
Открыть()
;
Открытие внешней обработки как объекта
Для того чтобы получить внешнюю обработку как объект используется функция Создать() объекта ВнешниеОбработки.
//В переменной АдресФайла находится полный путь к файлу внешней обработки
ОбъектОбработки=
ВнешниеОбработки.
Создать(АдресФайла)
;
По умолчанию все обработки открываются в безопасном режиме. Чтобы его отключить, используются следующие параметры:
//В переменной АдресФайла находится полный путь к файлу внешней обработки
Внешняя обработка или печатная форма сохранена в информационной базе
Во многих конфигурациях существует возможность сохранять внешние печатные формы и обработки непосредственно в информационной базе. Для этого используется справочник ВнешниеОбработки. Сама внешняя обработка хранится в виде двоичных данных либо в реквизите ХранилищеВнешнейОбработки , либо в табличной части Принадлежность в реквизите ХранилищеВнешнейОбработки .
Для открытия внешней обработки нужно:
- Получить ее из хранилища.
- Сохранить файл с обработкой на диск.
- Открыть форму или получить объект обработки.
- Если мы имеем дело с внешней печатной формой, то можно заполнить стандартный реквизит СсылкаНаОбъект и вызвать экспортную функцию Печать.
//В переменной СпрСсылка находится ссылка на элемент справочника ВнешниеОбработки
ДвДанные=
СпрСсылка.
ХранилищеВнешнейОбработки.
Получить()
;
АдресФайла=
ПолучитьИмяВременногоФайла()
;
ДвДанные.
Записать(АдресФайла)
;
ОбъектОбработки=
ВнешниеОбработки.
Создать(АдресФайла,
Ложь
)
;
Похожие статьи
-
Должностная инструкция воспитателя детского сада
Воспитатель дошкольного учреждения – человек, который одним из первых встречается ребенку вне дома. Организация его социальной роли в будущем намного зависит от того, какой человек его будет встречать, и учить в первые годы жизни. Именно в...
-
Кармическая задача по дате рождения Манипулирование личностью Георгий Грачев
Эта книга содержит нестандартный взгляд на проблемы женского счастья и предлагает новые пути их решения. Ее автор - практикующий кармапсихолог Галина Зубкова - опирается на опыт сотен женщин и мужчин, для того, чтобы доказать простую...
-
Рис с печенью: рецепты и особенности приготовления
Печень - один из богатейших источников железа в рационе человека. К тому же, этот продукт широко распространен в наших магазинах, быстро готовится и не дорого стоит. Вкусный рис с печенью по нашим рецептам порадует за трапезой вас и ваших...
-
Свиное сало: калорийность, польза и вред Калорийность сало свиное соленое
Сало – любимый многими продукт и отличная закуска. Он представляет собой засоленный или копченый свиной жир, иногда с мясными прослойками. Мягкое, хорошо приготовленное имеет очень насыщенный, приятный вкус. Однако калорийность этого...
-
Транспортный налог (2018): изменения Изменение ставки транспортного налога в году
Сегодня мы рассмотрим транспортный налог для Москвы. Проанализируем налоговые ставки по уплате транспортного налога и узнаем, какие существуют сроки по уплате налога. Также мы рассмотрим типичные ошибки при уплате транспортного налога и...
-
Современные молитвенники и старцы нашего времени
Православными старцами считаются люди, обладающие высокой духовностью и природной мудростью, чаще всего священнослужители. В древней Руси, истории о таких людях передавались из уст в уста, о них слагались легенды. Собиралась огромная...