|   |   | 
| 
 | Загрузка информации из текстового документа 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) Тогда создавай таблицу значений, с двумя колонками Номенклатура и Производитель, типа строка. Просто заполняй её данными из файла, передавай в запрос как параметр и вяжи со справочником номенклатура по двум полям Номенклатура.Наименование и Поставщик.Наименование. 
 На выходе получишь таблицу с найденной номенклатурой и стой которую надо создать. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |