Имя: Пароль:
1C
 
УФ обновление инфы в табличной части документа
0 invest
 
12.10.15
11:26
Добрый день.

Имеется документ с табличной частью. Это таблица имеет всего одну физическую колонку который имеет путь Объект.Заказы.Документ. Также имеется формальная колонка сумма заявки которая имеет путь к данным Объект.Заказы.Документ.СуммаДокумента. Все конечно хорошо работает но когда сумма документа изменяется программно то в табличной части значение сумму заявки не изменяется. Как можно решить?
1 GreatOne
 
12.10.15
11:28
обновить()
2 invest
 
12.10.15
11:39
(1) Элементы.Заказы.Обновить();
не сработало
3 hhhh
 
12.10.15
11:47
перечитать() наверно
4 GreatOne
 
12.10.15
11:49
5 invest
 
12.10.15
12:10
(4) не открывается залейте, плиз на яндекс файлы
6 Любопытная
 
12.10.15
12:11
(5) ОбновитьОтображениеДанных ищи в СП
7 DTXyupyup
 
12.10.15
12:22
Я так понял, у него изменяется сумма другого документа.
> когда сумма документа изменяется программно то в табличной части значение сумму заявки не изменяется. Как можно решить?
Программно изменить сумму заявки.

А вообще покажи, как программно изменяешь сумму документа. Для ясности
8 invest
 
12.10.15
12:26
(6) не сработало
9 invest
 
12.10.15
12:31
(7). активизируем строку табличной части. Нажимаем на кнопку "Изменить" в командной панели табличной части. Открывается окно в модальном режиме. там правим реквизиты. вызаваем серверную процедуру при нажатие кнопки ок.

&НаСервере
Процедура ОбновитьЗаказКлиента()
    
    ЗаказОбъект = Документ.ПолучитьОбъект();
    
    Для Каждого СтрокаНоменклатуры Из Товары Цикл
        
        НайденнаяСтрока = ЗаказОбъект.Товары.Найти(СтрокаНоменклатуры.Номенклатура, "Номенклатура");
        Если НайденнаяСтрока = Неопределено Тогда
            Продолжить;
        КонецЕсли;
                    
        Если СтрокаНоменклатуры.Количество = СтрокаНоменклатуры.Отказ Тогда // полный отказ по позиции
            
            НайденнаяСтрока.Отменено = Истина;
            НайденнаяСтрока.ПричинаОтмены = ПредопределенноеЗначение("Справочник.ПричиныОтменыЗаказовКлиентов.ОсновнаяПричина");
        Иначе
            НайденнаяСтрока.Отменено = Ложь;
            НайденнаяСтрока.ПричинаОтмены = ПредопределенноеЗначение("Справочник.ПричиныОтменыЗаказовКлиентов.ПустаяСсылка");
            
            НайденнаяСтрока.Количество = СтрокаНоменклатуры.Количество - СтрокаНоменклатуры.Отказ;
            НайденнаяСтрока.КоличествоУпаковок = НайденнаяСтрока.Количество;
            
            СтруктураДействий = Новый Структура;
            СтруктураПересчетаСуммы = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруПересчетаСуммыНДСВСтрокеТЧ(ЗаказОбъект);
            СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
            СтруктураДействий.Вставить("ПересчитатьСуммуНДС", СтруктураПересчетаСуммы);
            СтруктураДействий.Вставить("ПересчитатьСуммуСНДС", СтруктураПересчетаСуммы);
            СтруктураДействий.Вставить("ПересчитатьСумму");
            СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
            СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомАвтоматическойСкидки", Новый Структура("Очищать", Истина));
                        
            //ТекущаяСтрокаСтруктура = ПолучитьТекущуюСтрокуСтруктурой(НайденнаяСтрока, СтруктураДействий);
            ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(НайденнаяСтрока, СтруктураДействий, Неопределено);
            //ЗаполнитьЗначенияСвойств(ТекущаяСтрока,ТекущаяСтрокаСтруктура);
            
        КонецЕсли;
        
    КонецЦикла;        
    
    НайденныеСтроки = ЗаказОбъект.Товары.НайтиСтроки(Новый Структура("Отменено", Истина));
    Если НайденныеСтроки.Количество() = ЗаказОбъект.Товары.Количество() Тогда
        ЗаказОбъект.ЭтапыГрафикаОплаты.Очистить();
        
        ЗаказОбъект.Статус = Перечисления.СтатусыЗаказовКлиентов.Закрыт;
    КонецЕсли;
    
    ЗаказОбъект.Записать();
    
КонецПроцедуры

и ЭтаФорма.Закрыть(Новый Структура("Модифицирован", Истина));

модульная форма закрыта с передачей параметров. Теперь надо дать команду обновить реквизит.