Имя: Пароль:
1C
1С v8
Можно ли прикрепить внешнюю обработку к форме документа ?
0 Rovan
 
гуру
21.06.12
12:06
Т.е. я создаю свою внешнюю обработку - форму подбора номенклатуры.
Сохраняю ее в справочник "Доп. отчеты и обработки"
и надо чтобы она работала с открытой формой документа, а не с самим документом по ссылке...
Конфа УНФ 1.4 (управляемый интерфейс), билд 8.2.15
1 Агент Инфостарта
 
21.06.12
12:07
Штатным образом никак не сделаете.
2 Maxus43
 
21.06.12
12:08
а зачем работать с формой кстати?
3 Rovan
 
гуру
21.06.12
12:11
(2) пользователь заполняет на форме документа список товаров
4 Cube
 
21.06.12
12:12
(0) Ну а кто запрещает?

Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
   Объект.РасшифровкаПлатежа.Загрузить(ТаблицаРаспределения);
   Форма = Объект.ПолучитьФорму();
   Если Форма.Открыта() Тогда
       ...
5 Maxus43
 
21.06.12
12:12
(3) и? посмотри как сдпеланы внешние обработки заполнения ТЧ, заполняй на сервере как обычно
6 Cube
 
21.06.12
12:12
+(4) Строка "Объект.РасшифровкаПлатежа.Загрузить(ТаблицаРаспределения);" лишняя...
7 Rovan
 
гуру
21.06.12
12:15
Программировать что-либо в форме документа запрещено - это типовая конфа.
Я могу изменять только внешнюю обработку.
***
(4) где это указывать ?

(5) форма документа у пользователя уже открыта
далее идет вызов моей дополнительной...
8 Агент Инфостарта
 
21.06.12
12:17
(4) Дятел.
И вот почему. У ТС - Конфа УНФ 1.4 (управляемый интерфейс), а ты лепишь фигню для конфигураций линии УТ 10.3, БП 2.0
9 Cube
 
21.06.12
12:18
(7) "где это указывать ?" - я, вроде, по русски пишу... Или у тебя не обработка заполнения ТЧ, а внешняя печатная форма что-ли?
10 Cube
 
21.06.12
12:18
(8) Сам ты дятел! Про УФ да, не заметил, признаю...
11 Rovan
 
гуру
21.06.12
12:19
(9) ты прав...я кажись разобрался
http://help1c.com/faq82/view/844.html
12 Агент Инфостарта
 
21.06.12
12:19
(7) К сожалению никак. В команду вызова обработок передаётся ссылка на объект, это особенност  управляемых форм.
13 Агент Инфостарта
 
21.06.12
12:21
(11) Блин, по ссылке НЕ ТО, это для конфгураций, работающих в обычном приложении.
14 Rovan
 
гуру
21.06.12
12:27
(12) блин !
15 Rovan
 
гуру
21.06.12
12:30
(+14) кстати, с небольшой доработкой формы документа
эта внешняя форма подбора работает прекрасно !

видимо разработчики конфы просто поленились сделать этот функционал
16 Пеппи
 
21.06.12
12:32
(15) доработал как в (4) ?
17 Агент Инфостарта
 
21.06.12
12:34
(16) Пост 8 смотрите.
18 Rovan
 
гуру
21.06.12
12:36
(16) по кнопке Подбор в форме документа было так:

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

а я сделал так:

ВнешняяОбработкаСтруктура = ДополнительныеОтчетыИОбработки_ссылка("ксФормаПодбораНоменклатуры");
   
Если ЗначениеЗаполнено(ВнешняяОбработкаСтруктура.Ссылка)
И НЕ ВнешняяОбработкаСтруктура.Ссылка.ПометкаУдаления Тогда
ОбъектыНазначенияМассив = Новый Массив;
ОбъектыНазначенияМассив.Добавить( ПараметрыПодбора );
       ДополнительныеОтчетыИОбработкиКлиент.ВыполнитьОбработку(ВнешняяОбработкаСтруктура.Ссылка,
           "ЗаполнениеОбъекта", "ЗаполнениеТабличнойЧастиТовары",
           Истина, "ВызовКлиентскогоМетода", Ложь,
           ЭтаФорма, ОбъектыНазначенияМассив);
   
  Если ТипЗнч(ОбъектыНазначенияМассив) = Тип("Массив")
           И ОбъектыНазначенияМассив.Количество()=1
           И ТипЗнч(ОбъектыНазначенияМассив[0])=Тип("Строка") Тогда
           АдресЗапасовВХранилище = ОбъектыНазначенияМассив[0];
  Иначе    
    Возврат;
  КонецЕсли;    
Иначе
АдресЗапасовВХранилище = ОткрытьФормуМодально("ОбщаяФорма.ФормаПодбора", ПараметрыПодбора);
КонецЕсли;    
   
Если ЗначениеЗаполнено(АдресЗапасовВХранилище) Тогда
 ПолучитьЗапасыИзХранилища(АдресЗапасовВХранилище, ИмяТабличнойЧасти, ЕстьХарактеристики, ЕстьПартии);
КонецЕсли;
Ошибка? Это не ошибка, это системная функция.