|
Загрузка информации из текстового документа txt в справочник
|
Я
|
|
Ник-Виталик 03.11.16 - 15:25 | Всем привет!Помогите, пожалуйста!
Нужно загрузить данные из txt в справочники Товары и Производители.
В текстовом документе соответственно Товары и Производители стоят через табуляцию. С записью данных из документа проблем нет, но проблема в том что много наименований там повторяются, а нужно отследить их на уникальность. Уже всё перепробовал. Вот то что я написал, но как бы я не пробовал ставить условие, записываются сразу либо все строки текстового документа, либо ничего. Помогите!
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать("C://1.txt");
Для НомерСтроки=1 по Текст.КоличествоСтрок() Цикл
Стр = СокрЛП(Текст.ПолучитьСтроку(НомерСтроки));
Позиция = Найти (Стр, " ");
Спр=Справочники.Товары.СоздатьЭлемент();
Спр.Наименование = Сред(Стр,1,Позиция-1);
НайденнаяСтрока = Справочники.Товары.НайтиПоНаименованию(Стр);
Если НайденнаяСтрока.Пустая() Тогда Сообщить("Элемента еще нет!"); Спр.Записать();
Иначе Сообщить("Элемент уже есть!");
КонецЕсли;
КонецЦикла |
Numerus Mikhail 1 - 03.11.16 - 15:26 | НайденнаяСтрока = Справочники.Товары.НайтиПоНаименованию(Стр);
замени на
НайденнаяСтрока = Справочники.Товары.НайтиПоНаименованию(Сред(Стр,1,Позиция-1)); |
iITmenedger 2 - 03.11.16 - 15:28 | ( 0)я бы сначала в ТЗ выгрузил файл, обработал бы ТЗ, а потом уже в документ |
Ник-Виталик 3 - 03.11.16 - 17:06 | Numerus Mikhail, да, спасибо большое) В этом было и дело)
|
Ник-Виталик 4 - 03.11.16 - 18:46 | Теперь другая проблема. Я занес из документа отдельно наименования элементов справочников Товары и Производители. Теперь в справочнике Товары нужно заполнить реквизит Производители в соответствии с текстовым документом. Здесь задача потяжелее. Есть у кого-нибудь идеи?
|
Злопчинский 5 - 03.11.16 - 18:50 | ( 0) вообще то табуляция это совсем не пробелы |
Ник-Виталик 6 - 03.11.16 - 19:03 | Это здесь отобразились пробелы. В обработке у меня стоит табуляция и все работает. К чему это вообще? Я же не на пробелы жаловался
|
Besometr 7 - 03.11.16 - 19:09 | я бы сделал (2)
потом сгруппировал бы производителям, убрал дубли, запросом бы сопоставил товары и производителей с уже имеющимися, а остальное насоздавал. |
Злопчинский 8 - 03.11.16 - 19:10 | ( 6) я так думаю что нужно указать специсмвол явным образом а не ставить в ковычки табулятор которого не видать А то при копипастинге куда нить он запросто випробел пиевратится |
bootini 9 - 03.11.16 - 19:13 | ( 4) Сразу на одном проходе цикла заполняй и номенклатуру, и производителя. |
Ник-Виталик 10 - 03.11.16 - 20:22 | Сразу на одном проходе цикла заполнить не получается. Причину я нашел в том что реквизит Производитель в спр.товары имеет тип СправочникСсылка.Производители. Т.е. выход только писать обработку, которая выберет из уже имеющихся наименований производителей нужных производителей. Не совсем представляю, как это сделать, тем более что для одного и того же товара могут быть 2 разных производителя, т.е. придется еще и дублировать наименование товара при необходимости. Может, я чего-то не учел и ошибаюсь.
|
bootini 11 - 03.11.16 - 20:56 | ( 10) Тогда создавай таблицу значений, с двумя колонками Номенклатура и Производитель, типа строка. Просто заполняй её данными из файла, передавай в запрос как параметр и вяжи со справочником номенклатура по двум полям Номенклатура.Наименование и Поставщик.Наименование.
На выходе получишь таблицу с найденной номенклатурой и стой которую надо создать. |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать
новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более
2000 человек.