Имя: Пароль:
1C
1С v8
УФ: изменение строки табличной части
0 Kateryne
 
06.11.13
11:53
Есть метод в модуле объекта документа, оперирует конкретной строкой табличной части объекта.
Т.е. что-то типа:

Процедура ИзменитьСтрокуТабличнойЧасти(СтрокаТаблЧасти)
    СтрокаТабличнойЧасти.Поле1 = СтрокаТабличнойЧасти.Поле2;
    // естественно, алгоритм сложнее, но для простоты пусть так
КонецПроцедуры

Не получается корректно вызвать из модуля формы. Пишу что-то типа:

&НаСервере
Процедура ПриИзмененииНашегоПоля(НомерСтроки)
    НашОбъект = РеквизитФормыВЗначение("Объект"); // основной реквизит формы
        СтрокаТаблЧасти = НашОбъект.ТабличнаяЧасть.Получить(НомерСтроки);
    НашОбъект.ИзменитьСтрокуТабличнойЧасти(СтрокаТаблЧасти);
КонецПроцедуры

&НаКлиенте
Процедура ТабличноеПолеПоле1ПриИзменении(Элемент) // табличное поле привязано к табличной части нашего объекта
    ПриИзмененииНашегоПоля(ЭтаФорма.ТекущийЭлемент.ТекущаяСтрока);
КонецПроцедуры

Все отрабатывает корректно в отладчике, но на форме не отображается, и после сохранения и повторного открытия документа тоже остается без изменений.

Надо явно давать команду обновления формы? Или еще что-то?
1 Asmody
 
06.11.13
11:58
РеквизитФормыВЗначение сделал, а обратно кто делать будет?
2 Kateryne
 
06.11.13
12:08
Логично, черт возьми. Хм, и так каждый раз?
Наверное, проще будет переложить метод в модуль менеджера...
Как вообще обычно делают?
3 Kateryne
 
06.11.13
12:09
Туплю, кстати. Перекладывание не поможет...
4 hhhh
 
06.11.13
12:17
(2) вообще-то в 90% случаев

    СтрокаТабличнойЧасти.Поле1 = СтрокаТабличнойЧасти.Поле2;

прокатит. Вы проверьте.

Примитивные типы: строка, число, дата точно. СправочникСсылка тоже должно прокатить.
5 Renat11111
 
06.11.13
12:43
(0) ради интереса можно посмотреть алгоритм этой процедуры ИзменитьСтрокуТабличнойЧасти?
Ошибка? Это не ошибка, это системная функция.