Имя: Пароль:
1C
1С v8
Подвал табличной части документы и пользовательский код
,
0 poddex
 
30.11.11
07:42
Добрый день, прошу Вашего совета.
Есть такой код:

Процедура ДокСЖКТаблЧасть1ДатаВыгрузкиПриИзменении(Элемент)
   СтрокаТабличнойЧасти=ЭлементыФормы.ДокСЖКТаблЧасть1.ТекущиеДанные;
   СтрокаТабличнойЧасти.СрокЖизни=(СтрокаТабличнойЧасти.ДатаВыгрузки-СтрокаТабличнойЧасти.ДатаЗагрузки)/86400;
   // --------------------------------
   КоличествоСтрок=0;
   СуммаСроков=0;
   Для Каждого НайденнаяСтрока из ЭлементыФормы.ДокСЖКТаблЧасть1.Значение Цикл
       КоличествоСтрок=КоличествоСтрок+1;
       СуммаСроков=СуммаСроков+НайденнаяСтрока.СрокЖизни;
   КонецЦикла;
//Толкаем цифру среднего в подвал    ЭлементыФормы.ДокСЖКТаблЧасть1.Колонки[3].ТекстПодвала=Строка(Окр(СуммаСроков/КоличествоСтрок,0,1));
   //---------------------------------
КонецПроцедуры

Суть в том, что цифра среднего отображается в подвале, но после нажатия кнопки [ОК]она там не сохраняется. Т.е. когда открываешь форму документа, в подвале пусто, и цифра появляется там только после изменения даты в одной из ячеек. Как вариант, можно прикрутить вычисление по среднему ПриОткрытии(), но почему цифра всё-таки не сохраняется в подвале? Прошу помощи - направьте, куда рыть.
Заранее всем спасибо за ответ и помощь. Код дилетантский, если Вы заметите там отклонения от концепции, прощу сильно не бить по голове.
1 poddex
 
30.11.11
07:43
Ошибся маленько, когда копировал

Процедура ДокСЖКТаблЧасть1ДатаВыгрузкиПриИзменении(Элемент)
   СтрокаТабличнойЧасти=ЭлементыФормы.ДокСЖКТаблЧасть1.ТекущиеДанные;
   СтрокаТабличнойЧасти.СрокЖизни=(СтрокаТабличнойЧасти.ДатаВыгрузки-СтрокаТабличнойЧасти.ДатаЗагрузки)/86400;
   // --------------------------------
   КоличествоСтрок=0;
   СуммаСроков=0;
   Для Каждого НайденнаяСтрока из ЭлементыФормы.ДокСЖКТаблЧасть1.Значение Цикл
       КоличествоСтрок=КоличествоСтрок+1;
       СуммаСроков=СуммаСроков+НайденнаяСтрока.СрокЖизни;
   КонецЦикла;
   //Толкаем цифру среднего в подвал
   ЭлементыФормы.ДокСЖКТаблЧасть1.Колонки[3].ТекстПодвала=Строка(Окр(СуммаСроков/КоличествоСтрок,0,1));
   //---------------------------------
КонецПроцедуры
2 Wobland
 
30.11.11
07:44
в подвале ничего не хранится по определению
3 Wobland
 
30.11.11
07:45
кстати, бью по голове: покури ТЧ.Итог() и ТЧ.Количество() СП
4 poddex
 
30.11.11
07:46
Спасибо, уже курю...
5 poddex
 
30.11.11
08:35
После курения получилось следующее:

Процедура ДокСЖКТаблЧасть1ДатаВыгрузкиПриИзменении(Элемент)
   СтрокаТабличнойЧасти=ЭлементыФормы.ДокСЖКТаблЧасть1.ТекущиеДанные;
   СтрокаТабличнойЧасти.СрокЖизни=(СтрокаТабличнойЧасти.ДатаВыгрузки-СтрокаТабличнойЧасти.ДатаЗагрузки)/86400;
   //------------------------
   ВсегоСроков=ДокСЖКТаблЧасть1.Итог("СрокЖизни");
   ВсегоСтрок=ДокСЖКТаблЧасть1.Количество();
   ЭлементыФормы.ДокСЖКТаблЧасть1.Колонки[3].ТекстПодвала=Окр(ВсегоСроков/ВсегоСтрок,0,1);
   //---------------------------------
КонецПроцедуры

Всё работает.

Остался вопрос - если я из модуля форму обращаюсь к ТЧ так, как описано в синтакс-помощнике, т.е.
ДокументТабличнаяЧасть.СрокЖизниКартриджа.ДокСЖКТаблЧасть1....

проверка модуля заявляет, что "Переменная не определена (ДокументТабличнаяЧасть).  Как разобраться в подсказках синтакс-помощника, направьте, пожалуйста.
Заранее спасибо.
6 Wobland
 
30.11.11
08:37
твоя ТЧ называется ДокументТабличнаяЧасть?
7 poddex
 
30.11.11
08:40
Нет, вот как описано в синтакс-помощнике:

Имя табличной части объекта формируется следующим образом:
<Префикс полного имени объекта>ТабличнаяЧасть.<Имя прикладного объекта>.<Имя табличной части>.
Например: СправочникТабличнаяЧасть.Номенклатура.Состав, где "Номенклатура" - имя справочника, как оно задано в конфигураторе, "Состав" - имя табличной части справочника "Номенклатура".

Повторяя вслед за синтакс-помощником: ДокуметТабличнаяЧасть.СрокЖизниКартриджа.ДокСЖКТаблЧасть1.... ругается проверка. Может, надо как-то присвоить или получить объект?
8 Wobland
 
30.11.11
08:43
(7) откуда обращаешься? из модуля формы документа? просто скажи ТвояТЧ.ЧтоТоТам
9 Wobland
 
30.11.11
08:43
кстати, СрокЖизниКартриджа - это реквизит ТЧ? какую строку хочешь тогда менять/читать?
10 poddex
 
30.11.11
08:47
Ну, я так и сделал в итоговом коде. А как быть с синтакс-помощником? Понимания после прочтения его справки не сложилось, и так, как он описывает, нельзя сделать. И не указано, откуда нужно обращаться таким образом, как описано в синтакс-помощнике. Ну да ладно, чёрт с ним, проблема-то с подвалом решена, и даже сверх того....
Спасибо Вам, Wobland, за помощь.
11 Wobland
 
30.11.11
08:53
ничего не понял, видно давно не вникал в СП. ну да на здоровье
12 Lenka_Boo
 
30.11.11
09:31
(0) А "ФормаПриОтурытии" Курить не пробовал?
13 Lenka_Boo
 
30.11.11
09:42
*ФормаПриОткрытии
14 poddex
 
30.11.11
14:36
Это курнул и прикрутил.
Ошибка? Это не ошибка, это системная функция.