Имя: Пароль:
1C
 
как выгрузить из .txt файла в 1с
🠗 (Волшебник 27.09.2017 13:44)
0 savage_pro
 
27.09.17
13:43
коллеги, подскажите:

добавить надо в документе.продаж
номенклатура цена
лук          120
помидор      250
картофель    140

Для Счетчик = 1 по КоличествоСтрок Цикл
        
        ТекСтрока = Текст.ПолучитьСтроку(Счетчик);
        СтрокаРазделить = СтрЗаменить(ТекСтрока,";", Символы.ПС);
        
        ИмяНоменклатуры = СтрПолучитьСтроку(СтрокаРазделить,1);
        ЦенаНоменклатуры = СтрПолучитьСтроку(СтрокаРазделить,2);
        
        //Для  каждого Строка Из Объект.ПереченыНоменклатуры Цикл        
        Номен = Документы.Продажа;
        Если Номен.Пустая() Тогда
                
            НоваяНоменклатура = Объект.ПереченыНоменклатуры.Добавить();
            НоваяНоменклатура.Номенклатура = ИмяНоменклатуры;
            НоваяНоменклатура.Цена = ЦенаНоменклатуры;            
        КонецЕсли;
            //КонецЦикла;
    КонецЦикла;
1 savage_pro
 
27.09.17
13:44
у меня условия не то работает как можно исправит?
2 Волшебник
 
модератор
27.09.17
13:45
(1) Сделайте правильное условие
3 Fish
 
27.09.17
13:47
Какая-то непонятная жуть. Исправить можно, предварительно подучив 1С.
4 Злопчинский
 
27.09.17
13:47
новую строку в документ - свосем добавлять не надо?
5 savage_pro
 
27.09.17
13:52
из файла надо добавлять
6 Fedor-1971
 
27.09.17
13:52
(0) по уму так
1. Чтение текста как описано в СП
Текст = Новый ЧтениеТекста("d:\win.txt", КодировкаТекста.ANSI);
Стр = Текст.ПрочитатьСтроку();
Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки
    Сообщить(Стр);
    Стр = Текст.ПрочитатьСтроку();
КонецЦикла;

2. Пойми что написал здесь:
Номен = Документы.Продажа;
Если Номен.Пустая() Тогда - что пустая()? Номен.Ссылка.Пустая()? так она всегда пустая, т.к. ты не получил документ и даже не ссылку на оный, а просто определил переменную типа "Документы.Продажа"
   НоваяНоменклатура = Объект.ПереченыНоменклатуры.Добавить();  - откуда взялся Объект?
7 savage_pro
 
27.09.17
13:54
у меня есть документ.продажа(у него табличный часть есть(Номенклатура, Цена)) вот я хочу туда добавлять из .тхт
8 Волшебник
 
модератор
27.09.17
13:55
"Перечены" нужно заменить на "Перечень"
"ы" и "ь" разные буквы русского алфавита
9 Fish
 
27.09.17
13:55
(7) А количество у тебя где?
10 savage_pro
 
27.09.17
13:55
я новичков недавно начал изучать
11 savage_pro
 
27.09.17
14:00
НоваяНоменклатура = Объект.ПереченыНоменклатуры.Добавить();  - откуда взялся Объект?
из документа в табличные часть
12 savage_pro
 
27.09.17
14:01
Текст = Новый ТекстовыйДокумент;
    ПолноеИмяФайла = "C:\Users\Mirzo\Desktop\Продаж.txt";
    Текст.Прочитать(ПолноеИмяФайла);
13 savage_pro
 
27.09.17
14:03
вот так чтения файла описано
15 Fedor-1971
 
27.09.17
14:10
(12) смотри как читать текст в (6) и тебе проще и на болшом файле не подвиснешь.
и так, попробуем начать заново.
Формы УФ/ОФ? В каком контексте выполняется данный код (форма, модуль объекта, модуль менеджера)? Код точно вытащил для 8 (или таки переписываешь с 7.7, очень уж похоже)?
16 savage_pro
 
27.09.17
14:17
1с 8.3
17 savage_pro
 
27.09.17
14:18
В каком контексте выполняется данный код (форма, модуль объекта, модуль менеджера)
форма
18 Fedor-1971
 
27.09.17
14:19
(16) И? ответь на остальные вопросы
19 savage_pro
 
27.09.17
14:19
этот код в форме выполняется
20 savage_pro
 
27.09.17
14:20
Формы УФ/ОФ? это что такое? я неянаю
21 savage_pro
 
27.09.17
14:20
не знаю тоис
22 Fedor-1971
 
27.09.17
14:21
(20) Форма обычная или управляемая?
23 savage_pro
 
27.09.17
14:21
Формы УФ/ОФ объясни
24 savage_pro
 
27.09.17
14:23
обычная форма
25 savage_pro
 
27.09.17
14:24
(7)     Текст = Новый ТекстовыйДокумент;
    ПолноеИмяФайла = "C:\Users\Mirzo\Desktop\Продаж.txt";
    Текст.Прочитать(ПолноеИмяФайла);
    
    КоличествоСтрок = Текст.КоличествоСтрок();
26 Fedor-1971
 
27.09.17
14:27
(23) в 22 вопрос
(24) тогда

Номен = Справочники.Номенклатура.НайтиПоНаименованию(ИмяНоменклатуры); //поискали номенклатуру
Если Номен.Пустая() Тогда //ничего не нашли в справочнике номенклатуры
                
            НоваяНоменклатура = Объект.ПереченыНоменклатуры.Добавить();
            НоваяНоменклатура.Номенклатура = Номен;
            НоваяНоменклатура.Цена = Число(ЦенаНоменклатуры); // тут сам установи защиту от букв в цене
        КонецЕсли; //убери
27 Fedor-1971
 
27.09.17
14:28
26+ ошибочка вышла Если НЕ Номен.Пустая() Тогда  //что-то таки нашли
28 savage_pro
 
27.09.17
14:29
(22) обычная форма
29 savage_pro
 
27.09.17
14:41
{Документ.Продажа.Форма.ФормаДокумента.Форма(83)}: Преобразование значения к типу Число не может быть выполнено
        НоваяНоменклатура.Цена = Число(ЦенаНоменклатуры);
30 savage_pro
 
27.09.17
14:43
(26) тут ошибка дает
31 Fedor-1971
 
27.09.17
14:44
(29) и? в ЦенаНоменклатуры не только цифры
Замени Число(СокрЛП(ЦенаНоменклатуры)) и оберни Попытка-Исключение-КонецПопытки

тут уж сам