Рассмотрим на примере решения простой задачи: Загрузить справочник «Валюта» в табличную часть новой внешней обработки.
1.Создаем новую внешнюю обработку
Конфигуратор-->Файл-->Новый-->Внешняя обработка-->OK.
1.1.Зададим имя обработки--> «ЗагрузкаВТЧОбработкиИзВыборки».
1.2. Добавим новый реквизит Дата :
Встать курсором на область «Реквизиты» ->C помощью пиктограммки «Добавить»-->
добавить реквизит "Дата".
Cвойства реквизита Дата:
1.3. Добавим новую табличную часть с именем «ТЧ_Валюты»:
Встать курсором на область Табличные части-->Нажать пиктограммку «Добавить» .
Задать имя новой табличной части (в нашем примере имя = "ТЧ_Валюты").
1.4.Добавим новые реквизиты табличной части «ТЧ_Валюты»
( такие как Валюта ,НаименваниеПолное , ЦифровойКод.)
Встать курсором на табличную часть «ТЧ_Валюты»-->Нажать пиктограммку «Добавить»:
Задать имя нового реквизита табличной части (в нашем примере ="Валюта","НаименваниеПолное","ЦифровойКод").
Свойства реквизита «Валюта» нашей табличной части «ТЧ_Валюты»:
Выбрать Типà СправочникСсылка.Валюты
В модуле формы на событии формы ПриОткрытии Создать на клиенте процедуру для
заполнения поля «Дата» текущей датой:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Объект.Дата = ТекущаяДата();
КонецПроцедуры
Свойства реквизита «НаименованиеПолное» нашей табличной части «ТЧ_Вылюты»:
1.5. Создадим новую форму
Встать курсором на раздел Формы-->Нажать пиктограммку «Добавить»
Задать имя форме = «Форма».
В результате получили управляемую форму:
Где в правом окне на закладке Реквизиты отображается Объект с созданными реквизитами.
В левом окошке на закладке "Элементы" отображаются элементы формы ,соответствующие реквизитам в правом окне.
Внизу на закладке Форма--> визуальное представление созданной управляемой формы ,где можно увидеть расположение созданных и выбранных в форму элементов.
2. Добавить новую команду «Выполнить» в правом окне на закладке «Команды»:
2.1. Перетащить с помощью мыши Команду «Выполнить» в левое окно или на форму.
3. Создать на клиенте процедуру КомандаВыполнить(Команда) на закладке «Модуль», которая будет выполняться при нажатии на кнопку «Выполнить».
//_______________________________________________________________________________________
// 3. Процедура КомандаВыполнить(Команда) // для вывода оповещения пользователю :
&НаКлиенте
Процедура КомандаВыполнить(Команда)
Оповещение = Новый ОписаниеОповещения("РезультатВопроса",ЭтаФорма);
//"РезультатаВопроса" = имя процедуры,которая будет выполняться после Закрытия окна вопроса
ПоказатьВопрос(Оповещение,
"Вы действительно хотите выполнить программу?#",//Текст вопроса
РежимДиалогаВопрос.ДаНетОтмена,// Наличие кнопок
0,//Параметр,который показывает количество секунд до автоматического закрытия окна вопроса (параметр необязательный ).
КодВозвратаДиалога.Да,// Параметр для определения кнопки по умолчанию (параметр необязательный).
"Предупреждение!" // Текст для заголовка сообщения (параметр необязательный )
);
КонецПроцедуры
//_____________________________________________________________________________
// 4. Процедура обработки результата вопроса :
&НаКлиенте
Процедура РезультатВопроса(Результат,Параметры) Экспорт
Если Результат =КодВозвратаДиалога.Да Тогда
//Очищаем табличную часть перед заполнением
Объект.ТЧ_Валюты.Очистить();
//Вызываем процедуру на сервере,результатом работы которой будет заполнение табличной части обработки =ТЧ_Валюты данными.
ЗапонитьТабличнуюЧастьОбработкиНаСервере();
КонецЕсли;
КонецПроцедуры
//___________________________________________________________________________
// 5. Процедура для заполнения табличной части обработки :
&НаСервере
Процедура ЗапонитьТабличнуюЧастьОбработкиНаСервере()
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| Валюты.Ссылка КАК Ссылка,
| Валюты.Наименование КАК Наименование,
| Валюты.Код КАК Код,
| Валюты.НаименованиеПолное КАК НаименованиеПолное
|ИЗ
| Справочник.Валюты КАК Валюты";
Выборка = Запрос.Выполнить().Выбрать();
//Объект доступен на сервере,поэтому табличную часть обработки можно заполнять прямо на сервере.
//_____ Заполняем табличную часть_______
Пока Выборка.Следующий() Цикл //Цикл для перехода по строкам Выборки
стр= Объект.ТЧ_Валюты.Добавить(); //Добавляем новую строку табличной части обработки
// Заполняем поля табличной части выборки значениями из Выборки.
стр.Валюта = Выборка.Ссылка; // Заполняем поле Валюта табличной части выборки значением из Выборки
стр.ЦифровойКод = Выборка.Код;
стр.НаименованиеПолное = Выборка.НаименованиеПолное;
Сообщить("Программа выполнена!");
КонецПроцедуры;
//_____________________________________________________________________________
6. Написать в модуле объекта функцию для подключения внешней обработки с её описанием:
Функция СведенияОВнешнейОбработке() Экспорт
ДанныеДляРег = Новый Структура();
ДанныеДляРег.Вставить("Наименование", "ЗагрузкаВТЧОбработкиИзВыборки");
ДанныеДляРег.Вставить("БезопасныйРежим", Истина);
ДанныеДляРег.Вставить("Версия", "ver.: 1.001");
ДанныеДляРег.Вставить("Информация", "Автор: Иванов ;ЗагрузкаВТЧОбработкиИзВыборки");
ДанныеДляРег.Вставить("Вид", "ДополнительнаяОбработка");
ТабЗнКоманды = Новый ТаблицаЗначений;
ТабЗнКоманды.Колонки.Добавить("Идентификатор");
ТабЗнКоманды.Колонки.Добавить("Использование");
ТабЗнКоманды.Колонки.Добавить("Представление");
НовСтрока = ТабЗнКоманды.Добавить();
НовСтрока.Идентификатор = "ОткрытьОбработку";
НовСтрока.Использование = "ОткрытиеФормы";
НовСтрока.Представление = "Открыть обработку";
ДанныеДляРег.Вставить("Команды", ТабЗнКоманды);
Возврат ДанныеДляРег;
КонецФункции
Подключить внешнюю обработку-->Запустить обработку-->Нажать кнопку «Выполнить».