Имя: Пароль:
1C
1С v8
Обработка ПодборНоменклатуры
0 USER48
 
06.08.12
14:06
В данной обработке имеется поле СписокВидовПоиска. Сейсас в этом окне можно выбрать следующие: по наименованию, по полному наименованию, по коду, по артикулу. Необходимо добавить еще и по комментарию, но тип значения ПРОИЗВОЛЬНЫЙ не поддается редактированию. Что можно сделать?
1 0Mint
 
06.08.12
15:27
Ут 10.3? Процедура ДействияПриОткрытии() модуля формы этой обработки, там заполняется этот список, потом строка с наименованием реквизита соответствующего представлению в списке подставляется в текст запроса поиска.
2 USER48
 
06.08.12
15:35
нет, Бухгалтерия предприятия, редакция 2.0 (2.0.34.13),но сейчас попробую посмотреть! Спасибо за участие, а то я уже думал никто не подскажет!!!
3 USER48
 
06.08.12
15:42
Спасибо похоже именно оно!!! Сейчас на копии дописал, посмотрим что получится!!!
4 USER48
 
06.08.12
16:07
Появился нужный параметр, но когда пытаюсь запустить подбор по нему появляется ошибка : ФормаВыбораПоиска.ТаблицаНоменклатуры = Запрос.Выполнить().Выгрузить();
по причине:
{(12, 15)}: Поле не найдено "Номенклатура.Коментарий"
Номенклатура.<<?>>Коментарий ПОДОБНО &ШаблонПоиска СПЕЦСИМВОЛ "~"
5 aleks-id
 
06.08.12
16:10
всю жизнь был КомМентарий
6 USER48
 
07.08.12
14:46
Надеюсь еще можно продолжить тему. В общем все заработало, но как всегда хочется большего. В начале расскажу из-за чего все это. В семерке номенклатура учитывалась по коду, но когда менялась цена то тоже самое наименование получало новый код (сам в шоке, как раздувалась база!), артикула у них еще не было. Поле комментарий заполнялось не понятно чем (мое предположение что всеми предыдущими кодами) Перешли на 8.2, появилось поле АРТИКУЛ, которое у позиций до 12 года не заполнено. По факту в 12 году поле комментарий и артикул совпадают. Правда некоторые позиции в поле комментарий имеют до 7 перечислений этих самых артикулов. Сейчас сделав все что мне посоветовали на этой странице, подбор по комментарию происходит, но только по первому "артикулу" в комментарии, а если код в середине, то получаю сообщение, что такой номенклатуры нет.
7 USER48
 
08.08.12
09:27
Ну что никто не подскажет?
8 НикДляЗапросов
 
08.08.12
09:30
Ну не знаю, я в УТ 11, менял какоето элементарное условие, типа чтобы он искалась подстрока в строке
9 USER48
 
08.08.12
09:36
НикДляЗапросов, а поточнее можно, желательно пример кода?
10 НикДляЗапросов
 
08.08.12
09:39
какой там пример кода одну букву поменять в подборе на "В"
11 0Mint
 
08.08.12
11:41
(9)
У тебя в (4) сообщении об ошибке есть параметр запроса &ШаблонПоиска
Это строка которая состоит из того что введено в ПолеСписка + служебный символ "%", почитай про выражение ПОДОБНО в языке запросов, какие служебные символы для чего служат. Например тут:
http://help1c.com/faq82/view/852.html
12 USER48
 
08.08.12
14:03
Ошибка из (4) исчезла как комментарий с двумя "М" написал, работает, но в поле комментарий иногда несколько кодов, а он ищет только в начале строки.
Куда что подставить, чтобы нужный код можно было найти и в середине строки. Вот текст запроса:
   ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "~", "~~");
   ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "%", "~%");
   ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "_", "~_");
   ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "[", "~[");
   ШаблонПоиска = СтрЗаменить(ШаблонПоиска, "-", "~-");
   ШаблонПоиска = ШаблонПоиска+"%";
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ШаблонПоиска", ШаблонПоиска);

   Запрос.Текст = "
   |ВЫБРАТЬ ПЕРВЫЕ 51
   |    Номенклатура.Код КАК Код,
   |    Номенклатура.Артикул КАК Артикул,
   |    Номенклатура.Ссылка КАК Номенклатура,
   |    Номенклатура.НаименованиеПолное КАК НаименованиеПолное,
   |   Номенклатура.Комментарий КАК Комментарий,
   |    Номенклатура.Родитель КАК Родитель
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |
   |ГДЕ
   |    Номенклатура." + ЭлементыФормы.СписокВидовПоиска.Значение + " ПОДОБНО &ШаблонПоиска СПЕЦСИМВОЛ ""~""
   |    И Номенклатура.ЭтоГруппа = Ложь
   |";

   ВыбраннаяНоменклатура = Неопределено;
   Родитель = Неопределено;

   ФормаВыбораПоиска = ПолучитьФорму("ФормаВыбораПоиска", ЭтаФорма);
   ФормаВыбораПоиска.ТаблицаНоменклатуры = Запрос.Выполнить().Выгрузить();
13 0Mint
 
08.08.12
17:27
ШаблонПоиска = "%"+ШаблонПоиска+"%";
14 USER48
 
09.08.12
11:33
Большое спасибо!!! Все заработало!!!
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.