Имя: Пароль:
1C
1C 7.7
v7: Не могу получить номер текущей колонки
,
0 Melcor
 
14.07.16
15:03
1С 7.7 ТиС
Есть ТЗ в форме диалога, после заполнения ТЗ, кликаю по ней и попадаю в процедуру:
Процедура ПоТЗ()
    ТекНоменклатура=ТЗбиг.ПолучитьЗначение(ТЗбиг.ТекущаяСтрока(),2);
    сообщить(ТЗбиг.ТекущаяКолонка());
    
КонецПроцедуры

Но почему-то номер колонки не выходит, она только с идентификаторм мною назначеным работает?
1 Ёпрст
 
14.07.16
15:05
(0) а чего в сообщить то пишет ?
2 Melcor
 
14.07.16
15:06
(1) ничего, в отладчике выводит ""
3 Melcor
 
14.07.16
15:08
До этого всегда имя колонке писал, а тут доделать надо и переписывать ТЗ у которой 56 колонок очень не хочется)
4 Ёпрст
 
14.07.16
15:09
если заремить ТекНоменклатура=ТЗбиг.Пол
тоже ничего не пишет ?
Еще нет нигде текста с функцииями на форме ? которые фокус с тз твоей уводят ?
5 Ёпрст
 
14.07.16
15:09
так то, всё возвращать должен
6 Melcor
 
14.07.16
15:12
(4) Функция есть
7 Melcor
 
14.07.16
15:12
(4) но она при смене колонок не срабатывает
8 Ёпрст
 
14.07.16
15:13
(7) а ты смену колонки хочешь ловить, при неизменной строке ?
9 Ёпрст
 
14.07.16
15:13
такое, только при обновлении формы можно.

Или, отказ от тз, взять табличное поле и сделать по-человечьи
10 Melcor
 
14.07.16
15:14
(8) В идеале хотелось бы, но хоть по клику чтоб срабатывала
11 Melcor
 
14.07.16
15:15
(9) Табличное поле? а разве в 7.7 оно есть О_о
12 aka AMIGO
 
14.07.16
15:18
(10) у меня по клику в любой строке и колонке срабатывает..
Прямо в функции определяю колонку.
Отладчиком-то не пробовал?
13 Melcor
 
14.07.16
15:20
(12) Пробовал, ТекущаяКолонка() = ""
14 aka AMIGO
 
14.07.16
15:23
Процедура ПриВыбореСтрокиТЗ() //это процедура в свойствах таблицы
    Если Список.КоличествоСтрок()=0 Тогда
        Возврат;
    КонецЕсли;
    
    Стр = Список.ТекущаяСтрока();
    Товар = Список.Товар;
    
    Если Список.ТекущаяКолонка()="ВПути" Тогда
        ПечатьЗаказов();
        
    ИначеЕсли Список.ТекущаяКолонка()="Рез" Тогда
        ПечатьРезервов();
        
    ИначеЕсли Список.ТекущаяКолонка()="ЖР" Тогда
        ПечатьЖР();
        
    ИначеЕсли Список.ТекущаяКолонка()="Колво" Тогда
        Кол = Список.Колво;
        Если ВвестиЧисло(Кол,"Введите количество",10,0)=1 Тогда
            Список.Колво=Кол;
            ДатаДок=ТекущаяДата();
            Цена = Пересчет(Товар.Цена1, Товар.ВалютаПрод, ДатаДок, Валюта, ДатаДок);
            Список.Сумма= Цена*Кол;
            
        КонецЕсли;
    ИначеЕсли Список.ТекущаяКолонка()="Товар" Тогда
        Товар = Список.Товар;
        ПечатьИнфыПоТовару(Товар);
        
    КонецЕсли;
    
КонецПроцедуры
15 aka AMIGO
 
14.07.16
15:23
вот такая живущая процедура.
16 Melcor
 
14.07.16
15:24
(14) У тебя идентификатор назначен, так и у меня работает, а мне не хотелось бы переделывать, сейчас у меня вот так

    ТЗбиг.КоличествоКолонок(56);
       ТЗбиг.УстановитьПараметрыКолонки(1,"Строка",,,"Код",7,,1);  
    ТЗбиг.УстановитьПараметрыКолонки(2,"Справочник.Товары",,,"Товар",30,,1);  
    ТЗбиг.УстановитьПараметрыКолонки(3,"Число",,,"Ост.",8,,2);  
    ТЗбиг.УстановитьПараметрыКолонки(4,"Дата",,,"Приход",10,,1);  

    //Закупочная цена
    ТЗбиг.УстановитьПараметрыКолонки(5,"Число",,,"Курс",10,,2);  
    ТЗбиг.УстановитьПараметрыКолонки(6,"Число",,,"Цена",10,,2);  
    ТЗбиг.УстановитьПараметрыКолонки(7,"Число",,,"USD",10,,2);  
    ТЗбиг.УстановитьПараметрыКолонки(8,"Число",,,"Нов цена",10,,2);
17 Melcor
 
14.07.16
15:26
Выходит так, что если указываешь номер колонки, то потом его не получить(
18 aka AMIGO
 
14.07.16
15:33
А в отладчике что-нибудь выдаст оператор
ТЗбиг.ПолучитьПараметрыКолонки(1)
?
19 Builder
 
14.07.16
15:34
ТекКолонка = 0;
Аа=ТЗбиг.ТекущаяКолонка(,ТекКолонка);
20 Ёпрст
 
14.07.16
15:35
https://cloud.mail.ru/public/3nPc/pcAL4Vsyw

на вот, всегда ловит
21 Builder
 
14.07.16
15:35
И да, продам СП, дорого!
ТекущаяКолонка(<НоваяКолонка>,<ТекущаяКолонка>)
22 aka AMIGO
 
14.07.16
15:35
На форме диалога имена колонок есть?
23 Melcor
 
14.07.16
15:38
(18) пустота
(19) не помогло
(22) Конечно, я же их написал
24 Builder
 
14.07.16
15:40
(23) Что не помогло?
ТекКолонка = 0;
Аа=ТЗбиг.ТекущаяКолонка(,ТекКолонка);
Сообщить("А вот и номер колонки "+ТекКолонка);
25 Melcor
 
14.07.16
15:40
(20) О, как раз собирался Формекс ставить, чтобы строки красить, не буду тогда парится)
26 Melcor
 
14.07.16
15:42
(24) Ай, спасибо, дорогой! Дай расцелую)
27 Builder
 
14.07.16
15:42
(26) Читай СП, там ПОЧТИ все написано :)