|
внешняя обработка заполнения табличной части. Не работает для НЕтипового документа | ☑ | ||
---|---|---|---|---|
0
altaykniga
27.02.19
✎
19:50
|
Бух ред.3
Доброго времени суток, уважаемые специалисты. Прошу поделиться знаниями, подсказать, где допустил ошибку. Создал внешнюю обработку заполнения табличной части документа. Для типового документа обработка запускается (вставил "Сообщить" в процедуру заполнения ТЧ - сообщение выходит, когда жму на кнопку "Заполнить"), а для НЕтипового документа кнопка заполнения ТЧ появляется на форме, но при ее нажатии ничего не происходит (даже Сообщить не срабатывает). Куда копать? 1. в код модуля формы НЕтипового документа в процедуру "ПриСозданииНаСервере" добавил следующий код: // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды 2. в ОбщаяКоманда.ПоказатьДвиженияДокумента.ТипПараметраКоманды добавил тип - мой НЕтиповой документ. Что еще забыл сделать? Заранее благодарю за помощь |
|||
1
altaykniga
27.02.19
✎
19:55
|
Функция СведенияОВнешнейОбработке() Экспорт
Назначения = Новый Массив ; Назначения.Добавить("Документ.экзАктСверкиКоличество") ; ПараметрыРегистрации = Новый Структура ; ПараметрыРегистрации.Вставить("Вид","ЗаполнениеОбъекта"); ПараметрыРегистрации.Вставить("Назначение",Назначения); ПараметрыРегистрации.Вставить("Наименование","АктСверкиПоКоличеству_ВнешняяОбработкаЗаполненияТабличнойЧасти_ТабНоменклатуры"); ПараметрыРегистрации.Вставить("Версия","1.0"); ПараметрыРегистрации.Вставить("Информация","АктСверкиПоКоличеству_ВнешняяОбработкаЗаполненияТабличнойЧасти_ТабНоменклатуры"); ПараметрыРегистрации.Вставить("БезопасныйРежим",Истина); Команды = ПолучитьТаблицуКоманд() ; ДобавитьКоманду(Команды, "Заполнить1","Заполнить1","ВызовКлиентскогоМетода",Ложь,) ; ПараметрыРегистрации.Вставить("Команды",Команды) ; Возврат ПараметрыРегистрации; КонецФункции |
|||
2
Мимохожий Однако
27.02.19
✎
19:57
|
Отладчиком посмотри и увидишь
|
|||
3
altaykniga
27.02.19
✎
19:58
|
(0)
вместо "2. в ОбщаяКоманда.ПоказатьДвиженияДокумента.ТипПараметраКоманды добавил тип - мой НЕтиповой документ. " следует читать "2. в ОпределяемыйТип.ОбъектСДополнительнымиКомандами.Тип добавил тип - мой НЕтиповой документ. " |
|||
4
altaykniga
27.02.19
✎
19:59
|
(2) точка останова не срабатывает на коде модуля формы внешней обработки, когда вызывается эта обработка напрямую с кнопки "заполнить" из формы документа
|
|||
5
Мимохожий Однако
27.02.19
✎
20:03
|
(4) Ты укажи точку останова до вызова команды заполнения ТЧ и пошагово доберешься до нужного кода.
|
|||
6
altaykniga
27.02.19
✎
20:03
|
в модуле формы обработки написал (для пробы):
&НаКлиенте Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт Для Каждого ДокОбъект ИЗ ОбъектыНазначенияМассив Цикл ОбщегоНазначенияКлиентСервер.СообщитьПользователю("1"); КонецЦикла; КонецПроцедуры |
|||
7
Garykom
гуру
27.02.19
✎
20:05
|
(0) Ты забыл (или скорее не знал) что внутри "ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);" код выполняется в зависимости от типа объекта.
Короче типовой код не знает ничего о твоем нетиповом документе |
|||
8
altaykniga
28.02.19
✎
12:53
|
(7) Разобрался. Нужно было добавить в модуль формы НЕтипового документа следующий код:
1. ПриСозданииНаСервере() // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды 2. ПриОткрытии() // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды 3. ПриЧтенииНаСервере() // СтандартныеПодсистемы.ПодключаемыеКоманды ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); // Конец СтандартныеПодсистемы.ПодключаемыеКоманды 4. Новые процедуры в модуль формы НЕтипового документа //////////////////////////////////////////////////////////////////////////////// // СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ БСП // СтандартныеПодсистемы.ПодключаемыеКоманды &НаКлиенте Процедура Подключаемый_ВыполнитьКоманду(Команда) ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект); КонецПроцедуры &НаСервере Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат); КонецПроцедуры &НаКлиенте Процедура Подключаемый_ОбновитьКоманды() ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); КонецПроцедуры // Конец СтандартныеПодсистемы.ПодключаемыеКоманды Тема закрыта, спасибо за помощь |
|||
9
vis_tmp
30.05.19
✎
07:38
|
(8) Спасибо, помог
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |