Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программно в документе установить текущую строку
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
vadim007
Нужно при открытии документа сделать текущей строкой заданную.
Использую код: (Зн = конкретная БанковскаяВыписка)
КонтекстФормы = 0;
ОткрытьФорму(Зн, КонтекстФормы);
Если ТипЗначения(КонтекстФормы) = 100 Тогда
    Сообщить(Зн);
    КонтекстФормы.НомерСтроки = 3;
КонецЕсли;

Банковская выписка открывается, но на третью строку перехода нет. Что делаю не так?
-=VJ=-
Цитата(vadim007 @ 10.04.12, 9:54) необходимо зарегистрироваться для просмотра ссылки
Что делаю не так?


КНижки не так читаете

НомерСтроки
Синтаксис:
НомерСтроки
Назначение:
Доступ к номеру строки многострочной части документа.
Замечание:
Атрибут имеет смысл только при выбранной строке.



ПолучитьСтрокуПоНомеру(<?>)
Синтаксис:
ПолучитьСтрокуПоНомеру(<Номер>)
Назначение:
Устанавливает в качестве текущей строки строку с заданным номером.
Возвращает:
1 - если действие выполнено;
0 - если действие не выполнено.
Параметры:
<Номер> - номер строки.
vadim007
ПолучитьСтрокуПоНомеру(..) - это метод таблиц значения, а не табличной части документа.

По поводу "НомерСтроки":
Описание:
Атрибут НомерСтроки задает числовое значение номера строки многострочной части выбранного документа. Данный атрибут имеет смысл только при выбранной строке.
Присвоение строке нового номера передвигает строку в многострочной части документа.

Что я и пытаюсь сделать.
Обращает на себя внимание: "Данный атрибут имеет смысл только при выбранной строке."
Тогда еще вопрос: как в открытом программно документе сделать некую строку ТЧ выбранной?
-=VJ=-
Цитата(vadim007 @ 10.04.12, 10:24) необходимо зарегистрироваться для просмотра ссылки
это метод таблиц значения, а не табличной части документа.


Вам лень в Синтаксис-помощник заглянуть, прежде чем глупости писать?
vadim007
Мы не в райском саду, чтобы глупостями заниматься.
Синтаксис-помощником давно не пользуюсь, т.к. слишком мелко видно.
Для быстрого поиска справки использую файл справки 1CPRG. В его индексе, видно, нет ссылки на документы для метода ПолучитьСтрокуПоНомеру(..).
Но идем дальше - переделал:
КонтекстФормы = 0;
ОткрытьФорму(Зн, КонтекстФормы);
Если ТипЗначения(КонтекстФормы) = 100 Тогда
    Сообщить(Зн);
    КонтекстФормы.ПолучитьСтрокуПоНомеру(3);
КонецЕсли;

Все равно третья строка не становится текущей.
Flexy
А разве у Контекста Формы есть метод ПолучитьСтрокуПоНомеру?
Такой метод есть у Документа или ТЗ.
Документ.ПолучитьСтрокуПоНомеру(3);
или
Форма.АктивизороватьСтроку(3); //Используется В случае Подбора и в Модуле Формы.
vadim007
Но контекст - типа Документ, вида БанковскаяВыписка.
Flexy
Если ТипЗначения(КонтекстФормы) = 100 Тогда

А что такое 100?
Если проверка на Документ тогда
Если ТипЗначения(КонтекстФормы) = 12 Тогда

ТипЗначения(<?>)
Синтаксис:
ТипЗначения(<Значение>)
Назначение:
Возвращает:
тип данных значения в виде числа.
Параметры:
<Значение> - выражение, тип данных значения которого надо определить.
Возвращаемые значения типов данных:
0 - неопределенный тип данных;
1 - числовой тип данных;
2 - строковый тип данных;
3 - тип данных Дата;
10 - агрегатный тип данных 'Перечисление';
11 - агрегатный тип данных 'Справочник';
12 - агрегатный тип данных 'Документ';
13 - агрегатный тип данных 'Календарь';
14 - агрегатный тип данных 'ВидРасчета';
100 - внешний объект ('Текст', 'Таблица', 'Запрос','ЖурналРасчетов' и т.п.).
alex040269
Цитата(vadim007 @ 10.04.12, 11:51) необходимо зарегистрироваться для просмотра ссылки
Но контекст - типа Документ, вида БанковскаяВыписка.

КонтекстФормы и Документ - это разные типы, даже если форма в данный момент используется для редактирования документа.
vadim007
Цитата(Flexy @ 10.04.12, 11:45) необходимо зарегистрироваться для просмотра ссылки
Форма.АктивизороватьСтроку(3); //Используется В случае Подбора и в Модуле Формы.[/code]

Попробовал и так:
КонтекстФормы = 0;
ОткрытьФорму(Зн, КонтекстФормы);
Если ТипЗначения(КонтекстФормы) = 100 Тогда
    Сообщить(Зн);
    КонтекстФормы.АктивизироватьСтроку(3);
КонецЕсли;

Все равно нет перехода на третью строку.
alex040269
Это можно делать в МОДУЛЕ ФОРМЫ - приоткрытии или в каком-то другом событии.
vadim007
Т.е., через контекст формы никак нельзя перейти на нужную строку документа?
Оччень жаль....
-=VJ=-
Цитата(vadim007 @ 10.04.12, 13:57) необходимо зарегистрироваться для просмотра ссылки
Т.е., через контекст формы никак нельзя перейти на нужную строку документа?
Оччень жаль....


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

// ===============================
Процедура ПриОткрытии()
    АктивизироватьСтроку(3);
КонецПроцедуры
Читатель
А не пробовали передать в <КонтекстФормы> какой нибудь признак необходимости перехода на нужную строку документа, а в процедуре ПриОткрытии() модуля формы Вашего документа вытащить этот признак из Форма.Параметр и стать на нужную строку?
alex040269
Цитата(vadim007 @ 10.04.12, 13:57) необходимо зарегистрироваться для просмотра ссылки
Т.е., через контекст формы никак нельзя перейти на нужную строку документа?
Оччень жаль....

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