Шаблон обработки заполнения объекта в форме

18.08.20

Разработка - БСП (Библиотека стандартных подсистем)

Шаблон обработки заполнения формы объекта без записи, с возможностью отладки.

Скачать исходный код

Наименование Файл Версия Размер
Шаблон обработки заполнения формы объекта:
.epf 7,07Kb
9
.epf 7,07Kb 9 Скачать

После того, как пересмотрел множество примеров шаблонов внешних обработок заполнения объектов, написал свою. Решил поделиться, чтобы вы могли не тратить время на проверку того, что можно передавать на сервер, где использовать РеквизитФормыВЗначение, а где КопироватьДанныеФормы :)

Задача:

1. Заполнение документа в форме, без записи.

2. Возможность отладки.

3. Минимум лишних действий.

Далее код, модуль обработки:

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
	ПараметрыРегистрации.Версия = "1.0";
	ПараметрыРегистрации.Назначение.Добавить("Документ.Премия");
	ПараметрыРегистрации.Наименование = НСтр("ru='Премия'");
	ПараметрыРегистрации.Информация = НСтр("ru='Расчет премии'");
	ПараметрыРегистрации.БезопасныйРежим = Ложь;
	
	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Идентификатор = "Премии";
	Команда.Представление = "Рассчитать премии";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗаполнениеФормы();
	
	Возврат ПараметрыРегистрации;
	
КонецФункции

Процедура ЗаполнитьПремии(Объект) Экспорт
	Для Каждого Стр Из Объект.Начисления Цикл
		Стр.Результат = 1000000;
	КонецЦикла;	
КонецПроцедуры	

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыКоманды) Экспорт
	Если ИдентификаторКоманды = "Премии" Тогда
		ЭтаФорма = ПараметрыКоманды.ЭтаФорма;
		ЗаполнитьПремии(ЭтаФорма.Объект);
		ЭтаФорма.Модифицированность = Истина;
		
		Сообщение = Новый СообщениеПользователю();
		Сообщение.Текст = НСтр("ru = 'Премии рассчитаны и заполнены'");
		Сообщение.Сообщить();
	КонецЕсли;	
КонецПроцедуры	

Процедура СведенияОВнешнейОбработке как в документации к БСП.

Здесь стоит обратить внимание на то, что при вызове функции ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке нужно указывать версию БСП, иначе будет выскакивать ошибка. Разумеется сообщение будет не о том, что этот функционал работает начиная с такой-то версии, а о том, что значение Форма не заполнено.

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

Модуль формы:


&НаСервере
Процедура ЗаполнитьНаСервере(ОбъектДокумент)
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	ОбработкаОбъект.ЗаполнитьПремии(ОбъектДокумент);
КонецПроцедуры

&НаКлиенте
Процедура Заполнить(Команда)
	ПараметрыФормы = Новый Структура("Ключ", Объект.СсылкаНаДокумент);
	ФормаДокумента = ПолучитьФорму("Документ.Премия.ФормаОбъекта", ПараметрыФормы);
	
	ОбъектДокумент = ФормаДокумента.Объект;
	ЗаполнитьНаСервере(ОбъектДокумент);
	КопироватьДанныеФормы(ОбъектДокумент,ФормаДокумента.Объект);
	ФормаДокумента.Открыть();
КонецПроцедуры

Здесь мы создаем форму существующего документа. Затем передаем копию объекта этой формы для заполнения на сервере. Форму и непосредственно объект формы на сервер передать нельзя. Копируем  заполненную копию обратно в данные формы и открываем форму. В результате получаем заполненную форму документа без его записи.

Протестировано на релизе платформы 1С:Предприятие 8.3 (8.3.16.1063).

См. также

БСП. Добавляем отчет в меню Отчеты

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим новый отчет в меню нового документа средствами БСП.

02.04.2024    3137    John_d    10    

89

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1691    dimanich70    8    

14

Заполнение поля адреса в своей обработке [БСП]

Механизмы платформы 1С БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    785    FilippovRI    0    

15

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

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

07.02.2024    2614    YA_418728146    11    

43

1С:БСП Дополнительные реквизиты и сведения

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

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

19.01.2024    6302    PROSTO-1C    5    

46

Бесплатный митап 9 февраля «Библиотеки и фреймворки на 1С и всё, что с этим связано»

БСП (Библиотека стандартных подсистем) Мероприятия Бесплатно (free)

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

15.01.2024    3885    0    Infostart    0    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7142 20.08.20 22:07 Сейчас в теме
Реклама. Касаемо отладки любых дополнительных внешних обработок в БСП тем, кто в курсе про ИР, рекомендую инструмент "отладка внешних обработок БСП" в варианте "Расширение". Там можно отлаживать файл внешней обработки "на лету".
adhocprog; +1 Ответить
Оставьте свое сообщение