Вход | Регистрация



Загрузка из excel в ТП

Загрузка из excel в ТП
Я
   maptbln
 
26.12.18 - 03:40
С наступающим,есть вопрос
Как можно избежать поиска по наименованию, если необходимо загрузить в колонку табличного поля
,которая имеет тип СправочникСсылка  значение этого справочника,учитывая то,что в входных данных имеем наименование лишь наименование.

Предварительно создать запрос ,содержащий все возможные значения и искать в нем по колонке наименования или есть более оптимальный способ?
 
 
   shadow_sw
 
1 - 26.12.18 - 04:31
артикул, код УС, еще какие то синтетические значения?
   seevkik
 
2 - 26.12.18 - 04:36
Вопрос походу в том чтобы отказаться от "Справочники.Справочник.НайтиПоНаименовани()"
   shadow_sw
 
3 - 26.12.18 - 04:56
(2) тогда Подобно  %товар% в помощь, в запросе
   seevkik
 
4 - 26.12.18 - 05:06
(3) а если наименования в массив, а в запросе условие "ГДЕ номенклатура.наименование В (&МассивНаименований)", после этого как сказал ТС сравнивать наименования, то будет ли быстрее чем "Справочники.Справочник.НайтиПоНаименовани()" если строк будет, скажем, 700?
   shadow_sw
 
5 - 26.12.18 - 05:10
(4) подобно тоже самое выдаст, не?
   seevkik
 
6 - 26.12.18 - 05:15
(5) я про массив наименований, например стул, стол, хлеб в массиве
   shadow_sw
 
7 - 26.12.18 - 05:18
(6) а недопонял, в целом да
   shadow_sw
 
8 - 26.12.18 - 05:18
ТС один черт спит :)
   maptbln
 
9 - 26.12.18 - 10:11
да,найти по наимнованию ведь вредно для кода
да и если есть несколько одинаковых наименований , он ведь берёт буквально первый попавшийся,может и помеченный на удаление подтянуть
(4)
насчёт быстрее не знаю,но наверное ошибок будет меньше

(8) всё в порядке,пробудился)
   bolder
 
10 - 26.12.18 - 10:17
(9)  При одинаковых наименованиях - бредовая идея автоматизировать подобное.Поиск по наименованию вполне годная штука- процессор работает быстро)
 
 Рекламное место пустует
   maptbln
 
11 - 26.12.18 - 18:31
Что темы не плодить , спрошу здесь , это конечно дикость,но как установить отбор по группе справочника , папка имеет код 001

пишу

ГруппаСтатей = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоКоду("001");    
    
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ГруппаСтатей",ГруппаСтатей);
    Запрос.Текст = "ВЫБРАТЬ
                   |    СтатьиДвиженияДенежныхСредств.Ссылка КАК Ссылка,
                   |    СтатьиДвиженияДенежныхСредств.Наименование КАК Наименование
                   |ИЗ
                   |    Справочник.СтатьиДвиженияДенежныхСредств КАК СтатьиДвиженияДенежныхСредств
                   |ГДЕ
                   |    СтатьиДвиженияДенежныхСредств.Ссылка В ИЕРАРХИИ(&ГруппаСтатей)
                   |    И СтатьиДвиженияДенежныхСредств.ЭтоГруппа = ЛОЖЬ
                   |;
                   |
                   ////////////////////////////////////////////////////////////////////////////////

                   |ВЫБРАТЬ
                   |    ИС_Проекты.Ссылка КАК Ссылка,
                   |    ИС_Проекты.Наименование КАК Наименование
                   |ИЗ
                   |    Справочник.ИС_Проекты КАК ИС_Проекты";

не отрабатывает
   Fram
 
12 - 26.12.18 - 18:40
Читаешь результат каждого запроса или только последнего?
   maptbln
 
13 - 26.12.18 - 18:41
ВыполнитьПакет()
   maptbln
 
14 - 26.12.18 - 18:58
ошибка настолько очевидна ,никто не хочет говорить?
   Fram
 
15 - 26.12.18 - 20:09
(13) отладчиком конечно же уже убедился что ГруппаСтатей находится по коду корректно?
   maptbln
 
16 - 27.12.18 - 09:04
корректно
   hhhh
 
17 - 27.12.18 - 09:09
(16) информации недостаточно. Давай скрины. И как обрабатываешь результат запроса тоже.
   maptbln
 
18 - 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 секунды. (Цифры для примера)
Для того чтобы реализовать второй вариант, нужно загнать в ТаблицуЗначений все наименования и прочие данные, Поместить эту ТЗ во временную таблицу с помощью запроса, и следующим запросом Связить это временную таблицу со справочником и получить ссылки.
Нужно понимать, критична ли эта разница. Если дело происходит в проведении документа - очень критична. А если в ночной загрузке, которая автоматом стартует по расписанию, то в общем по фигу и можно не заморачиваться.
   zuza
 
20 - 27.12.18 - 09:38
(18) а где Следующий()?
   maptbln
 
21 - 27.12.18 - 09:45
(19) спасибо за математику
какая-то замысловатая схема ,учитывая то , что можно получить все что нужно за раз 1 запросом ,правда у меня чёт пробуксовки
   Скиурус
 
22 - 27.12.18 - 09:58
(21) Если у тебя в источнике ничего кроме наименования нет, то да, временные таблицы не нужны. а если в источнике Наименование, плюс пара цифер, то лучше их скопом загнать в ТЗ, чтобы потом не искать, какая ссылка из полученных к какому наименованию относится.
   maptbln
 
23 - 27.12.18 - 10:11
(22) Вот теперь понял ,спасибо большое за науку


Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь во втором сообщении вам дадут решение, а в двадцатом дадут правильное решение. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует