как отчистить ТЧ

1. PavelZnaikin 175 20.08.15 20:19 Сейчас в теме
Есть ссылка на документ "ДокументСсылка"

Затем получил

ДокументОбъект = СсылкаНаОбъект.ПолучитьОбъект();

Теперь необходимо отчистить табличную часть, пишу:

ДокументОбъект.Товары.Очистить();

Но табличная часть не отчищается т.к. у метода отчистить

Примечание:

Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения.


Как в данном случаии отчистить тогда ТЧ.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. vadim1011985 100 20.08.15 21:07 Сейчас в теме
(1) PavelZnaikin, а разве метод ПолучитьОбъект () Вам возвращает не тип Объект ? Вы путаете типы СсылкаНаОбъект -тип ссылка У него как раз и не получится очисть таю. часть , но после того как вы получили объекты по ссылке (СсылкаНаОбъект.ПолучитьОбъект) Вы уже работаете с объектом где уже можно очистить таб.часть Возможно вы не записываете объект после изменения
3. Gennadiy83 20.08.15 21:32 Сейчас в теме
(2) vadim1011985, поддерживаю, скорее всего не сохраняете документ после очистки табличной части.
5. starik-2005 3040 20.08.15 23:48 Сейчас в теме
(1) PavelZnaikin,
Код
ДокументОбъект = СсылкаНаОбъект.ПолучитьОбъект(); 
ДокументОбъект.Товары.Очистить();
ДокументОбъект.Записать(РежимЗаписиДокумента.Запись);
Показать полностью


Но всегда есть вариант, что кто-то в табличную часть выводит, например, что-то извне (регистр, справочник, ...). Т.е. табличная часть генерируется динамически. И тут очистить так просто не получится.
4. Chameleon1980 20.08.15 21:45 Сейчас в теме
у меня вот все работает - странно.
ЧЯДНТ?
6. PavelZnaikin 175 21.08.15 12:50 Сейчас в теме
7. PavelZnaikin 175 21.08.15 13:47 Сейчас в теме
Объясните почему так происходит. В модуле формы внешней обработки пишу следующий код для очистки ТЧ

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


ТЧ документа очищается.

А если написать вот так то нет:

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

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

&НаСервере
Процедура ВыполнитьКомандуНаСервере(ДокументОбъект)

	ДокументОбъект.Товары.Очистить();
	
КонецПроцедуры 
Показать
8. Xershi 1488 21.08.15 13:50 Сейчас в теме
(7) PavelZnaikin, нажми записать. Думаю ТЧ очищена уже.
9. spacecraft 21.08.15 13:54 Сейчас в теме
(7) PavelZnaikin, она очищается, но на сервере. На клиенте показываются старые, не обновленные значения.
Или СообщитьОбИзменении, или ОбновитьИнтерфейс.
10. starik-2005 3040 21.08.15 14:29 Сейчас в теме
(9) spacecraft, или объектвреквизитформы()...
11. spacecraft 21.08.15 15:50 Сейчас в теме
(10) starik-2005, если правильно помню, то для ТЧ это не работает.
14. starik-2005 3040 21.08.15 18:08 Сейчас в теме
(11) spacecraft, для табличной части и не надо - надо сначала реквизит в объект, потом очистить ТекОбъект.ТЧ.Очистить(), потом объект в реквизит.
12. ditp 91 21.08.15 16:05 Сейчас в теме
(7) PavelZnaikin, вам что сделать-то надо?

Если очистить таб часть объекта, то зачем форма?

Если нужно на форме докумета таб часть очистить, то
	Объект.ТабличнаяЧасть.Очистить();

прямо на клиенте, без всяких &НаСервере
15. 1cUserAndrew 63 21.08.15 19:11 Сейчас в теме
(7) PavelZnaikin, потому что нельзя просто так передать объект формы на сервер и обратно.
Переменную, в которую Вы поместили объект формы, передать можно (тут Вы правильно сделали), но потом, после отработки серверной процедуры необходимо явно скопировать данные из переменной в объект соответствующим методом.
Т.е. после строки
ВыполнитьКомандуНаСервере(ОбъектФормы);

напишите
КопироватьДанныеФормы(ОбъектФормы, Объект);
13. PavelZnaikin 175 21.08.15 16:09 Сейчас в теме
Это внешняя подключаемая обработка
16. user1005105 06.12.18 15:23 Сейчас в теме
Приветствую, я тут первый раз и совсем не программист,

после изучения просторов интернета выяснил, что мне нужен код для кнопки которая будет очищать табличную часть количество и прикреплена к форме реализация товаров и услуг через расширение.

как тут заплатить рублями? (так и не понял как тут одноразово купить стартмани)
17. user633533_encantado 11 06.12.18 15:28 Сейчас в теме
(16) Можно без всяких расширений просто сделать внешнюю обработку заполнения документа.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот