|   |   | 
| 
 | v7: Создание документов в цикле | ☑ | ||
|---|---|---|---|---|
| 0
    
        Mafiozaa 17.03.21✎ 03:25 | 
        Приветствую, не получается корректно создать нужное кол-во документов по условиям, логика какая: Читаем текстовый файл, находим строку "-----" открываем документ разносим в новом документе по реквизитам данные, после читаем далее, находим "_____" записываем документ, а у меня получается, то очень много документов, то 1 документ создается правильно, а все остальные(последующие) со штатными ДатаДок и НомерДок
 Код для наглядности ДокМарк = СоздатьОбъект("Документ.Маркировка"); КолСтр = Т.КоличествоСтрок(); Для А = 1 По КолСтр Цикл Если Найти(ТекСтр, "----------") <> 1 Тогда Стр = Т.ПолучитьСтроку(ТекСтр); ДокМарк.Новый(); Если Стр = "----------" Тогда ТекСтр = ТекСтр + 1; ДокМарк.ДатаДок = Т.ПолучитьСтроку(ТекСтр); ТекСтр = ТекСтр + 1; ДокМарк.НомерДок = Т.ПолучитьСтроку(ТекСтр); ТекСтр = ТекСтр + 1; Сообщить(Т.ПолучитьСтроку(ТекСтр)); ДокМарк.ДокОснование = Т.ПолучитьСтроку(ТекСтр); ТекСтр = ТекСтр + 1; Сообщить(Т.ПолучитьСтроку(ТекСтр)); ДокМарк.КодМаркировки = Т.ПолучитьСтроку(ТекСтр); КонецЕсли; КонецЕсли; Если Найти(ТекСтр, "__________") <> 1 Тогда ДокМарк.Записать(); КонецЕсли; КонецЦикла; | |||
| 1
    
        Mafiozaa 17.03.21✎ 03:25 | 
        Ткните носом, что я делаю не так)     | |||
| 2
    
        hhhh 17.03.21✎ 04:17 | 
        (1)         Если Найти(ТекСтр, "----------") <> 1 Тогда
 это что за хрень? ТекСтр - это число, откуда в нем могут возникнуть черточки? | |||
| 3
    
        Bigbro 17.03.21✎ 04:55 | 
        ты не записываешь ни один документ.     | |||
| 4
    
        Bigbro 17.03.21✎ 04:55 | 
        то есть наоборот     | |||
| 5
    
        Mafiozaa 17.03.21✎ 05:29 | 
        (4) Наоборот я записываю 1 документ, я понял что косяк в этом  Если Найти(ТекСтр, "----------") <> 1 Тогда, щас буду копаться     | |||
| 6
    
        Провинциальный 1сник 17.03.21✎ 06:37 | 
        1. Лучше использовать "Т.ВыбратьСтроки" и "Пока Т.ПолучитьСтроку()" вместо цикла по счетчику.
 2. Если используешь цикл по счетчику строк ТЗ, то потом обращаться к нужной строке можно двумя способами - или Т.ПолучитьСтрокуПоНомеру(<Строка>), или обращаться к каждому реквизиту через Т.ПолучитьЗначение(<Строка>,<Колонка>) А у тебя хрень какая-то. | |||
| 7
    
        Mafiozaa 17.03.21✎ 07:55 | 
        (6) (2) Этот вопрос решил)     | |||
| 8
    
        Kigo_Kigo 17.03.21✎ 09:16 | 
        КодикВырвиГлазик :)))     | |||
| 9
    
        Злопчинский 17.03.21✎ 10:26 | 
        Если Стр <> "----------" Тогда
 будет работать примерно в 10 раз быстрее | |||
| 10
    
        Злопчинский 17.03.21✎ 10:27 | 
        Многоэтажные длинные если намного ухудшают читабельность и понимаемость кода     | |||
| 11
    
        Fedor-1971 17.03.21✎ 11:43 | 
        (0) ДокМарк = СоздатьОбъект("Документ.Маркировка"); - создаём один документ
 Счётчик цикла А=1, а двигаешься по файлу ТекСтр Потом, возможно, если встретишь "-----", то запишешь документ. Только ТекСтр - счётчик и там число, а не строка Ты точно понимаешь что делает этот кусок кода? (9) лучше Лев(Стр,5) = "-----", т.к. в файле может быть переменное кол-во символов "-" | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |