Имя: Пароль:
1C
 
как разрешить редактирование таблицы на форме
0 smolbars
 
17.09.07
09:18
Всем доброго времени суток

Ситуация такая - на форме имеется таблица не связанная с таб частью документа (т е логически связана но не реквизит документа - она программно наполняется данными таб части). По событию
ВводНаОсновании создается ее структура. Затем по элементу наполняетсяя данными

Но сделать ее доступной для редактирования не удается. Причем вообще то доступной для редактирования должна быть только 1 из колонок.


вот код формирования структуры

Процедура СтруктураТаб()
 ТаблицаРек.НоваяКолонка("номстр","Число",10); // номер строки
 ТаблицаРек.НоваяКолонка("ИмяРек","Строка"); // имя реквизита таб части
 ТаблицаРек.НоваяКолонка("старый","Неопределено"); // имя значения реквизита таб части
 ТаблицаРек.НоваяКолонка("новый","Неопределено"); // имя значения реквизита таб части    
КонецПроцедуры

А вот ТаблицаРек.Редактировать(1); не работает

Как и ТаблицаРек.Доступность(1);
Что делаю не так? Ругаецо на отсутвие методов

ТаблицаРек.новый.Редактировать(1) (собсно доступной должна быть только 1 из колонок остальные только для чтения) тож не катит с той же ошибкой


И еще такой вопрос - как провести документ из модуля другого документа. Документ не новый а уже существующий и даже проведенный.
Версия 7.7
1 ТелепатБот
 
гуру
17.09.07
09:18
2 Морозов Александр
 
17.09.07
09:19
ТЗ вообще не редактируются
3 Ирен
 
17.09.07
09:20
(2) если захотеть, то редактируется
4 Конь в пальто
 
17.09.07
09:20
бред какой-то... где такие методы у тз хоть взял?
5 Ирен
 
17.09.07
09:20
+(3) только не таким методом
6 Подводный Таракан
 
17.09.07
09:21
(0) 1) На таблицу надо формулу, имхо, повесить...
   2) Обыкновенно проводишь) находишь нужный док, Записать();Провести();
7 Морозов Александр
 
17.09.07
09:21
(3) эмулируется редактирование....
8 Мулька
 
17.09.07
09:21
ОбработкаЯчейкиТаблицы()
9 sxxs
 
17.09.07
09:23
можно редактировать через процедуру - фтыкаешь на таблицу, там формула типа РедактироватьТаблицу()
и делаешь эту процедуру, а в ней проверяешь - чо за ячейка, чо за колонка и вызываешь далее другой метод для редактирвоания конкретного значения
10 у лю 427
 
17.09.07
09:27
просто мистец...
"Доступно и всерьез" (цы)
11 sxxs
 
17.09.07
09:28
в качестве примера (в свойствах ТЗ стоит в формуле ПриВыбореКолонки())
Процедура ПриВыбореКолонки()
   ТекКолонка    = ТаблЗначений.ТекущаяКолонка();
   ТекСтрока    = ТаблЗначений.ТекущаяСтрока();
   Если ТекСтрока = 0 Тогда
       Возврат;
   Конецесли;
   Если ТекКолонка <> "Пометка" Тогда
       Возврат;
   Конецесли;
ТаблЗначений.УстановитьЗначение(ТекСтрока,ТекКолонка,3-ТаблЗначений.ПолучитьЗначение(ТекСтрока,ТекКолонка));
КонецПроцедуры

в качестве обработки ячейки можна использовать что-то вроде ВвестиЗначение() итд
12 smolbars
 
17.09.07
10:53
2sxxs
Ну формулу воткнул. А само редактирование не идет - просто недуостпна таблица и все. Че нужно отключить или подключить чтобы она на форме была досупна

проведение из другого документа:
Основание - ссылка на документ
Док = СоздатьОбъект("Документ." + Основание.Вид());
...

Док.Записать();  
Док.Провести();  
{Документ.ОбщаяКорректировка.Модуль Документа(39)}: Данная операция недоступна при проведении документа!
Запись на ура работает на 7.7 не 8 - где автоматом проводится документ по записи
13 sxxs
 
17.09.07
10:55
она на форме и не будет доступна.
Через процедуру напрмер вызываешь ввестизначение (открывается форма для ввода значения, в кт ты можешь передать предыдущее значение.
14 lalex23
 
17.09.07
10:58
15 smolbars
 
17.09.07
14:35
Что касается ввестизначение - заработало, пасибо огромное. Но проблема перешла в другую плоскость.
В таблицу загнано м б что угодно - ссылка на документ, число, строка, справочник

обращение
Знч = ТипЗначенияСтр(ТаблицаРек.ПолучитьЗначение(ТекСтрока,"Новый"));
возвращает только ссылку неопреденного вида. Можно как то извлечь всю ссылку
типа: справочник.номенклатура
Но прямо по этому значению - или нада поднимать чей это был реквизит (через метаданные)?
16 mikecool
 
17.09.07
14:38
(15) бери у полученного значения тип и вид...
17 smolbars
 
17.09.07
14:50
ТаблицаРек.ПолучитьЗначение(ТекСтрока,"Новый").Вид()

Выдает пустую строку.
или это по другому делается?
18 smolbars
 
17.09.07
15:09
Не все ок - ошибся
19 smolbars
 
18.09.07
09:59
Но вот вопрос номер 2 - кто нить может подсказать - как провести документ из другого документа. Не работает и все тут
20 1Сергей
 
18.09.07
10:08
(19) из модуля формы или из модуля?
21 CrecerRu
 
18.09.07
10:11
(19) проводи приЗаписи()
22 smolbars
 
18.09.07
10:14
Из модуля документа. Но другого. В проводимый документ вписываю в событие при записи фразу Призаписиперепроводить(1). Но документ не проводится - по крайней мере когда я ставлю фразу сообщить в обрботку проведения этого документа - она не появляется - отсюда сделал вывод что документ не перепроводится
23 Ёпрст2
 
18.09.07
10:37
(19) Зло это ... но если очень надо, то на:
http://www.sinor.ru/~my1c/knowhow/post_drd.html
24 smolbars
 
18.09.07
11:14
Заработало Епрст2 - пасибо огромное. Хотя криво это конечно. Вроде есть какой то нормальный путь - типо как есть обработка документов - но бухгалтерии 7ки под рукой нет а в торговле ее не нахожу
Независимо от того, куда вы едете — это в гору и против ветра!