Имя: Пароль:
1C
1С v8
Автоматический поиск бренда в наименовании
,
0 Vetal821
 
16.06.13
17:38
Как реализовать есть справочник Номенклатура с реквизитом Бренд, также справочник брендов. Как сделать обработку поиск в наименовании бренда и подстановка в реквизит бренд-ссылка на справочник с брендами?
1 Wobland
 
16.06.13
17:40
файл - новый - обработка
2 Wobland
 
16.06.13
17:41
вариант второй: позвать программиста
3 Wobland
 
16.06.13
17:41
вариант третий: как-то себя заставить
4 Vetal821
 
16.06.13
17:42
ты просто - мозг
5 Wobland
 
16.06.13
17:42
четвёртый вариант: таки попытаться сделать самостоятельно, встретить трудность, спросить совета
6 Vetal821
 
16.06.13
17:43
Это в отчете просто пробывал поиск что не так
&НаСервере
Процедура СформироватьНаСервере()
Перем БрендИщем;
Перем Наим;
   Макет =Отчеты.ПоискБрендовВНаименовании.ПолучитьМакет("Макет");
   ОблШапка = Макет.ПолучитьОбласть("Шапка");
   ОблЭлемент = Макет.ПолучитьОбласть("Элемент");
   ТабДок.Вывести(ОблШапка);    
ЗапросНом = Новый Запрос;
ЗапросНом.Текст ="ВЫБРАТЬ
             |    Номенклатура.Код,
             |    Номенклатура.Наименование
             |ИЗ
             |    Справочник.Номенклатура КАК Номенклатура
             |ГДЕ
             |    Не Номенклатура.ЭтоГруппа";
Результат =ЗапросНом.Выполнить();
ВыборкаНом= Результат.Выбрать();    
   
ЗапросБрендов = Новый Запрос;
ЗапросБрендов.Текст ="ВЫБРАТЬ
                    |    Бренды.Наименование
                    |ИЗ
                    |    Справочник.Бренды КАК Бренды";
Результат =ЗапросБрендов.Выполнить();
ВыборкаБрендов= Результат.Выбрать();


Пока ВыборкаНом.Следующий() Цикл
     Наим = НРег(ВыборкаНом.Наименование);
     Пока ВыборкаБрендов.Следующий() Цикл
       БрендИщем = НРег(ВыборкаБрендов.Наименование);        
       БрендИщем =БрендИщем+" ";
       Если СтрЧислоВхождений(Наим,БрендИщем)>=1 Тогда
                 ОблЭлемент.Параметры.Заполнить(ВыборкаБрендов);
                 ТабДок.Вывести(ОблЭлемент)
             КонецЕсли;    
                   
           КонецЦикла;
КонецЦикла;

   КонецПроцедуры
7 Wobland
 
16.06.13
17:44
8 Vetal821
 
16.06.13
17:45
))))) специально запасена картиночка на такие случаи
9 Vetal821
 
16.06.13
17:46
Спрашиваю совет: где ошибка?
10 Armando
 
16.06.13
17:48
что-то типа такова попробуй

выбрать Номенклатура.Ссылка, Бренды.Ссылка из Справочник.Номенклатура внутренние соединение Справлчник.Бренды по Номенклатура.Наименование подобно %Бренды.Наименование%
11 Wobland
 
16.06.13
17:49
соединение по подобно разве что..
12 Wobland
 
16.06.13
17:50
(9) в двойном цикле и в неиспользовании всех возможностей запросов
13 Wobland
 
16.06.13
17:51
+(12) а ещё в проектировании
14 Vetal821
 
16.06.13
17:54
как сделать с помощью только запросов без циклов?
15 Wobland
 
16.06.13
17:57
(14) понять, что имел в виду Armando, почитать про подобно и соединения. цикл всё ж потребуется, но один и уже содержащий только нужное
16 mistеr
 
16.06.13
19:04
Я бы полнотекстовый поиск заюзал.
17 Vetal821
 
16.06.13
20:53
Что не так
ВЫБРАТЬ ПЕРВЫЕ 10
   Номенклатура.Ссылка,
   Номенклатура.Наименование,
   Бренды.Ссылка КАК Ссылка1,
   Бренды.Наименование КАК Наименование1
ИЗ
   Справочник.Номенклатура КАК Номенклатура
       СОЕДИНЕНИЕ Справочник.Бренды КАК Бренды
       ПО (Номенклатура.Наименование ПОДОБНО "%Бренды.Наименование% ")
ГДЕ
   НЕ Номенклатура.ЭтоГруппа
18 mistеr
 
16.06.13
21:05
ПОДОБНО "%" + Бренды.Наименование + "%"

Плюс экранирование кавычек. Но думаю не взлетит.
19 Vetal821
 
16.06.13
22:22
Почти работает), но если находит несколько брендов в наименование выводит несколько раз, ка сделать чтоб выводилось только в начале наименования или самое первое


ВЫБРАТЬ
   Номенклатура.Ссылка,
   Номенклатура.Наименование,
   Бренды.Ссылка КАК Ссылка1,
   Бренды.Наименование КАК Наименование1
ИЗ
   Справочник.Номенклатура КАК Номенклатура
       СОЕДИНЕНИЕ Справочник.Бренды КАК Бренды
       ПО (Номенклатура.Наименование ПОДОБНО "%"+Бренды.Наименование+"%")
ГДЕ
   НЕ Номенклатура.ЭтоГруппа
20 Armando
 
16.06.13
22:52
>> ка сделать чтоб выводилось только в начале наименования

вместо "%"+Бренды.Наименование+"%"
это Бренды.Наименование+"%"
21 Armando
 
16.06.13
22:56
Чтоб выводилось какое-то одно значение, обычно группируют по ключевым полям, а по остальным максимум().

в твоем случае группировать по номенклатуре, а по бренду максимум()
AdBlock убивает бесплатный контент. 1Сергей