|
0
altaykniga
30.03.18
✎
16:25
|
Доброго вечера пятницы, уважаемые. Прошу подсказать решение задачи.
ЗУП 3.1
Конфигурация типовая. Необходимо создать внешнюю обработку заполнения ТЧ документа НачислениеЗарплаты. Пользователь должен выбрать период, и в результате выбора нужно заполнить Реквизиты табличной части "Начисления" ДатаНачала и ДатаОкончания.
Как это сделать с помощью внешней обработки заполнения ТЧ ?
|
|
|
3
altaykniga
03.04.18
✎
12:16
|
(1,2) сделал следующим образом, может кому пригодится
модуль обработки:
Функция СведенияОВнешнейОбработке() Экспорт
Назначения = Новый Массив ;
Назначения.Добавить("Документ.НачислениеЗарплаты") ;
ПараметрыРегистрации = Новый Структура ;
ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта");
ПараметрыРегистрации.Вставить("Назначение",Назначения);
ПараметрыРегистрации.Вставить("Наименование","Перезаполнить период в ТЧ Начисления (внешняя)");
ПараметрыРегистрации.Вставить("Версия","1.0");
ПараметрыРегистрации.Вставить("Информация","Дополнительная обработка табличной части НачисленияЗарплаты");
ПараметрыРегистрации.Вставить("БезопасныйРежим",Истина);
Команды = ПолучитьТаблицуКоманд() ;
ДобавитьКоманду(Команды, "Перезаполнить период в ТЧ Начисления (внешняя)","ЗаполнитьДокумент","ВызовКлиентскогоМетода",Ложь,) ;
ПараметрыРегистрации.Вставить("Команды",Команды) ;
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений ;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")) ;
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")) ;
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")) ;
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")) ;
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")) ;
Возврат Команды ;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить() ;
НоваяКоманда.Представление = Представление ;
НоваяКоманда.Идентификатор = Идентификатор ;
НоваяКоманда.Использование = Использование ;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение ;
НоваяКоманда.Модификатор = Модификатор ;
КонецПроцедуры
модуль формы обработки
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
Диалог = Новый ДиалогРедактированияСтандартногоПериода();
СтандартныйПериод = Новый СтандартныйПериод();
Диалог.Период = СтандартныйПериод;
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработкаВыбораПериода",ЭтаФорма);
Диалог.Показать(ОписаниеОповещения)
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбораПериода(Период,Параметры) Экспорт
Если Период <> Неопределено Тогда
Для каждого ТекущаяСтрока из ВладелецФормы.Объект.Начисления Цикл
ТекущаяСтрока.ДатаНачала = Период.ДатаНачала ;
ТекущаяСтрока.ДатаОкончания = Период.ДатаОкончания;
КонецЦикла ;
КонецЕсли;
КонецПроцедуры
в итоге моя команда появляется в кнопке "заполнить" на форме документа
|
|