Имя: Пароль:
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 позволял такой финт ушами, правда он был ужасно туповат во всех аспектах производительности)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан