|
Загрузка из excel в ТП | ☑ | ||
---|---|---|---|---|
0
maptbln
26.12.18
✎
03:40
|
С наступающим,есть вопрос
Как можно избежать поиска по наименованию, если необходимо загрузить в колонку табличного поля ,которая имеет тип СправочникСсылка значение этого справочника,учитывая то,что в входных данных имеем наименование лишь наименование. Предварительно создать запрос ,содержащий все возможные значения и искать в нем по колонке наименования или есть более оптимальный способ? |
|||
1
shadow_sw
26.12.18
✎
04:31
|
артикул, код УС, еще какие то синтетические значения?
|
|||
2
seevkik
26.12.18
✎
04:36
|
Вопрос походу в том чтобы отказаться от "Справочники.Справочник.НайтиПоНаименовани()"
|
|||
3
shadow_sw
26.12.18
✎
04:56
|
(2) тогда Подобно %товар% в помощь, в запросе
|
|||
4
seevkik
26.12.18
✎
05:06
|
(3) а если наименования в массив, а в запросе условие "ГДЕ номенклатура.наименование В (&МассивНаименований)", после этого как сказал ТС сравнивать наименования, то будет ли быстрее чем "Справочники.Справочник.НайтиПоНаименовани()" если строк будет, скажем, 700?
|
|||
5
shadow_sw
26.12.18
✎
05:10
|
(4) подобно тоже самое выдаст, не?
|
|||
6
seevkik
26.12.18
✎
05:15
|
(5) я про массив наименований, например стул, стол, хлеб в массиве
|
|||
7
shadow_sw
26.12.18
✎
05:18
|
(6) а недопонял, в целом да
|
|||
8
shadow_sw
26.12.18
✎
05:18
|
ТС один черт спит :)
|
|||
9
maptbln
26.12.18
✎
10:11
|
да,найти по наимнованию ведь вредно для кода
да и если есть несколько одинаковых наименований , он ведь берёт буквально первый попавшийся,может и помеченный на удаление подтянуть (4) насчёт быстрее не знаю,но наверное ошибок будет меньше (8) всё в порядке,пробудился) |
|||
10
bolder
26.12.18
✎
10:17
|
(9) При одинаковых наименованиях - бредовая идея автоматизировать подобное.Поиск по наименованию вполне годная штука- процессор работает быстро)
|
|||
11
maptbln
26.12.18
✎
18:31
|
Что темы не плодить , спрошу здесь , это конечно дикость,но как установить отбор по группе справочника , папка имеет код 001
пишу ГруппаСтатей = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("001"); Запрос = Новый Запрос; Запрос.УстановитьПараметр("ГруппаСтатей",ГруппаСтатей); Запрос.Текст = "ВЫБРАТЬ | СтатьиДвиженияДенежныхСредств.Ссылка КАК Ссылка, | СтатьиДвиженияДенежныхСредств.Наименование КАК Наименование |ИЗ | Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств |ГДЕ | СтатьиДвиженияДенежныхСредств.Ссылка В ИЕРАРХИИ(&ГруппаСтатей) | И СтатьиДвиженияДенежныхСредств.ЭтоГруппа = ЛОЖЬ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ИС_Проекты.Ссылка КАК Ссылка, | ИС_Проекты.Наименование КАК Наименование |ИЗ | Справочник.ИС_Проекты КАК ИС_Проекты"; не отрабатывает |
|||
12
Fram
26.12.18
✎
18:40
|
Читаешь результат каждого запроса или только последнего?
|
|||
13
maptbln
26.12.18
✎
18:41
|
ВыполнитьПакет()
|
|||
14
maptbln
26.12.18
✎
18:58
|
ошибка настолько очевидна ,никто не хочет говорить?
|
|||
15
Fram
26.12.18
✎
20:09
|
(13) отладчиком конечно же уже убедился что ГруппаСтатей находится по коду корректно?
|
|||
16
maptbln
27.12.18
✎
09:04
|
корректно
|
|||
17
hhhh
27.12.18
✎
09:09
|
(16) информации недостаточно. Давай скрины. И как обрабатываешь результат запроса тоже.
|
|||
18
maptbln
27.12.18
✎
09:25
|
МассивРезультатов = Запрос.ВыполнитьПакет();
СтатьиДвижения = МассивРезультатов[0].Выбрать(); может тут проблема, СтатьиДвижения не заполняется https://ibb.co/qBtDfDX https://ibb.co/M2Xr0k2 |
|||
19
Скиурус
27.12.18
✎
09:38
|
(0) "НайтиПоНаимеванию" не то чтобы вредно по коду. Просто каждый раз когда ты его вызываешь, происходит обращение к серверу БД и поиск. Сам поиск неизбежен, но факт обращения несет "накладные расходы" на вызов. Можно представить, что поиск одного значения по наименованию занимает условно 1 секунду, а обращение к серверу дополнительно еще 2 секунды. Т.е. если ты 700 раз выполнишь "найтиПоНаименованию", то это займет 700 * (1 + 2) = 2100 секунд, а если найдешь все за один раз, то это займет 700 * 1 + 2 = 702 секунды. (Цифры для примера)
Для того чтобы реализовать второй вариант, нужно загнать в ТаблицуЗначений все наименования и прочие данные, Поместить эту ТЗ во временную таблицу с помощью запроса, и следующим запросом Связить это временную таблицу со справочником и получить ссылки. Нужно понимать, критична ли эта разница. Если дело происходит в проведении документа - очень критична. А если в ночной загрузке, которая автоматом стартует по расписанию, то в общем по фигу и можно не заморачиваться. |
|||
20
zuza
27.12.18
✎
09:38
|
(18) а где Следующий()?
|
|||
21
maptbln
27.12.18
✎
09:45
|
(19) спасибо за математику
какая-то замысловатая схема ,учитывая то , что можно получить все что нужно за раз 1 запросом ,правда у меня чёт пробуксовки |
|||
22
Скиурус
27.12.18
✎
09:58
|
(21) Если у тебя в источнике ничего кроме наименования нет, то да, временные таблицы не нужны. а если в источнике Наименование, плюс пара цифер, то лучше их скопом загнать в ТЗ, чтобы потом не искать, какая ссылка из полученных к какому наименованию относится.
|
|||
23
maptbln
27.12.18
✎
10:11
|
(22) Вот теперь понял ,спасибо большое за науку
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |