Имя: Пароль:
1C
1С v8
внешняя обработка заполнения ТЧ. Выбрать период и заполнить
0 altaykniga
 
30.03.18
16:25
Доброго вечера пятницы, уважаемые. Прошу подсказать решение задачи.

ЗУП 3.1
Конфигурация типовая. Необходимо создать внешнюю обработку заполнения ТЧ документа НачислениеЗарплаты. Пользователь должен выбрать период, и в результате выбора нужно заполнить Реквизиты табличной части "Начисления" ДатаНачала и ДатаОкончания.

Как это сделать с помощью внешней обработки заполнения ТЧ ?
1 Cyberhawk
 
30.03.18
16:25
Нужно пытаться
2 Cyberhawk
 
30.03.18
16:26
Документацию на ИТС по подсистеме БСП "Дополнительные отчеты и обработки" почитать для разогрева
3 altaykniga
 
03.04.18
12:16
(1,2) сделал следующим образом, может кому пригодится

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

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

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

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
    НоваяКоманда = ТаблицаКоманд.Добавить() ;
    НоваяКоманда.Представление = Представление ;
    НоваяКоманда.Идентификатор = Идентификатор ;
    НоваяКоманда.Использование = Использование ;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение ;
    НоваяКоманда.Модификатор = Модификатор ;
КонецПроцедуры

модуль формы обработки

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

&НаКлиенте
Процедура ОбработкаВыбораПериода(Период,Параметры) Экспорт

    Если Период <> Неопределено Тогда
        Для каждого ТекущаяСтрока из ВладелецФормы.Объект.Начисления Цикл
            ТекущаяСтрока.ДатаНачала = Период.ДатаНачала ;
            ТекущаяСтрока.ДатаОкончания = Период.ДатаОкончания;
        КонецЦикла ;    
    КонецЕсли;

КонецПроцедуры

в итоге моя команда появляется в кнопке "заполнить" на форме документа
Программист всегда исправляет последнюю ошибку.