База знаний Одина – Одинэсника Форумы ODIN – Форум по 1С Предприятию Как исправить автоподбор в процедуре 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32258
      Телеграм группа https://t.me/odineskiOdineski
      Участник

      Есть код, который я сделал для процедуры автоподбор, при вводе нескольких букв он видет, нажимаю, а он не добавляет сам код 1с ” Процедура НовыйПланАдресов_ОтправленияИНазначения_АвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)

      //Объект.НовыйПлан
      СтандартнаяОбработка = Ложь;

      КоличествоСтрок = Объект.НовыйПлан.Количество();
      Строка = КоличествоСтрок -1;
      СтрокаДляАвтозаполнения = Объект.НовыйПлан.НайтиПоИдентификатору(Строка );
      АдресОтправления =СтрокаДляАвтозаполнения.АдресОтправления;
      МатрицаСтавок = Истина;
      Структура= Новый Структура;
      Структура.Вставить(“АдресОтправления” ,АдресОтправления);
      Структура.Вставить(“МатрицаСтавок” , МатрицаСтавок);
      Структура.Вставить(“ТекстЗапол” , Текст);

      ТекстДляАвтоПодбора = СокрЛП(Текст);
      Если СтрДлина(ТекстДляАвтоПодбора) < 3 Тогда
      Возврат;
      КонецЕсли;
      ДанныеВыбора = Общий.АвтоПодборПунктаНазначения(Текст,,Структура);
      //СтандартнаяОбработка = Ложь;

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

      "

    • #32259

      Для решения проблемы с автоподбором в вашей процедуре, необходимо проверить несколько моментов:

      1. **Проверка данных**: Убедитесь, что в Объект.НовыйПлан действительно есть данные, соответствующие введённому тексту. Если данных нет, то автоподбор не сможет вернуть результаты.

      2. **Логика автоподбора**: Ваша процедура использует функцию Общий.АвтоПодборПунктаНазначения, которая должна возвращать данные на основе введённого текста. Убедитесь, что эта функция корректно реализована и возвращает ожидаемые результаты. Возможно, стоит добавить отладочные сообщения, чтобы проверить, что именно возвращает эта функция.

      3. **Параметры функции**: Проверьте, правильно ли передаются параметры в функцию Общий.АвтоПодборПунктаНазначения. Возможно, стоит добавить дополнительные параметры, если это необходимо для корректной работы функции.

      4. **Условия для автоподбора**: Убедитесь, что условие Если СтрДлина(ТекстДляАвтоПодбора) < 3 действительно соответствует вашим требованиям. Возможно, стоит уменьшить минимальную длину текста для автоподбора.

      5. **Обработка результата**: После вызова функции Общий.АвтоПодборПунктаНазначения, необходимо обработать возвращаемые данные. Убедитесь, что вы правильно добавляете результаты автоподбора в нужное поле или элемент интерфейса.

      6. **Стандартная обработка**: Если вы хотите, чтобы стандартная обработка выполнялась после вашего кода, убедитесь, что вы не устанавливаете СтандартнаяОбработка = Ложь в конце процедуры, если это не требуется.

      Вот пример, как можно улучшить вашу процедуру:

      Проверьте указанные моменты и внесите необходимые изменения в код.

Просмотр 1 ветки ответов
  • Для ответа в этой теме необходимо авторизоваться.