7.7 Позиционирование в многострочной части формы справочника

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем SergeBG, 27 май 2012.

  1. TopicStarter Overlay
    SergeBG
    Offline

    SergeBG

    Регистрация:
    27 май 2012
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Помогите братцы. Задача простая вроде, а уже лоб разбил. Надо: при запуске конфигурации открывается форма справочника с многострочной частью. Сортируется из процедуры ПриОткрытии() (сортирутеся нормально) и курсор в многострочной части нужно чтобы позиционировался на заданную строку или на последнюю строку. А он только на первой и никак.
    Вариант:

    Процедура ПриОткрытии()
    Сортировка("Код",1)

    Спр = СоздатьОбъект("Справочник.МойСправочник");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент()=1 Цикл
    //ищем нужный элемент
    КонецЦикла;

    КонецПроцедуры


    не прокатывает, да и много чего еще перепробывал.

    V7.70.027
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Правильно... Вы же создаете отдельный объект.... не текущий.... А обработка для выбора элемента не подойдет? Только в ней можно то что вам нужно
  3. TopicStarter Overlay
    SergeBG
    Offline

    SergeBG

    Регистрация:
    27 май 2012
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Так подойдет, почему нет. Только вот как обратиться к многострочной части и заставить в ней позиционироваться на определенный элемент (строку)? Желательно при открытии формы. Ну хотя бы так: при открытии формы вычисляется наибольший код ее справочника и многострочная часть позиционируется на этом элементе. Пробовал НайтиПоКоду() - в справочнике находит, Сообщить() мне показывает, что найдено, НО открывается форма а позиция в многострочной части все равно находиться на первом элементе. Не подскажите пример кода?
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Опишите задачу. Что вам конкретно нужно?
  5. TopicStarter Overlay
    SergeBG
    Offline

    SergeBG

    Регистрация:
    27 май 2012
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Есть справочник "Оплата", не подчиненный, там три реквизита Клиент, СчетФактура, ДатаСчета, Сумма. Реквизит клиент привязан к другому справочнику - "Контрагенты". Задача: Оператор открывает справочник "Клиенты" дабы внести в него новый счет, а там уже есть около 1000 счетов, открывается форма списка все отсортированое по реквезиту "ДатаСчета", т.е вверху самый старый счет, а внизу самый последний. Очень желательно при вводе нового счета видеть несколько последних введенных счетов (ну, чтобы не сбиться, не ввести повторно, просто видеть последние счета) ,а для этого надо скроллинг мотать в самый конец списка многострочной части справочника. Вот хорошо бы если при открытии этой формы позиционировался указатель многострочной части на последней строке. А у меня позиционируется на самой первой (самой старой) строке. Спасибо.
  6. TopicStarter Overlay
    SergeBG
    Offline

    SergeBG

    Регистрация:
    27 май 2012
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Что здесь не так? Это код отрабатывает без ошибки, но форма и ее многострочная часть не обновляется.

    СпрОпл = СоздатьОбъект("Справочник.Оплата");
    Если СпрОпл.НайтиПоРеквизиту("СуммаСчета",200,1)=1 Тогда
    НайденныйЭлемент = СпрОпл.ТекущийЭлемент();
    форма.Обновить(0);
    Предупреждение(НайденныйЭлемент,30);
    КонецЕсли;
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не так то, что вы находите по реквизиту созданный объект.
    Сделайте так:

    В вашем документе есть реквизит формы "Клиент".

    Код:
    Процедура ПриНачалеВыбораЗначения(ИД,Фл)
    Если ИД="Клиент" Тогда
    Если ПустоеЗначение(Контрагент)=1 Тогда
    Предупреждение("Укажите контрагента!");
    Фл=0;
    Возврат;
    КонецЕсли;
    Если ПустоеЗначение("Клиент")=1 Тогда
    СпрОпл = СоздатьОбъект("Справочник.Оплата");
    СпрОпл.ИспользоватьВладельца(Контрагент); //думаю что нужен и владелец
    Если СпрОпл.НайтиПоРеквизиту("СуммаСчета",200,0)=1 Тогда
    Клиент = СпрОпл.ТекущийЭлемент();  
    КонецЕсли;
    КонецЕсли;
    КонецПроцедуры
    
    все... перед открытием мы спозиционировали справочник на нужный вам элемент...
  8. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Случайно не об этом методе идет речь?
  9. TopicStarter Overlay
    SergeBG
    Offline

    SergeBG

    Регистрация:
    27 май 2012
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Спасибо, для меня новичка интересное решение, только мне не подойдет, я хотел чтобы при открытии все позиционировалость. Пусть уж будет как есть. Я пробовал СпрОпл.ТекущийЭлемент(); действительно позиционирует в справочнике все как надо, я проверял вызовом Предупреждение(СпрОпл.Клиент,30); - курсор на нужном элементе, НО многострочная часть никак на это не реагирует, устанавливает все по какой-то своей установке. Очень эта МЧ неуправляемая, трудно с ней чтото сделать в v77.
    Я даже пытался так - кидал кнопку на форму, привязывал к ней свою процедуру и уже при открытой форме ничего не происходит. К примеру после выполнения этого кода

    Если СпрОпл.НайтиПоРеквизиту("СуммаСчета",200,0)=1 Тогда
    Клиент = СпрОпл.ТекущийЭлемент();
    Форма.Обновить();
    КонецЕсли;
    ничего не меняется. У меня ощущение что метод Форма.Обновить(); не работает, либо ее действие не распостраняется на многострочную часть.
  10. TopicStarter Overlay
    SergeBG
    Offline

    SergeBG

    Регистрация:
    27 май 2012
    Сообщения:
    6
    Симпатии:
    0
    Баллы:
    1
    Аналогично - отрабатывает, позиционирует в справочнике, но не влияет на положение указателя в многострочной части
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Как раз АктивизироватьОбъект должен сработать.. Как применяли?
Похожие темы
  1. Ket
    Ответов:
    3
    Просмотров:
    1.522
  2. mavaly
    Ответов:
    2
    Просмотров:
    592
  3. Asttoxa
    Ответов:
    1
    Просмотров:
    669
  4. НеОчень
    Ответов:
    16
    Просмотров:
    801
  5. Asttoxa
    Ответов:
    2
    Просмотров:
    390
Загрузка...

Поделиться этой страницей