Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Не входит в процедуру ПриВыбореЯчейкиТаблицы

v7: Не входит в процедуру ПриВыбореЯчейкиТаблицы
Я
   ArtemonChempion
 
05.03.21 - 12:49
Добрый день! Помогите, пожалуйста!
Из формы журнала документов запускается процедура, которая в итоге выводит таблицу в режиме ввода данных(Таб.ТолькоПросмотр(0)) для возможности бухгалтерии удалить не нужные строки. Стоит задача, чтобы при двойном щелчке по одной ячейке оставшиеся строки сохранялись в excel, а по другой - выгружались в СЗ или ТЗ для последующей передачи во внешнюю обработку. Подскажите, как мне попасть в процедуру ПриВыбореЯчейкиТаблицы кликами по определенным ячейкам. В данный момент они никак не реагируют, редактируются как и вся таблица(((

Процедура ПриВыбореЯчейкиТаблицы(Адрес,ТекЗн)

    Адрес = Сред(Адрес,2,Найти(Адрес,":")-2);
    НС = Число(Сред(Адрес,1,найти(Адрес,"C")-1));
    НК = Число(Сред(Адрес,найти(Адрес,"C")+1));

    Если НС = Таб.ВысотаТаблицы() тогда
           Если НК = 9 тогда
                   //сохраняем
        ИначеЕсли НК = 13 тогда
               
                //открываем форму
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

Спасибо!!!
   Builder
 
1 - 05.03.21 - 12:53
Таблица точно в режиме ввода данных?
   ArtemonChempion
 
2 - 05.03.21 - 12:56
(1) Да.
Вот конец процедуры формирования таблицы:

    ИтогоПечСумма = ИтогоСумма + ТД.Итог("Сумма");
    Таб.ВывестиСекцию("ИтогоСнадписью");
    Таб.Опции(0, 0, 5, 0, "РеестрСчетов", "РеестрСчетов");
    Таб.ВывестиСекцию("Подвал");
    Таб.ОбластьПечати(2);
    
    Таб.ТолькоПросмотр(0);
    Таб.Показать("Реестр счетов","Для выгрузки",1);
    

КонецПроцедуры
   Злопчинский
 
3 - 05.03.21 - 13:00
таб.ТолькоПросмотр(1) - пробовал?
   Злопчинский
 
4 - 05.03.21 - 13:01
фу, фигню я написал
   Злопчинский
 
5 - 05.03.21 - 13:01
Внимание!
Данная предопределенная процедура вызывается в модуле формы отчета (обработки) при выборе ячейки только для таблиц в режиме ввода данных.
   ArtemonChempion
 
6 - 05.03.21 - 13:04
(5) Таб.ТолькоПросмотр(0) разве не говорит о том, что таблица в режиме ввода данных? или я что-то не правильно понимаю?
   Builder
 
7 - 05.03.21 - 13:05
(6) Нет конечно.
Открой Форму
Действия - свойства формы.
Вот там настраивай таблицу в режиме ввода данных :)
   Builder
 
8 - 05.03.21 - 13:06
+ к(7) Таблица у тебя появится прямо на форме!
   Злопчинский
 
9 - 05.03.21 - 13:09
Рекомендую прочитать (5) ВДУМЧИВО
   Сияющий Асинхраль
 
10 - 05.03.21 - 13:15
Я конечно уже сто лет как с семеркой не работал, но сколько помню, если у тебя таблица в режиме ввода данных то хрен ты туда добавишь программно секции как у тебя:

Таб.ВывестиСекцию("Подвал");

То бишь таблицы строки которых формируются программно не являются таблицами в режиме ввода данных. Хотя в них тоже можно извратиться и вводить данные, но чуток посложнее, делается по двойному щелчку на ячейке, причем в этом случае как раз должно быть:

таб.ТолькоПросмотр(1)
   Сияющий Асинхраль
 
11 - 05.03.21 - 13:21
+(10) А чтобы поглядеть как работают таблицы в режиме ввода данных глянь на регламентированную отчетность. Там почти все на таких таблицах, ну и заодно обрати внимание, что там нигде нет программного формирования и вывода отдельных строк и секций таблицы, то бишь таблица выводится так как нарисована...
   Ёпрст
 
12 - 05.03.21 - 13:22
(0) вы путаете понятия.
Есть просто Таблица, есть Пустая Таблица и есть РВД

У вас первая, чтобы что-то поймать, форма должна быть не закрыта + использовать ОбработкаЯчейкиТаблицы
   Злопчинский
 
13 - 05.03.21 - 13:25
Из !!!формы журнала документов!!! таблицу РВД вы не сделаете.
   Калиостро
 
14 - 05.03.21 - 13:41
+(12) форма должна быть не закрыта. Если закрыта, то сработает процедура глобального модуля ОбработкаЯчейкиТаблицы.
   ArtemonChempion
 
15 - 07.03.21 - 12:54
Добрый день, Коллеги.
В форме журнала есть кнопка, запускающая процедуру, прямо в модуле журнала, ее результат - эта таблица. если таб.ТолькоПросмотр(1) и установлены флажки "Защита" работает ОбработкаЯчейкиТаблицы, но нет возможности удалить полностью строки, при снятом флажке, можно только редактировать значение ячеек, а стоит задача полностью удалять строки... (7)  в действиях вообще нет свойств формы(((Требуется отредактировать, именно, в этой таблице кол-во строк и реализовать отработку двух кнопок: сохранить и выгрузить. (14) форма не закрывается. Я только начинаю программировать 1с, будьте снисходительны, если мои вопросы кажутся Вам тупыми. Подтолкните, просто, в каком направлении двигаться. Спасибо!
   ArtemonChempion
 
16 - 10.03.21 - 09:11
Реализовал. Не так, как хотел изначально, но думаю, прокатит. Всем спасибо за советы !!! Тему закрывайте
   Злопчинский
 
17 - 10.03.21 - 11:31
(16) открывал бы обработку с ТЗ сразу и все.. Отмечаешь нужные строки и улдаляешь. или по клику на строке удаляешь или по клику на определенной колонке со значком Х удаляешь. потом по уже оставшимся данным - формируешь нужную печформу или эту ТЗ передаешь куда надо дальше
   ArtemonChempion
 
18 - 17.03.21 - 14:07
Добрый день, Коллеги!!!
Новая задача от бухгалтерии) Теперь, когда они удаляют ненужные строки из таблицы, нужно чтобы сразу же менялась итоговая сумма по одному столбцу. Это вообще реально? Чтобы при удалении строки, на лету просчитывать сумму строк таблицы. Уже пол дня пытаюсь раздуплить.
   Builder
 
19 - 17.03.21 - 14:17
(18) Реально, но мы не знаем что ты там наваял......
   HawkEye
 
20 - 17.03.21 - 14:28
(18) реально все, но проще делать как в (17)
   ArtemonChempion
 
21 - 17.03.21 - 14:31
(20) Из ТЗ им не удобно визуально отбирать строки.
   ArtemonChempion
 
22 - 17.03.21 - 14:40
//формирование таблицы

        ИтогоПечСумма = глФРМ(ИтогоСумма + ТД.Итог("Сумма")); 
    Таб.ВывестиСекцию("ИтогоСнадписью");
    Таб.Опции(0, 0, 5, 0, "РеестрСчетов", "РеестрСчетов");
    Таб.ВывестиСекцию("Подвал");
    Таб.ОбластьПечати(2);    
    Таб.ТолькоПросмотр(1); 
    Таб.Показать("Реестр счетов","Для выгрузки",1);
//потом обработка кнопок


Процедура ОбработкаЯчейкиТаблицы(ТекЗн, СтандартнаяОбработка, Таб, Адрес)
    
    Адрес = Сред(Адрес,2,Найти(Адрес,":")-2);
    НС = Число(Сред(Адрес,1,найти(Адрес,"C")-1));
    НК = Число(Сред(Адрес,найти(Адрес,"C")+1)); 
    
    СтандартнаяОбработка = 1;

    Если НС = Таб.ВысотаТаблицы() тогда
        СтандартнаяОбработка = 0;
           Если НК = 9 тогда
               Если Вопрос("Хотите отобрать и сохранить в файл Excel?","Да+Нет",10) = "Да" тогда
                   Таб.ТолькоПросмотр(0);
                   Таб.Показать("Реестр счетов","Для согласования",1);
                   Предупреждение("Удалите лишние строки. После закрытия таблицы, сможем ее сохранить в файл Excel");
            КонецЕсли;    
        ИначеЕсли НК = 13 тогда 
               Если Вопрос("Выгрузить всю таблицу в бухгалиерию без изменений?","Да+Нет",10) = "Да" тогда 
                Параметр = СоздатьОбъект("ТаблицаЗначений");
                ПараметрДляПередачи.Выгрузить(Параметр,,,);
                ОткрытьФорму("Отчет",Параметр,"C:\Users\ВыгрузкаВБухгалтерию83_v5НаДату.ert");
            КонецЕсли;
            КонецЕсли;
    КонецЕсли; 
    

КонецПроцедуры// ОбработкаЯчейкиТаблицы


Вот нужно чтобы менялось значение ячейки ИтогоПечСумма при удалении строк. Вот, примерно, то, что я наваял)
   ArtemonChempion
 
23 - 17.03.21 - 14:58
https://ibb.co/JxwxZy0
а вот так выглядит таблица
   ArtemonChempion
 
24 - 17.03.21 - 15:03
https://ibb.co/k2dvjVm - св-ва данной ячейки, если поможет. Я так понимаю, нужно в расшифровку влепить процедуру, но как она будет вызываться при удалении ячеек мне не совсем понятно(((
   ArtemonChempion
 
25 - 17.03.21 - 15:32
(19)ну же... Плиз!!!! Хоть какие-то идеи
   HawkEye
 
26 - 17.03.21 - 15:35
(21) ну галку им там добавь....

(25) какие идеи то? делаешь цикл, через Область получаешь значение в нужной ячейке и суммируешь его для итога... главное озаботится знанием с какой ячейки начинать и на какой заканчивать....
   Злопчинский
 
27 - 17.03.21 - 15:43
(21) это ваши проблемы. что мешает увеличить шрифт в ТЗ, разукрасить ее и прочее
   ArtemonChempion
 
28 - 17.03.21 - 15:44
(26) что значит "через Область получаешь значение в нужной ячейке" ?
Я думал как-то так прописать, но как это запустить не понимаю
    Значение = 0;
    Для н = 6 по Таб.ВысотаТаблицы()-2 цикл
        Адрес = "R"+н+"C8"; 
        Значение = Значение + Таб.ЗначениеТекущейЯчейки(Адрес);    
    КонецЦикла;
    Возврат Значение;
Я уже говорил, что плаваю, подскажите
   Злопчинский
 
29 - 17.03.21 - 15:45
в (26) примерно подсказали.
делай проще - ТЗ и Печформа - зеркало. по номеру строки в печформе - можно однозначно определить строку в ТЗ. Жмакнули "удалить" в печформе - удалил нахрен из ТЗ и по ТЗ полностью перерисовал форму. все.
   Злопчинский
 
30 - 17.03.21 - 15:46
(28) открой синтакс помощник, почитай про методы "Таблица" - не найдешь понятного что относится к "получить область" - тогда стучись. за тебя же такие тривиальные вещи мы читать не должны?
 
 Рекламное место пустует
   HawkEye
 
31 - 17.03.21 - 16:12
(28) не Таб.ЗначениеТекущейЯчейки(Адрес), а таб.Область(Адрес).Текст... ну и в число его естественно


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.