|   |   | 
| 
 | Обработка каждой третьей строки текстового файла | ☑ | ||
|---|---|---|---|---|
| 0
    
        MaryanaR naïve 17.09.24✎ 10:45 | 
        Всем доброго дня. Есть текстовый файл с данными поставки товара. Контрагент может предоставлять так и никак иначе.(Закрытый вопрос).
 Делаю веб сервис по загрузке. Инфа о каждой поставке находится в 10 строках. Типа 1)Контрагент 2)Организация 3) Дата 4)Товар и т.д. Через 10 строк уже информация о новой поставке с теми же строками и с тем же порядком. Понимаю как обойти каждую строку файла текстового, но не понимаю, как заставить алгоритм обработки через 10 строк начинать работу заново, но продолжать шагать по строкам. Были бы ключевые слова, было бы понятно. Но их тут нет. Просто набор данных каждый в своей строке. | |||
| 1
    
        MaryanaR naïve 17.09.24✎ 10:49 | 
        Если бы было всего 3 строки. То можно было бы проверять на четность. Но их тут 10....     | |||
| 2
    
        Builder 17.09.24✎ 10:50 | 
        Вкалывают роботы, а не человек.... :)     | |||
| 3
    
        MaryanaR naïve 17.09.24✎ 10:53 | 
        Делить по порядку от 1 до 10, потом проверять результат на целое?     | |||
| 4
    
        Галахад гуру 17.09.24✎ 10:54 | 
        Гм. Если НомерСтроки % 10 = 0 Тогда ...     | |||
| 5
    
        MaryanaR naïve 17.09.24✎ 10:54 | 
        (3) фигня. Не могу понять все равно.     | |||
| 6
    
        MaryanaR naïve 17.09.24✎ 11:13 | 
        (4) 50-ая строка тоже на 10 нацело поделится     | |||
| 7
    
        Гена гуру 17.09.24✎ 10:58 | 
        (4) У нас же как раз десятичная система исчисления, поэтому достаточно, чтобы номер строки заканчивался на "1".     | |||
| 8
    
        breezee 17.09.24✎ 10:59 | 
        ИТ = ИТ + 1;
 Если ИТ = 10 тогда ит = 0 | |||
| 9
    
        MaryanaR naïve 17.09.24✎ 11:00 | 
        (4) вы верно написали. Я поняла. Пусть будет 300 строк. Делим каждую на 10, и как только номер строки поделился нацело на 10, заканчиваем обработку и начинаем заново. Спасибо.     | |||
| 10
    
        MaryanaR naïve 17.09.24✎ 11:01 | 
        (8) ну и так тоже. Спасибо.     | |||
| 11
    
        Irbis 17.09.24✎ 11:02 | 
        А добавить нужное число строк к нужной строке кто-то запретил?     | |||
| 12
    
        Builder 17.09.24✎ 11:02 | 
        главное что бы во всех документах было одинаковое количество товаров, а то весь алгоритм неожиданно рухнет :)     | |||
| 13
    
        Волшебник 17.09.24✎ 11:02 | Процедура ОбработатьПоставкиИзФайла(ИмяФайла)
    // Открываем файл на чтение
    Если НЕ ФайлСуществует(ИмяФайла) Тогда
        Сообщить("Файл не найден: " + ИмяФайла);
        Возврат;
    КонецЕсли;
    ФайлТекста = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
    ДанныеТекста = Новый ТекстовФайлЧтения(ФайлТекста);
    // Бесконечный цикл для обработки строк файла
    Пока Истина Цикл
        // Считываем 10 строк для одной поставки
        Контрагент = ДанныеТекста.ПрочитатьСтроку();
        Если Контрагент = Неопределено Тогда Прервать; КонецЕсли;
        Организация = ДанныеТекста.ПрочитатьСтроку();
        Если Организация = Неопределено Тогда Прервать; КонецЕсли;
        Дата = ДанныеТекста.ПрочитатьСтроку();
        Если Дата = Неопределено Тогда Прервать; КонецЕсли;
        Товар = ДанныеТекста.ПрочитатьСтроку();
        Если Товар = Неопределено Тогда Прервать; КонецЕсли;
        // Далее идет обработка остальных строк...
        // Создаем документ "РеализацияТоваровУслуг"
        ДокументРеализации = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
        ДокументРеализации.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(Контрагент);
        ДокументРеализации.Организация = Справочники.Организации.НайтиПоНаименованию(Организация);
        ДокументРеализации.Дата = СтрДата(Дата, Ложь);
        
        // Заполняем табличную часть
        СтрокаТаблицы = ДокументРеализации.Товары.Добавить();
        СтрокаТаблицы.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Товар);
        // Сохраняем документ
        ДокументРеализации.Записать();
    КонецЦикла;
    // Закрываем файл
    ДанныеТекста.Закрыть();
