Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В УТ 10.3. Каждого контрагента есть свой собственный код (длина кода 9) например 000000346. Пользователю надо что он написал 346 и программ знал что это тот контрагент который с кодам 000000346. Пользователь не вводил нули. Как решить эту задачи?
Можете дать подсказки?
Спасибо всем за ранее.
КодКонтрагента = "346" //это то что пользователь ввел
Пока СтрДлина(КодКонтрагента) <> 9 Цикл // длина кода 9
КодКонтрагента = "0" + КодКонтрагента
Конеццикла
Контрагент = Справочник.Контрагенты.НайтиПоКоду(КодКонтргаента);
Второй вариант
1. В справочник контрагентов добавляете новый реквизит называете его БыстрыйВвод - тип строка 9 символов - аналог ваше поля код
2. У это реквизита ставите свойство Индексировать - Индексировать с доп. упорядочиванием
3. Открываете в конфигураторе свойства справочника Контрагентов и переходите на вкладку "Поле ввода", далее ищите группу Ввод по строке, у вас в этом поле Ввод по строке указано - Наименование, Код. Нажмите на кнопку с ... и добавьте ваш новый реквизит БыстрыйВвод. Заполните его у контрагента с кодом 000000346 значением равным 346. Теперь при указании в поле контрагент в документах 346 у вас сам подставить ваш контрагент с кодом 000000346. Но тут тогда нужно всегда будет заботиться о том чтобы поле БыстрыйВвод был заполнен
КодКонтрагента = "346" //это то что пользователь ввел
Пока СтрДлина(КодКонтрагента) <> 9 Цикл // длина кода 9
КодКонтрагента = "0" + КодКонтрагента
Конеццикла
Контрагент = Справочник.Контрагенты.НайтиПоКоду(КодКонтргаента);
Второй вариант
1. В справочник контрагентов добавляете новый реквизит называете его БыстрыйВвод - тип строка 9 символов - аналог ваше поля код
2. У это реквизита ставите свойство Индексировать - Индексировать с доп. упорядочиванием
3. Открываете в конфигураторе свойства справочника Контрагентов и переходите на вкладку "Поле ввода", далее ищите группу Ввод по строке, у вас в этом поле Ввод по строке указано - Наименование, Код. Нажмите на кнопку с ... и добавьте ваш новый реквизит БыстрыйВвод. Заполните его у контрагента с кодом 000000346 значением равным 346. Теперь при указании в поле контрагент в документах 346 у вас сам подставить ваш контрагент с кодом 000000346. Но тут тогда нужно всегда будет заботиться о том чтобы поле БыстрыйВвод был заполнен
8.
SedovSU@mail.ru
29729.03.19 10:45 Сейчас в теме
(7) Если вы реквизиту устанавливаете индексирование с доп упорядочиванием то например на форме списка по данному реквизиту вы можете сортировать. По аналоги с кодом или с номером документом. То есть нажмите на колонку и она будет упорядочена/отсортирована. Так она становиться доступа в вводе по строке. Ну вот к вашей задачи она применина, а так на практике редко встречается,
Ниже описание с 1С ИТС
При описании в метаданных реквизитов различных объектов существует возможность установить свойство Индексировать. Это свойство позволяет разработчику конфигурации указать системе необходимость построения в базе данных отдельного индекса по соответствующему реквизиту.
Кроме варианта "Индексировать" в данном свойстве для большинства объектов можно установить вариант "Индексировать с доп. упорядочиванием". Данный вариант предназначен, прежде всего, для использования в динамических списках.
В варианте "Индексировать" строится индекс непосредственно по реквизиту. Индекс также дополняется ссылкой, чтобы обеспечить определенный порядок записей в индексе при повторяющихся значениях реквизита.
В варианте "Индексировать с доп. упорядочиванием" индекс строится по реквизиту, а также по некоторому полю, которое обычно используется для упорядочивания объектов этого типа. Для справочника индекс в зависимости от основного представления дополняется кодом или наименованием. А для документа, индекс дополняется датой. Этот индекс также дополняется ссылкой.
В варианте "Индексировать" в динамическом списке может быть обеспечен эффективный просмотр больших объемов информации с упорядочиванием по данному реквизиту, так как для этого будет использоваться созданный индекс.
В варианте "Индексировать с доп. упорядочиванием" в динамическом списке может быть обеспечен эффективный просмотр больших объемов информации с отбором по значению данного реквизита и с упорядочиванием, соответствующим основному упорядочиванию для данного объекта. В этом случае наличие индекса включающего реквизит, по которому выполняется отбор, и поля основного упорядочивания позволит системе использовать индекс при просмотре списка.
Разумеется, индексы так же влияют и на другие способы выборки информации (получение данных с помощью методов менеджеров объектов или запросов).
Таким образом при определении варианта свойства Индексировать следует исходить из того, какие варианты выборки информации необходимо оптимизировать в первую очередь. Например, если требуется просмотр списка с отбором по реквизиту, то имеем смысл использовать вариант "Индексировать с доп. упорядочиванием". А если индекс нужен, например, только для поиска с помощью запроса объектов по данному реквизиту без упорядочивания, то лучше использовать вариант "Индексировать", чтобы создаваемые индекс требовал меньше ресурсов системы.