Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

В чём трабл?

Ёжик
читатель
офлайн
Дата регистрации: 01.08.2002
Сообщений: 84
Пост №1
 
04.09.2003 10:49

"ситуация следующая, на форму справочника "БАНКИ" "Для выбора" прицепил текстовое поле и кнопку "Поиск"<br><br><br><br>//******************************************************************************<br><br>// Поиск()<br><br>// Описание:<br><br>//       Выполняет поиск банка по кнопке "поиск" на форме.<br><br><br><br><br><br>Процедура Поиск()<br><br> Бнк=СоздатьОбъект("Справочник.Банки");<br><br>       //Банк.ПорядокКодов();<br><br>       Бнк.ВыбратьЭлементы(0);<br><br>       Если Бнк.ВыбратьЭлементы(0)=1 Тогда<br><br>             Пока Бнк.ПолучитьЭлемент(0)=1 Цикл<br><br>                        Если Найти(СокрЛП(Бнк.Наименование),СокрЛП(ПоискБанка))=0 Тогда <br><br>                               Иначе Бнк.НайтиЭлемент(Бнк.ТекущийЭлемент());<br><br>                               //Предупреждение("Такой банк уже существует! Его код="+Банк.Код);<br><br>                        КонецЕсли;<br><br>             КонецЦикла;<br><br>       КонецЕсли;<br><br>КонецПроцедуры;<br><br>//******************************************************************************<br><br><br><br>говорит объект не может быть перепозицианирован! и ссылается на строку Иначе Бнк.НайтиЭлемент(Бнк.ТекущийЭлемент());<br><br><br><br>в чём тут трабл?"

moroder
читатель
офлайн
Дата регистрации: 16.06.2002
Сообщений: 526
Пост №2
 
04.09.2003 11:40

А вот прочувсвуйте эту строку - вы затавляете объект самого на себя перепозиционироваться.<br><br>Эта строка просто не имеет смысла..

Ёжик
читатель
офлайн
Дата регистрации: 01.08.2002
Сообщений: 84
Пост №3
 
05.09.2003 08:17

"так... и что же делать? как же тогда позиционироваться на найденном объекте?<br><br>Ну нашёл я подстроку "ПоискБанка" в строке "Бнк.Наименование", как теперь на неё позиционироваться?<br><br>НайтиЭлемент();<br><br>НайтиПоНиаменованию();<br><br>НайтиПоКоду();<br><br>и т.д. приводят ктому же результату :-(<br><br><br><br>как же тогда позиционироваться!"

moroder
читатель
офлайн
Дата регистрации: 16.06.2002
Сообщений: 526
Пост №4
 
05.09.2003 17:51

Вот прочитайте "Спозиционироваться на найденном объекте".<br><br>На мысли не наводит?<br><br>Вы и так на нем, куда еще хотите?

Ёжик
читатель
офлайн
Дата регистрации: 01.08.2002
Сообщений: 84
Пост №5
 
09.09.2003 08:33

возможно не правильно выразился :-)<br><br>объект найден, так?<br><br>но этот объект никак с формой не связан, так?<br><br>элементарное что тут можно сделать вывести его через Сообщить() или Предупреждение(), но нужно совсем другое!!!<br><br>Чтобы он стал активным (т.е. стал выделенным синим курсором)... Я же объясняю, что нужно сделать что-то похожее на ПОИСК в справочнике "Банки"... потому что к самой строке поиска не отовсюду можно получить доступ!<br><br><br><br>А способ, сначала открывать справочник "Банки" проверять есть ли там уже нужный банк, потом через документы (например, п/п) заводить или выбирать... короче должен быть способ сделать всё намного проще!

tolik1
читатель
офлайн
Дата регистрации: 27.07.2003
Сообщений: 43
Пост №6
 
09.09.2003 14:43

"АктивизироватьОбъект(<?>);<br><br>Синтаксис:<br><br>АктивизироватьОбъект(<Объект>)<br><br>Назначение:<br><br>Активизировать объект в форме списка.<br><br>Параметры:<br><br><Объект> - выражение, которое может содержать значение элемента справочника или документ или запись журнала расчетов (в зависимости от типа модуля формы, в котором должен быть активизирован элемент диалога).<br><br>Замечание:<br><br>Доступ к методу возможен только в контексте Модуля формы."

Ёжик
читатель
офлайн
Дата регистрации: 01.08.2002
Сообщений: 84
Пост №7
 
09.09.2003 14:52

"Пробовал!<br><br>Работает не понятно как :-)<br><br>Вместо позиции первого найденного делает активным самый последний найденный :-( Что только не делал... всё время активным становится только последний найденный элемент!<br><br>Опять же косяк...<br><br><br><br>вот код:<br><br><br><br><br><br><br><br>//******************************************************************************<br><br>//      Описание:<br><br>//             Выполняет поиск банка по кнопке "поиск" на форме.<br><br><br><br>Процедура Поиск()<br><br>       i=1;<br><br>       Бнк=СоздатьОбъект("Справочник.Банки");<br><br>       Бнк.ПорядокНаименований();<br><br>       Бнк.ВыбратьЭлементы();<br><br>       Пока Бнк.ПолучитьЭлемент()=1 Цикл<br><br>             Если (Найти(СокрЛП(ВРЕГ(Бнк.Наименование)),СокрЛП(ВРЕГ(ПоискБанка)))<>0) Тогда<br><br>                        Найденные[i]=Бнк.Наименование;<br><br>                        //Сообщить(Найденные[i]);<br><br>                        i=i+1;<br><br>             КонецЕсли;<br><br>       КонецЦикла;<br><br>       //****************************************************************************************<br><br>       Если ФлагПоиска=0 Тогда <br><br>             //АктивизироватьОбъект(Найденные[1]);<br><br>             Сообщить("_____"+Найденные[1]);<br><br>             k=k+1;<br><br>             ФлагПоиска=1;<br><br>       ИначеЕсли (k<i) и (ФлагПоиска=1) Тогда <br><br>             //АктивизироватьОбъект(Найденные[k]);<br><br>             Сообщить("*** "+Найденные[k]);<br><br>             k=k+1;<br><br>       КонецЕсли;<br><br>КонецПроцедуры // Поиск()<br><br><br><br>//********************************************************************************************<br><br>// Определяем переменные при каждом новом открытии формы<br><br>ФлагПоиска=0;<br><br>k=1;"

tolik1
читатель
офлайн
Дата регистрации: 27.07.2003
Сообщений: 43
Пост №8
 
10.09.2003 08:42

"вот теперь всё понятно :))<br><br>действительно, есть такая плюха в 1С,<br><br>дело в том, что ...<br><br>короче: вставляешь кнопку "Поиск" с формулой Поиск()<br><br>и<br><br>Процедура Поиск() <br><br> ПоискБанка = """";<br><br> Если ВвестиСтроку(ПоискБанка,"Укажите пару символов ..",50,0,20) = 0 Тогда<br><br> Возврат;<br><br> КонецЕсли; <br><br> <br><br> Бнк=СоздатьОбъект("Справочник.Банки"); <br><br> Бнк.ПорядокНаименований(); <br><br> Бнк.ВыбратьЭлементы();             <br><br> <br><br> Пока Бнк.ПолучитьЭлемент()=1 Цикл <br><br> Если (Найти(СокрЛП(ВРЕГ(Бнк.Наименование)),СокрЛП(ВРЕГ(ПоискБанка)))<>0) Тогда <br><br> АктивизироватьОбъект(Бнк.ТекущийЭлемент());<br><br> Прервать; <br><br> КонецЕсли; <br><br> КонецЦикла; <br><br>КонецПроцедуры<br><br><br><br>Я правда делал в отдельной форме, так как результат могет быть множественным и <br><br>понадобиться дополнительный отбор, например уже из списка значений<br><br>выведенного на экран.<br><br>Удачи !!<br><br>"

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация
Предложения партнеров
Обучение пользователей продуктов 1С