КонецПроцедуры
 | |||
| 14
    
        MaryanaR naïve 17.09.24✎ 11:21 | 
        (13) ой, спасибо большое. Очень помогли.     | |||
| 15
    
        Волшебник 17.09.24✎ 11:59 | 
        (14) Спасибо ChatGPT     | |||
| 16
    
        trad 17.09.24✎ 12:21 | 
        "Если Контрагент = Неопределено Тогда Прервать; КонецЕсли;"
 Это ChatGPT такое написал? | |||
| 17
    
        PLUT гуру 17.09.24✎ 12:25 | 
        (13) всё не читал
 ДанныеТекста = Новый ТекстовФайлЧтения(ФайлТекста); ГПТ новые заклинания умеет выдумывать для 1С? | |||
| 18
    
        rbcvg 17.09.24✎ 13:03 | 
        (17) СтрДата(Дата, Ложь) туда же.     | |||
| 19
    
        Волшебник 17.09.24✎ 13:29 | 
        Это технические дефекты. Сами доработайте программный код. Общая идея и структура понятна же.     | |||
| 20
    
        Elf_80_lvl 17.09.24✎ 14:58 | 
        Что-то не вижу выхода из бесконечного цикла...
 А вижу, всё норм | |||
| 21
    
        trad 18.09.24✎ 15:24 | 
        (20) потому что (16) ))     | |||
| 22
    
        Волшебник 18.09.24✎ 15:45 | 
        (16) да     | |||
| 23
    
        mikecool 18.09.24✎ 20:32 | 
        (15) тут похоже чатгпт учит чатгпт - цикл замкнулся )))     | |||
| 24
    
        Ёпрст гуру 18.09.24✎ 20:38 | 
        Плохо, когда остаток от деления в школе не проходили     | |||
| 25
    
        Гена гуру 18.09.24✎ 20:54 | 
        (24) Остаток от деления на 10 есть просто последняя цифра самого числа. 
 (an*10n + an-1*10n-1 + ... + a1*10 + a0) / 10 = = an*10n-1 + an-1*10n-2 + ... + a1 + a0 / 10 | |||
| 26
    
        Злопчинский 18.09.24✎ 20:45 | 
        (24) в школе вон питон три года проходят на программировании.. взялся тут учить школьницу, сам правда питон в глаза не видел, но задачку решили...
 . был удручен что нет встроенной функции в питоне, которая определяет что строка соответствует записи числа... | |||
| 27
    
        Злопчинский 18.09.24✎ 20:45 | 
        задачка, правда смешная, больше времени ушло читать описание по базе питона...     | |||
| 28
    
        Волшебник 18.09.24✎ 21:23 | 
        (23) В статье на хабре излагается гипотеза, что модель ChatGPT o1 будет генерировать обучающие датасеты для версии GPT-5.
 https://habr.com/ru/companies/ods/articles/843250/ Так что всё идёт по плану. Мы внутри wiki:Технологическая_сингулярность | |||
| 29
    
        Ёпрст гуру 18.09.24✎ 21:27 | 
        (26) синтаксис удручает, но многие вещи делаются очень быстро. Писал торгового робота в своё время для крипты, на заре торговли электронами     | |||
| 30
    
        Guk 18.09.24✎ 21:33 | 
        кстати, если в ChatGPT запульнуть задачку по 1С 7.7, вот тут его конкретно клинит. я пробовал...     | |||
| 31
    
        Волшебник 18.09.24✎ 21:47 | 
        (30) Это к лучшему     | |||
| 32
    
        Злопчинский 19.09.24✎ 01:55 | 
        (29) пока про "срезы" читал - чуть мозг не сломал. вычурно очень работа с подстроками ;-) но может в этом есть какой-то скрытый смысл от меня ;-)     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |