Имя: Пароль:
1C
1С v8
Внешняя обработка заполнения табличных частей
, , ,
0 nulback
 
09.11.17
13:03
Добрый день уважаемые. Подскажите пож-та, сделал внешнюю обработку заполнения табличных частей, все отлично отрабатывает и заполняет, но после заполнения необходимо произвести пересчет данных на форме. Т.е. надо как то добратся до ЭлементовФормы и прописать им новые значения. Можно это как то осуществить? Что необходимо сделать?
1 DrShad
 
09.11.17
13:09
вызвать экспортную процедуру формы
2 Zmich
 
09.11.17
13:14
(0). Форма = СсылкаНаОбъект.ПолучитьФорму();
3 DrShad
 
09.11.17
13:19
(2) у него уже есть форма, если он делает заполнение ТЧ
4 Рэйв
 
09.11.17
13:26
(0)Какие новые значения для элементов? Тебе просто форму обновить что ли надо?
5 Мыш
 
09.11.17
13:28
УправляемаяФорма (ManagedForm)
ОбновитьОтображениеДанных
6 Zmich
 
09.11.17
13:29
(3). Ну да, из самой внешней обработки к открытой форме документа можно получить так:
Форма = СсылкаНаОбъект.ПолучитьФорму();
А дальше через Форма.ЭлементыФормы менять не реквизиты объекта, а именно реквизиты формы. Например:
Форма = СсылкаНаОбъект.ПолучитьФорму();
Форма.ЭлементыФормы.НадписьДоговор.Заголовок = "ляляля";
Проверил, работает. Речь, конечно, об обычных формах.
7 DrShad
 
09.11.17
13:52
(6) не нужно ничего получать
8 nulback
 
09.11.17
14:01
(3) и как заполнить эти данные

    ОстатокНаКонец = ОстатокНаНачало + ПоДаннымОрганизации.Итог("Дебет") -  ПоДаннымОрганизации.Итог("Кредит");
    ЭлементыФормы.ОстатокНаНачалоКонтрагент.Значение = - ОстатокНаНачало;
    ЭлементыФормы.ОстатокНаКонец.Значение = ОстатокНаКонец;
    
    ОстатокНаКонецКонтрагент = - ОстатокНаНачало + ПоДаннымКонтрагента.Итог("Дебет") -  ПоДаннымКонтрагента.Итог("Кредит");
    ЭлементыФормы.ОстатокНаКонецКонтрагент.Значение = ОстатокНаКонецКонтрагент;
    
    Если Расхождение <> ОстатокНаКонец + ОстатокНаКонецКонтрагент Тогда
        Расхождение = ОстатокНаКонец + ОстатокНаКонецКонтрагент;
    КонецЕсли;
    ЭлементыФормы.Расхождение.Значение = Расхождение;
    
    ЭлементыФормы.РасхождениеКонтрагент.Значение = Расхождение*(-1);
9 DrShad
 
09.11.17
14:03
вызвать процедуру откуда этот текст или любую другую, которая в себе дергает эту
10 nulback
 
09.11.17
14:12
(9) так пишет Процедура или функция с указанным именем не определена
11 DrShad
 
09.11.17
14:14
(10) а она экспортная?
12 nulback
 
09.11.17
14:20
нет она процедура формы.
13 Рэйв
 
09.11.17
14:22
диалог из разряда
-Она красное?
-Нет, она круглая.
:-)
14 Рэйв
 
09.11.17
14:25
У меня стойкое ощущение, что ТС обработкой заполняет таб части и теперь пытается заполнить рюшки на формах, думая, что при при последующем открытии все это добро будет отображаться.
:-)
15 nulback
 
09.11.17
14:30
(14) да рюшички для пользователя надо заполнить, и да при открытии вызывается та же самая процедура, так что все будет отображаться. это стандартная процедура формы документа Акт сверки взаиморасчетов "Пересчитать остатки".
16 DrShad
 
09.11.17
14:31
(15) ну так либо повтори в своей обработке то же самое, либо сделай ее экспортной и дергай
17 Рэйв
 
09.11.17
14:31
(15)А эти формы,которые ты пытаешься украсить,  в данный момент открыты?
18 nulback
 
09.11.17
14:42
(17) да форма открыта, в ней же нажимают заполнить табличную часть.
19 Рэйв
 
09.11.17
14:46
(18) ну тогда медитируй на (16) и на этом вопрос можно закрывать
20 nulback
 
09.11.17
14:51
(19) это же форма документа, если я ее сделаю экспортной мне надо все равно получить форму документа, чтобы добратся до нее.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.