Имя: Пароль:
1C
 
ПослеУдаленияСтроки() в 1С 7.7
0 siggoron
 
17.06.11
18:53
как реализовать в 1С 7.7 механизм который осуществляет обработку после удаления строки табличной части. попробовал совет ФормаДокумента: ПриУдаленииСтроки , но форма ругается что процедура вызывается как форма, что делать?
1 NS
 
17.06.11
18:54
Процедура ПриУдаленииСтроки()
КонецПроцедуры

Сегодня ДенисЧ чёто разошелся...
2 siggoron
 
17.06.11
18:56
так эт не то что надо, т.к. во время этой процедуры ТЧ считается полной(
3 NS
 
17.06.11
18:59
(2) Тогда текст с процедурой на форму. он автоматом выполнится после удалении строки.
перем удаленастрока;
Процедура ПриУдаленииСтроки()
 удаленастрока=1;
КонецПроцедуры
Функция ВиситНаТвоемТексте()
 Если удаленастрока=1 тогда
    Запускаешь();
    удаленастрока=0;
 КонецЕсли;
 Возврат "";
КонецФункции
удаленастрока=0;
4 NS
 
17.06.11
19:00
(2) Блин, в предыдущей ветке ведь (3) написано.
5 NS
 
17.06.11
19:02
Всё понял. У тебя метод там вызывается который нельзя вызывать из форм диалога...
перем удаленастрока;
Процедура ПриУдаленииСтроки()
 удаленастрока=1;
 Форма.Закрыть(0);
КонецПроцедуры
Процедура ПриЗакрытии()
 Если удаленастрока=1 тогда
    Запускаешь();
    удаленастрока=0;
    статусвозврата(0);
    возврат;
 КонецЕсли;
КонецФункции
удаленастрока=0;
6 siggoron
 
17.06.11
19:03
(4) так вот не получается ошибку выдает, может не верно текст на форму положил?
7 NS
 
17.06.11
19:05
(6) см (3) Это должна быть функция, заголовок текста убираешь, в дополнительно прописываешь её.
8 siggoron
 
17.06.11
19:05
(5) "Всё понял. У тебя метод там вызывается который нельзя вызывать из форм диалога...", метод в процедуре?
9 NS
 
17.06.11
19:08
(8) Для начала см. 7
Ругань звучит как что-то там форм диалогов? Если нет, то на (5) забей.
10 siggoron
 
17.06.11
19:18
(9) другая ругань, но всё равно не выходит, чё такое понять не могу(
11 Cthulhu
 
17.06.11
19:19
(10): так и говорит - "на вот тебе ДРУГУЮ РУГАНЬ"?..
12 siggoron
 
17.06.11
19:22
ругани вообще нет, только вот, в чем проблема, всё работает так как надо функция вызывается, но и она считает что удаленная строка существует
13 NS
 
17.06.11
19:23
Процедура ПриУдаленииСтроки()
 удалитьстроку();
 статусвозврата(0);
 твояпроцедура();
КонецПроцедуры

Короче - так будет проще.
14 Ахиллес
 
17.06.11
19:25
(0) Что ты сделать то пытаешься после удаления строки?
15 Cthulhu
 
17.06.11
19:25
// (12): ну тогда попробуй
перем удаленастрока;
Процедура ПриУдаленииСтроки()
 удаленастрока=1;
КонецПроцедуры
Функция ВиситНаТвоемТексте()
 Если удаленастрока=1 тогда
   Форма.Закрыть(0);
 КонецЕсли;
 Возврат "";
КонецФункции
Процедура ПриЗакрытии()
 Если удаленастрока=1 тогда
    Запускаешь();
    удаленастрока=0;
    статусвозврата(0);
    возврат;
 КонецЕсли;
КонецФункции
удаленастрока=0;
16 Cthulhu
 
17.06.11
19:25
(13): тогда в приудалениистроки не надо статусвозврата(0)?..
17 NS
 
17.06.11
19:26
(16)
Как-же?
Я же сам удалил строку, штатное удаление я же должен отменить?
18 siggoron
 
17.06.11
19:26
(14) Перебрать оставшиеся строки и определенным из них установить значения
19 Ахиллес
 
17.06.11
19:32
Блин, ну откройте уже любую типовую конфигурацию и посмотрите, как она пересчитывает после удаления строки в документе... пипец просто какой то...
(18)глПересчетТаблЧасти(Контекст,Форма.ТекущаяКолонка()) повешеная на табличную часть ни на что не намекает?
20 Cthulhu
 
17.06.11
19:32
(17): а. етить. я думал ты это в призакрытии!..
21 siggoron
 
17.06.11
19:34
(19) ну..., разъясни
22 siggoron
 
17.06.11
19:38
(19) нет у меня возможности просмотреть эт функцию
23 Ахиллес
 
17.06.11
19:38
Прогнал, при удалении строки она не вызывается. Зато чудненько вызываются процедуры которые пересчитывают итог по документу и рисуют результат на форме.
24 siggoron
 
17.06.11
19:41
всё никак, всё не то, чё делать...
25 Ахиллес
 
17.06.11
19:46
(24) НА ФОРМУ ДОКУМЕНТА кидаешь объект "текст" ему в "формулу" пишешь ПересчТЧ()
В модуле формы документа:
Функция ПересчТЧ()
   возврат(КоличествоСтрок());
КонецФункции

Ферштейн?
26 siggoron
 
17.06.11
19:47
Всё сделал как в  (3), ошибок никаких нет, но при просмотре в отладчике вот такая хрень;
функция привинченная к форме вызывается при удалении элемента минимум 2 раза, в итоге первый раз значение говорит о том что строки удалялись но количество строк в ТЗ не изменилось, второй раз уже значение говорит о том что строки не удалялись (0) а количество строк уменьшено на единицу. И чё эт такое???
27 siggoron
 
17.06.11
19:48
(25) и...
28 Ахиллес
 
17.06.11
19:53
(27) Формулы повешеные на форме дёргаются при каждом чихе. Она может и десять раз вызватся и сто раз, если юзер будет просто возить мышкой по экрану и тыкать куда не попадя. Запоминай например промежуточную сумму документа и вставляй проверку если итог по табличной части изменился, тогда из этой функции вызываешь свою процедуру и восстанавливаешь флаг неизменности. NS всё тебе разжевал, что у тебя не получается не понятно.
29 siggoron
 
17.06.11
19:57
(28) ОГРОМНОЕ спасибо!!! Вот что я сделал и всё получилось:
кинул объект "текст" присвоел ему идентификатор "ААА" в "формулу" написал ПересчТЧ()

В модуле формы документа прописал:

Функция ПересчТЧ()
Если Число(AAA) <> Число(КоличествоСтрок()) Тогда
 МояПроцедура();
КонецЕсли;

Возврат(КоличествоСтрок());


И ВСЁ ЗАРАБОТАЛО)))))))))))))))))))))
КонецФункции
30 siggoron
 
