Имя: Пароль:
1C
 
Конвертация данных. При поиске не создается новый элемент справочника.
0 Босечка
 
17.05.17
14:01
У меня такая проблема, прописаны поля поиска. В настройках все 3 первых галки стоят, но если объект не найден, новый элемент не создается.

вот поля поиска

Если  (ЗначениеЗаполнено(СвойстваПоиска["АлкогольнаяПродукция"]))   Тогда
СтрокаИменСвойствПоиска = "АлкогольнаяПродукция, КодНоменклатурыЕГАИС";
Конецесли;

при чем КодНоменклатурыЕГАИС заполняется в ПКС"

При выгрузке:

Запрос=новый Запрос;
      Запрос.текст ="ВЫБРАТЬ
                        |    СоответствиеНоменклатурыЕГАИС.АлкогольнаяПродукция,
                        |    СоответствиеНоменклатурыЕГАИС.АлкогольнаяПродукция.Код КАК КодЕГАИС,
                        |    СоответствиеНоменклатурыЕГАИС.Номенклатура
                        |ИЗ
                        |    РегистрСведений.СоответствиеНоменклатурыЕГАИС КАК СоответствиеНоменклатурыЕГАИС
                        |ГДЕ
                        |    СоответствиеНоменклатурыЕГАИС.Номенклатура = &Ист
                        |    И СоответствиеНоменклатурыЕГАИС.Номенклатура.ЭтоГруппа = ЛОЖЬ";
      
      
       Запрос.УстановитьПараметр("Ист",Источник);
       Выб=Запрос.Выполнить().Выбрать();
    Если  Выб.Следующий() тогда
        Значение = Выб.КодЕГАИС;  
        Сообщить(Значение);
    КонецЕсли;
1 Ёпрст
 
гуру
17.05.17
14:30
(0) все три первые, это какие ?

1.искать объект в приёмнике по внтутреннему идентификатору
2. продолжить по полям поиска
3. не замещать объекты, а только создавать новые ?

Или что ?
2 Ёпрст
 
гуру
17.05.17
14:31
>>.При поиске не создается новый элемент справочника.

Если воткнула галки как в (1) и объект найден, то ничего не создается при этом и никакие свойства объекта не перезаписываются
3 Босечка
 
17.05.17
16:45
Да, как в 1. А как надо?
Если первую убираешь, то 2-я тоже убирается.
4 Босечка
 
17.05.17
16:48
Переставила ПКс после выгрузки вообще создавать КодЕГАИС перестала
5 Ёпрст
 
гуру
17.05.17
16:50
(3) при таких настройках, если товар найден, то согластно 3-ей галке, он не "замещается". И никакие реквизиты этого объекта не перезаписываются.

Вот если бы он не нашелся по внутреннему идентификатору, потом не нашелся бы по твоим полям поиска - вот только тогда был бы создан новый элемент.
6 Босечка
 
17.05.17
16:55
Это понятно, а как мне сделать и где мне по внутреннему идентификатору не надо вообще искать. Мне надо только по полям поиска. Если не найден, то надо сделать новый.
А в ПКС правильно написано?
При выгрузке надо прописать?
7 Босечка
 
17.05.17
16:57
Как отключить поиск по внутреннему идентификатору?
8 Ёпрст
 
гуру
17.05.17
16:59
(6) сними галку 1 - искать объект в приёмнике по внтутреннему идентификатору

он будет искать только по полям поиска, т.е по тем полям, у которых галка "поиск" воткнута
9 Ёпрст
 
гуру
17.05.17
17:00
Причем, в ПКО в ПоляПоиска, ты можешь управлять этим поиском, например, для группы искать по одним полям, для элемента по другим
10 Ёпрст
 
гуру
17.05.17
17:01
или вообще свой поиск, который по еще-каким полям (которых даже может и не быть с галкой поиск, например, с параметров прилетели)
11 Ёпрст
 
гуру
17.05.17
17:03
Ну и параметры для поиска, пихать лучше в ПКС ПередВыгрузкой для реквизита поиска
12 Босечка
 
17.05.17
17:03
Спасибо. А я при выгрузке сделала, это неправильно?
13 Ёпрст
 
гуру
17.05.17
17:06
(12) если в ПередВыгрузкой определяешь значение, то след. события ужо не будут происходить
14 Ёпрст
 
гуру
17.05.17
17:06
так быстрее
15 Босечка
 
17.05.17
17:08
Спасибо. А если по КодЕгаис не находит, то пусть ищет по наименованию так правильно?
СтрокаИменСвойствПоиска = "КодНоменклатурыЕГАИС,Наименование";
16 Ёпрст
 
гуру
17.05.17
17:45
(15) тогда пиши так в ПоляПоиска:

Если НомерВариантаПоиска = 1 тогда
    тут, например, запрос по кодуЕгаис
    ...
    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
        ССылкаНаОбъект =  Выборка.Номенклатура;
        ПрекратитьПоиск  = Истина;
        КонецЕсли;
Иначе
Иначе
    Если СвойстваПоиска["АлкогольнаяПродукция"] Тогда //если алкоголь
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа, Емкость, Крепость ";
    Иначе
        СтрокаИменСвойствПоиска = "Наименование, ЭтоГруппа ,Емкость";
    КонецЕсли;
КонецЕсли;

НомерВариантаПоиска может быть до 10...
17 Босечка
 
17.05.17
18:08
Спасибо большое! Толькл 3-ю галку оставлять? А первые 2 убрать?
18 Босечка
 
17.05.17
18:08
ап.....
19 Ёпрст
 
гуру
18.05.17
09:00
(17) если не нужен поиск по внутреннему идентификатору, то да, убрать первую галку.
Если не нужно, чтоб найденный элемент перезаписывался новыми свойствами, то оставить 3-ю галку.