Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 10:43

Перебрать все значения в справочнике

Автор malvina_l, 12 мар 2014, 06:54

0 Пользователей и 1 гость просматривают эту тему.

malvina_l

Наименование=справочники.1.НайтиПоНаименованию("Наименование");
     
   Запрос= новый Запрос;
   Запрос.Текст="ВЫБРАТЬ
   |1.ссылка,
   |1.Наименование КАК Наименование
   |ИЗ
   |Справочник.1 КАК1
   |";
     запрос.УстановитьПараметр("Наименование",Наименование);
            
            Результат = Запрос.Выполнить();
            Выборка = Результат.Выбрать();
            
            Пока выборка.Следующий() цикл
                     вр=Сред(Наименование,6);
             Если  Лев(вр,1) = " " тогда
                 вр=СокрЛП(вр);
                Наименование=Лев(Наименование,5)+" "+вр;
            КонецЕсли;
            конецЦикла;
во внешней обработке не работает, не знаю как перебрать все наименования справочника

Luzer1C

Может попробовать так:
запрос.УстановитьПараметр("%Наименование%",Наименование);
В данном случае запрос выберет все элементы справочника, имеющие вхождение в наименование Наименование.
Ибо в другом случае запрос выберет всего лишь один элемент справочника, а не все, которые содержат Наименование.
Халамбалам.

sdilshod

  Запрос= новый Запрос;
   Запрос.Текст="ВЫБРАТЬ
   |1.ссылка,
   |1.Наименование КАК Наименование
   |ИЗ
   |Справочник.1 КАК1
   |";
     запрос.УстановитьПараметр("Наименование",Наименование);


Здесь в запросе пропущено секция ГДЕ или это отпечатка?


malvina_l

Цитата: sdilshod от 12 мар 2014, 08:09
  Запрос= новый Запрос;
   Запрос.Текст="ВЫБРАТЬ
   |1.ссылка,
   |1.Наименование КАК Наименование
   |ИЗ
   |Справочник.1 КАК1
   |";
     запрос.УстановитьПараметр("Наименование",Наименование);


Здесь в запросе пропущено секция ГДЕ или это отпечатка?
да пропущена,будет так:
|ГДЕ 1.наименование=&Наименование

sdilshod

| ГДЕ 1.наименование подобно "%СтрокаНаименование%"

malvina_l

Цитата: sdilshod от 12 мар 2014, 09:13
| ГДЕ 1.наименование подобно "%СтрокаНаименование%"
пишет поле не найдено "стрканаименование" и переменная не определена

KrivosheevEV

Опечатка:
|Справочник.1 КАК1
Надо:
|Справочник.1 КАК 1

Или так:
Выборка = Справочники.1.Выбрать(,,Новый Структура("Наименование", "НужноеНаименованиеДляПоиска"));


malvina_l

Цитата: KrivosheevEV от 12 мар 2014, 10:05
Опечатка:
|Справочник.1 КАК1
Надо:
|Справочник.1 КАК 1

Или так:
Выборка = Справочники.1.Выбрать(,,Новый Структура("Наименование", "НужноеНаименованиеДляПоиска"));
нужно перебрать все наименования из справочника

KrivosheevEV

Цитата: malvina_l от 12 мар 2014, 10:30
нужно перебрать все наименования из справочника

Выборка = Справочники.1.Выбрать();
Пока Выборка.Следующий() Цикл
    ТекущееНаименование = Выборка.Наименование;
    ИзменённоеНаименование = ?(ТекущееНаименование[6]= " ", Лев(ТекущееНаименование, 5) + " " + СокрЛП(Прав(ТекущееНаименование, СтрДлина(ТекущееНаименование) - 6)), ТекущееНаименование);
КонецЦикла;



LordWizard

Не понимаю реально задачи.Если просто перебрать все наименования справочника, то ГДЕ не нужно, а нужен просто опрос справочника:

Запрос = Новый Запрос;
Запрос.Текст ="
|1.ссылка,
|1.Наименование КАК Наименование
|ИЗ
|Справочник.1 КАК 1
|";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
    Сообщить("Наименование:" + Результат.Наименование);
КонецЦикла;


Если нужно найти в справочнике с поиском по конкретному значению Наименования, то добавляем секцию


|Где
|   1.Наименование = &ПоискНаименования

Перед получением запроса передаем параметр


Запрос.УстановитьПараметр("ПоискНаименования",ПараметрПоиска);

"ПараметрПоиска" - можем задавать по своему усмотрению или получать ранее по алгоритмам (пустым быть не должно - выдаст ошибку).
Правильно ведите учет или пишите программы и вам воздастся!...

(Кстати - кнопочку Сказать Спасибо - никто не отменял)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск