Имя: Пароль:
1C
1С v8
Внешняя обработка заполнения ТЧ через ВызовСерверногоМетода без формы
0 xraf
 
30.08.14
18:45
Доброго времени суток!
В модуле внешней обработки добавил команду:
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    
    Для Каждого ДокТребование ИЗ ОбъектыНазначенияМассив Цикл
        
        
        ДокОбъект = ДокТребование.ПолучитьОбъект();    
           ДокОбъект.Материалы.Очистить();
        
        
        
    КонецЦикла;  
    
КонецПроцедуры

Вроде и ошибок не дает, а на экране ничего не меняется, таблица не очищается.
Как понимаю, команда выполняется на сервере, а как форму то обновить?
1 alle68
 
30.08.14
22:48
(0) Так процедура ничего и не меняет.
2 xraf
 
03.09.14
16:16
Как уж не меняет, очищает таблицу материалов.
3 Naumov
 
03.09.14
16:26
(0) Записывать после изменений не учили?
4 xraf
 
04.09.14
12:02
(3) Записывать пока не надо на данном этапе, а просто очистить таб часть и обновить на экране форму.

Я как понимаю, что таблица очищается, но на экране не меняется, так как у меня код выполняется на стороне сервера
5 lxndr
 
04.09.14
12:04
(4) не получится так. Серверным методом точно данные формы не поменять. Вроде как-то через клиентский метод или через открытие формы извращался без записи, но не вспомню...
6 xraf
 
04.09.14
12:10
(5)
Получается надо приделать форму к этой обработке?
7 lxndr
 
04.09.14
12:28
(6) да. Использовать вариант запуска или "Открытие формы" или "Вызов клиентского метода". Проблема в том, что туда все равно передается ссылка на исходный документ
Подробнее тут:
http://its.1c.ru/db/bspdoc#content:22:1:issogl2_созданиеновогоотчетаилиобработки
8 pervakovanton
 
04.09.14
12:39
Процедура ВыполнитьКоманду(ИмяКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт
        
    ЭтаФорма = ПараметрыВыполнения.ЭтаФорма;
    ЭтаФорма.Объект.Материалы.Очистить();
    ЭтаФорма.Модифицированность = Истина;
    
    Результат = ПараметрыВыполнения.РезультатВыполнения;
    Результат.ВыводСообщения.Использование = Истина;
    Результат.ВыводСообщения.ПутьКРеквизитуФормы = "Объект.Материалы";
    Результат.ВыводСообщения.Текст = НСтр("ru = 'ТЧ""Материалы"" успешно очищена'");
    
КонецПроцедуры

Может так будет работать?
9 xraf
 
04.09.14
16:58
(7)(8)
Спасибо
Буду курить
2 + 2 = 3.9999999999999999999999999999999...