Имя: Пароль:
1C
1С v8
8.2 Как лучше всего связать две нединамические таблицы на форме по общему полю
,
0 eddy_n
 
25.11.11
11:25
Имеем на форме 2 реквизита с типом Таблица значений. У каждой есть связующее поле. Например, слева на форме таблица классов, справа - учеников всех классов. Хочется, чтобы при активизации строки на таблице классов отображались только ученики этого класса.
1 Maxus43
 
25.11.11
11:35
УФ?
2 Maxus43
 
25.11.11
11:36
если в обычном приложении то есть пример в типовой: Ввод начальных остатков НДС
3 eddy_n
 
25.11.11
11:46
(2) В том то и дело, что речь именно про управляемое приложение.
4 eddy_n
 
25.11.11
16:28
Вообщем, сделал через ОтборСтрок к таблице справа через ФиксированнуюСтруктуру
5 vmv
 
25.11.11
16:38
(0) в тонком клиенте не прокатит

вся трабла в том, что события актививизации строки в одной таблице можно поймать только в клиентских методах и активизировать(позиционировать) строку в другой таблице можно тоже только на клиенте, чтобы это работало очевидно и естественно, как например мастер-деталь на отборах в ЗУП 8.1 "Начисление ЗП" для таьбличных частей.

Таким образом интерфейсная активизицая строки и той и другой таблицы возможна только на клиенте, а само позиционирование на сервере.

Получем мертвую завязку

Объяснил непонятно, но попробуйте "прохавать" тему сами в отладчике на тонком
6 vmv
 
25.11.11
16:39
(4)  но это не синхронная активизиция строк разных таблиц формы.
7 Defender aka LINN
 
25.11.11
16:41
(5) *молча протягивает пустой коробок*
8 Buster007
 
25.11.11
16:41
(5) ну ты и загнул...
я уже так делал и автор уже сделал и всё работает. в каком случае его метод не будет работать?
9 Buster007
 
25.11.11
16:41
(7) ))))
10 vmv
 
25.11.11
16:41
(7) ты много куришь, задумайся)
11 vmv
 
25.11.11
16:48
да отборы хрень на посном масле они и в африке отборы.

у меня была задача

На форме есть две Тз, не табличные части!

Т1 - заполняется при создании на сервере например такими данными

ИмяИсточника....ИмяТаблицы....
ТablSpace1......Ts1Tab1
ТablSpace1......Ts1Tab2
.......................      
ТablSpaceN......TsNTabN

...

Вторая таблица формы имела всего одну свтроенную колонку "НомерСтроки"

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

Все получилось запросы, динамика, очиска и загрузка второй таблицы на лету, НО только по кнопке, при активизации таблицы 1-й строки хер, переадача управлений клиент-сервер в таком замесе это не позволила.

Так что не знаю что ви курили, но ви не правы!)
12 Buster007
 
25.11.11
16:50
(11) а в при активизации строки нельзя передать в серверную процедуру данные по колонкам и генерить их?)
13 vmv
 
25.11.11
16:53
(12) пр активизации строки в 1-й таблице я получаю и структуру колонок и строки и сами строки если нужно и хочу просто перемещаясь по первой на лету смотреть, например, первые 10 строк совершенной другой таблицы по составу строк и это получилось, но только пр  активизации в первой нужно вызывать серверные методы загрузки во вторую и обновления
14 Buster007
 
25.11.11
16:54
(13) а по кнопке ты не вызываешь?)
15 vmv
 
25.11.11
16:55
(13) все можно в смыслек получения данных, но чистый клиентский просмотр на лету никак не возможен в таком случае - не веришь попробуй сам сваять.

там в принципе тествого кода на страницу будет и сразу станет очевидна причина невозможного
16 Buster007
 
25.11.11
16:56
кинь код свой и посмотрим, зачем мне делать, когда у тебя уже есть
17 vmv
 
25.11.11
16:56
(14) по кнопке все работает

выбрал строку в первой, жамкнул на кнопу "загрузить деталь" и вижу данные другой таблицы которая динамически создалась во 2-й таблице формы.
18 Buster007
 
25.11.11
16:59
не вижу разницы между жмакнул кнопку и при активизации.
19 vmv
 
25.11.11
17:09
(17) код кидал на той неделе.

Фишка в том, ч тоо в мое случае нужно убить все колонки в 2-0й таблице, создать новые колонке соглдасно струкутре полученной 2-0й тз и загрузит данные 2-й тв в обновленную структуру.

Вызывать все это из клиенткой процедуры активизации строки не возможно, там есть особенность уж слишком серверные методы "тяжелые" в смысле передачи управления.

все, рано или позно вам придется столкнуться с подобной проблемой
20 Buster007
 
25.11.11
17:33
(19) ну знаешь ) есть такие методы, как подключить обработчик ожидания, чтобы при каждой активизации загружать, обновлять и т.д. например когда я зажав стрелку вниз бегу по списку. Это во первых.
Ну а во вторых, про то, что серверные методы тяжелые, уже давно известно. Для того, чтобы это узнать далеко ходить не надо, достаточно просто открыть СП и там написано, что вызов серверных методов не допустимо.
НО
Если открыть типовую УТ11 и посмотреть как там всё сделано и почитать про недоступность вызова серверных методов в СП, можно сделать вывод, раз 1С этим пренебрегает, то нам то уж и подавно можно забить на это.
Тем более я уже делал, что-то вроде данного и никаких проблем не заметил.
21 vmv
 
25.11.11
19:36
(20) тяжелые в смысле получения данных обработчики ожидания использовать в чисто сервисных методах формы - моветон и непозволительная роскошь для хорошей работы клиент-серверной технологии.

описанная мной ситуация не заработает.

обработчик ПриАктивизацииСтроки() просто не позволит вызвать внутри себя серверные процедуры которые МЕНЯЮТ структуру колонок(реквизиов формы) и данные другой таблицы формы и чтобы там ни ваяли где - не тот случай, у сервера свое мнение на сей счет и оно вполне логично.

Сервер 8.1 позволял такой финт ушами, правда он был ужасно туповат во всех аспектах производительности)