17.06.11
19:59
(28) ОГРОМНОЕ спасибо!!! Вот что я сделал и всё получилось:
кинул объект "текст" присвоел ему идентификатор "ААА" в "формулу" написал ПересчТЧ()

В модуле формы документа прописал:

Функция ПересчТЧ()
Если Число(AAA) <> Число(КоличествоСтрок()) Тогда
 МояПроцедура();
КонецЕсли;

Возврат(КоличествоСтрок());
КонецФункции


И ВСЁ ЗАРАБОТАЛО)))))))))))))))))))))
31 Cthulhu
 
17.06.11
20:02
(30): а (15) не работает?
(а чтио такое "ААА"???)
32 siggoron
 
17.06.11
20:03
(31) сравни объём кода)
"ААА" - я такой идентификатор текстовому полю на форме присвоел)
33 Табуретко
 
23.06.11
12:29
проверка
+ Code
//==== проверка ========
34 andrewks
 
23.06.11
12:34
(33) это чо?
35 Табуретко
 
23.06.11
12:35
проверка
//======== проверка ========
36 Табуретко
 
23.06.11
12:35
да что за тег у них "Code"?
37 andrewks
 
23.06.11
12:39
(36) в спячке был? нет такого тега, там автомат, после опред.кол-ва строк оборачивает в +Code
38 andrewks
 
23.06.11
12:39
39 Табуретко
 
23.06.11
12:50
спс