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