Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Тупой вопрос (http://forums.kuban.ru/f1040/tupoj_vopros-3475814.html)

USSR 24.12.2012 19:29

Тупой вопрос
 
На форме есть ТЗ с именем ТабДок. Заполняется загрузкой из другой ТЗ, являющейся выборкой прямого запроса:
ТабВсп = Запрос.ExecuteStatement (ТекстЗапроса);
ТабДок.Загрузить(ТабВсп);
затем проверяю есть ли данные и позиционируюсь "на дно"
КолСтрок = ТабДок.КоличествоСтрок();
Если КолСтрок > 0 Тогда
ТабДок.ТекущаяСтрока(КолСтрок);
КонецЕсли;
И все бы хорошо, но вот например в выборке 40 строк, экранных строк таблицы, например, 20, и в моей ТЗ показывается значимых строк так 8. То есть последняя строка с данными задрана вверх. Делаю CTRL+PGUP и CTR_PGDN и все замечательно встает как надо ) А как правильно сразу сделать? я конечно могу с помощью WSH эмулировать нажатие этих волшебных клавиш, но уж как то совсем черех "ж...". Понимаю, что вопрос смешной, но вот не входит каменный цветок, как то раньще не ломал голову, а тут вот надо стало))

USSR 24.12.2012 19:47

что-то и с SendKey не выходит ) Засада))

Чучундер 25.12.2012 00:37

есть такая хрень.. при программном позиционировании последняя строка будет посередине... только если сендкеем...

USSR 25.12.2012 02:51

изврат с sendkeys("HOME") и sendkeys("END") работает (посылаю сервисом формекса, рас все равно импользуется), но работает только при принудительном обновлении данных (нажатии на спец кнопочку вызывается Обновить(), где и формируется таблица значений и посылаются дурацкие нажатия клавиш). При первоначальном открытии формы никак не выходит каменный цветок. Толкал Обновить() и в ПослеОткрытия(), но безуспешно

USSR 25.12.2012 02:52

рас - > раз (а то опечатка режет глаз)

Чучундер 25.12.2012 03:50

В ПослеОткрытия() или в ПриОткрытии() сделай типа
.
//********************************************************************************
Процедура ПриОткрытии ()
Форма.ОбработкаОжидания ("ПосылКлавишНа", 1);

//закроем окно сообщений
глWSH.appActivate("1С:Предприятие");
глWSH.sendKeys("^+(z)");
глWSH.sendKeys("^+(я)"); //разрешение проблемы с раскладкой (с) СтарПом

КонецПроцедуры //ПриОткрытии()

Чучундер 25.12.2012 03:52

Процедура ПосылКлавишНа()
Форма.ОбработкаОжидания ("", 0);
//тут послать клавиши
КонецПроцедуры //ПосылКлавишНа()

Чучундер 25.12.2012 03:52

Уточнение:
.
Процедура ПриОткрытии ()
//тут формируем нужные ТЗ на форме и в памяти
Форма.ОбработкаОжидания ("ПосылКлавишНа", 1);

Ёпрст 25.12.2012 09:39

(0) никогда не используй ТабДок.Загрузить для обычной ТЗ
- это один из самых медленных методов при работе с ТЗ, юзай выгрузить(), хотя бы, или заполнить()

USSR 25.12.2012 10:06

(8)спс, буду иметь в виду. Хотя для данной базы попробовал выгрузить и загрузить, визуально разницы не увидел. В обоих случаях у меня на хреновой тачке подтормаживает. Попробую еще и заполнить
Засунул в "ПриОткрытии" - формирование таблицы значений, в "ПослеОткрытия" - пихание клавиш, а в принудительном обновлении - вызываю сразу с эмуляцией HOME и END. Вроде все работает, немного коряво правда выглядит. Вечером попробую на рабочей базе
Всем спасибо.
Переведу наверное на табличное поле, но на пробу год назад переводил этот журнал, там вроде были свои заморочки с прокрутками и вверх-вниз, и вправо-влево

который не честный 25.12.2012 10:58

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

USSR 25.12.2012 11:30

(9)Я выставляю текущую строку именно последней. Текущая у меня не может быть больше, чем строк в таблице. Вот я тоже как-то решаю, один очень "ленивый" пользователь попросил для него сделать. У меня пока что получилось именно с эмуляцией нажатия клавиатуры. Выставлять строку я итак выставлял всегда, только вот не хочет показываться вся воозможная видимая область таблицы хначений

Сли то 25.12.2012 22:03

(0)-(11) Чушь и бред, все ништяк позиционируется.
[url]http://zalil.ru/upload/34112285[/url]
Или я делаю что-то не так, или вопроса не понял...

ЗЫЖ Как все же семерка летает по сравнению с 8-кой, прям мечта...

Чучундер 25.12.2012 22:48

(12) докладываю: ты - тупой ;-)
запусти свою обработку. увидб ТЗ. нажми сформировать. увидб резудтат - где стоит текущая строка с курсором. попробуй этого же самого добиться простым непрограммным скролингом. Интерактивным скроллингом сделай текущй строкой псоледнюю. Попробуй сделать ТАКЖЕ программно

DeiMos 25.12.2012 23:09

Не надо ссориться, горячие эстонские парни...

Слушаем вниматочно.
До КОНЦА.

[url]http://www.youtube.com/watch?v=8MS3TFF-LIA[/url]

Сли то 25.12.2012 23:57

Блин, ну ладно, я тупой. Просто на такой фигне ни когда не заморачивался. Даже внимания не обращал (почему и не въехал в "проблему"). Так все же чем эта багафича мешает? ИМХО пусть уж будет так, чем сендкеи крутить.
ЗЫЖ Ради спортивного интереса победить не получилось "нормальным путем".

Reaper 26.12.2012 00:15

15-Сли то > Угу, угу, а сырая, медленная восьмерка работает все это время что вы тут е... мучаетесь.

Чучундер 26.12.2012 00:18

(16) угу... работает... как прикованная к батарее продавщица в супермаркете

DeiMos 26.12.2012 00:24

А вот и не подерётесь...

Reaper 26.12.2012 00:25

17-Чучундер > Ох, помнится в "копилке" напротив общаги студенческой была одна... Приковать и работать, приковать и работать...

DeiMos 26.12.2012 01:04

[url]http://www.youtube.com/watch?v=ZWjtaESJKV4[/url]

Morrison 26.12.2012 02:28

2(16) +100. И сыреет и сыреет. Даже общие реквизиты появились :)

Morrison 26.12.2012 02:39

Господа, раз я тут тупой вопрос, можно пооффтопить - базван был с нами? Где он?

USSR 26.12.2012 05:05

(12)Нас с Чучундером тоже ведь не пальцем делали )
Попался пользователь такой (один из хозяев), сделай говорит, пожаоуйста, не хочу всякий раз дергать полосы прокрутки
Спор про 7 и 8 не понял. И Жигули работают, и Феррари, и лопаты, и Катерпиллеры. Смотря какая задача.

Billi 26.12.2012 05:10

23-USSR >А ты ему скажи, что нет технической возможности. Пусть пальцы тренерует.

USSR 26.12.2012 07:00

(24)Да он норм мужик, очень адекватный. Не хочется отказывать в такой мелочи. Вроде все работает, немного есть некрасивый визуальный эффект при обновлении, но зато все хорошо позиционируется.

Чучундер 27.12.2012 01:39

(25) это о чем говорит? - о том, что жигуль затюнинговать можно по самое не хочу.. ферари конечно тоже затюнинговать можнао, но а) оно надо? б) скока-скока?


Текущее время: 22:35. Часовой пояс GMT +3.