Имя: Пароль:
1C
1С v8
Внешняя обработка заполнения табчасти (УФ)
, ,
0 WF72
 
07.11.14
13:47
Привет уважаемым коллегам!
Перевожу потихоньку все навески из БП 2.0 в 3.0, споткнулся на сабже. Погуглил проблему, инфа противоречивая. Кто-то говорит, что для заполнения табчасти из формы документа (у меня именно этот случай) обязательно нужно использовать клиентский метод, кто-то говорит, что это необязательно. Залез на ИТС,
http://its.1c.ru/db/bspdoc#content:22:1:issogl2_созданиеновогоотчетаилиобработки
там сказано, что для вызова серверного метода надо запихать в модуль обработки процедуру (ниже). Сделал так, получил ошибку "недостаточно фактических параметров". Елы-палы, а как же тогда надо?

Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения,  ПараметрыВыполненияКоманды) Экспорт
  // Реализация логики команды по заполнению объекта
  Если ИдентификаторКоманды = ... Тогда...
  ИначеЕсли ...
КонецПроцедуры
1 Легат
 
07.11.14
13:57
А команда , что в ней?
2 WF72
 
07.11.14
14:31
Хороший вопрос :)  отладчик это не ловит, т.к. обработка уже записана в базу.
Да фиг с количеством параметров. Понять бы точно: клиентским методом пользоваться или серверным. Я везде предпочитаю серверный, но может пора изменить привычкам.
3 Demetres
 
07.11.14
14:35
Если честно не совсем понятно что надо сделать и в чем трудности?
4 Поpyчик-4
 
07.11.14
14:37
(0) Для конфигураций на БСП нет понятия "Внешняя обработка заполнения табчасти".
5 PiVa123
 
07.11.14
14:39
Для Клиентского вызова


ФормаОбработки.ВыполнитьКоманду(ВыполняемаяКоманда.Идентификатор, ОбъектыНазначения);


Для серверного


        Если ПараметрыКоманды = Неопределено Тогда
            ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения);
        Иначе
            ВнешнийОбъект.ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыКоманды);
        КонецЕсли;

6 Demetres
 
07.11.14
14:49
(5) Судя по (0) там третий параметр обязательный.
Не понятно зачем в форме экспортная процедура?
7 Demetres
 
07.11.14
14:51
Если это общий алгоритм для заполнения ТЧ нескольких объектов метаданных, почему бы его не разместить в общем модуле?
8 PiVa123
 
07.11.14
15:03
(6) А как извне вызвать не экспртную ?

(7) Нету в УФ заполнения табличных частей, есть "ЗаполнениеОбъекта"
9 Demetres
 
07.11.14
15:17
(8) Вот так например можно заполнить

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    ИмяОбщегоМодуля.ИмяПроцедурыЗаполненияТЧ(Объект.ТабличнаяЧасть1);
    
КонецПроцедуры
10 WF72
 
07.11.14
15:44
(9) А, то есть сделать подписку с событием ОбработкаЗаполнения? Спасибо за идею, так наверное будет куда проще.
11 Demetres
 
07.11.14
15:55
(10) Если честно то мне до конца не понятно что вы пытаетесь сделать :) То ли заполнять ТЧ на форме при открытии, то ли заполнять какую-то ТЧ какого-то документа, при открытии какой-то формы. Короче непонятно что и для чего нужно сделать :)
P.S. В (9) я не имел ввиду подписку на событие, там идет вызов процедуры на сервере при открытии формы.
12 WF72
 
07.11.14
16:21
(10) Была в БП 2.0 обработка заполнения табчастей (написана не мной, есичо), которую надо перенести в 3.0. Подумал и понял, что все условия заполнения табчасти можно задать в подписке, париться с внешней обработкой заполнения объекта не обязательно. Тем более что последняя, оказывается, в обязательном порядке записывает документ. Лучше отложить запару с этой хренью до лучших времен, когда накал внедрения спадет.
13 Demetres
 
07.11.14
16:32
(12) Так в какой момент нужно заполнять-то? Когда открываем форму (кстати чего, документа, справочника ...) Короче если нужна помощь опишите подробно что и для чего нужно, а так это разговор не о чем. Если подписка помогла, хорошо, удачи !-)
AdBlock убивает бесплатный контент. 1Сергей