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

18.08.20

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Шаблон обработки заполнения формы объекта:
.epf 7,07Kb
13 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

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

Задача:

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Рефакторинг и качество кода БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

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

23.09.2025    5709    AlexeyPROSTO_1C    1    

15

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

Уже заезженная тема с выводом в Word макетов при помощи БСП, но некоторые коллеги все равно спрашивают. Поэтому размещаю тут материал, как это сделать за три простых шага. Решение, которым я успешно пользуюсь в случаях, когда не нужна универсальность подключаемых внешних печатных форм.

16.09.2025    3988    _seerco2002    0    

33

Нейросети БСП (Библиотека стандартных подсистем) Инструментарий разработчика Программист 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Telegram-бот для разработчиков 1С, работающих с БСП. Если не знаете нужный под задачу метод или не помните название, то опишите боту задачу и получите список подходящих экспортных методов из общих модулей БСП.

02.09.2025    5431    krasnov322    22    

41

Анализ учета БСП (Библиотека стандартных подсистем) 1С:Предприятие 8 1С:Библиотека стандартных подсистем Бесплатно (free)

Расширение для конфигураций на базе БСП 3.х. Позволяет создавать новые отчеты путем соединения или объединения других отчетов.

22.05.2025    3999    130    seperblunt    9    

25

Работа с интерфейсом БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Программист 1С:Предприятие 8 1C:ERP Бесплатно (free)

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

12.05.2025    4847    AlexeyPROSTO_1C    2    

18

БСП (Библиотека стандартных подсистем) Обновление 1С Программист 1C:ERP Бесплатно (free)

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

29.04.2025    5048    krasnoshchekovpavel    7    

19

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

Описание способа создания глобального обработчика оповещений (событие формы), не привязанного к какой-то конкретной форме.

01.04.2025    3565    krasnoshchekovpavel    0    

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