Создание текстового файла в 1С #21739


#0 by p_Dix
плиз, скажите есть ли внешняя компонента для работы с текстовым файлом и методами типа записать_строку, считать_строку примеры не помешают.
#0 by p_Dix
плиз, скажите есть ли внешняя компонента для работы с текстовым файлом и методами типа записать_строку, считать_строку примеры не помешают.
#1 by Ёжик в тумане
А через Камчатку не пробовали?
#2 by Ёжик в тумане
+1 Читайте Синтакс-Помощник и с головой будет всё в порядке (с) почти реклама
#3 by Де Лопа де Вега
А встроенные методы не помогают?
#4 by p_Dix
это типа метода Текст
#5 by p_Dix
этим методом нельзя создать текстовый файл
#6 by Ёжик в тумане
Ну да. А я - мягкий и пушистый.
#7 by p_Dix
а что-нибудь по сути можете сказать...
#8 by Дурочка 1С
Жми Ctrl-F1 набирай "Текст" и все твое - бери и пользуйся.
#9 by Дурочка 1С
#10 by romix
Работать с текстовыми файлами встроенными средствами 1С опасно. Во-первых, жрет память по размеру текстового файла (в лучшем случае), а во-вторых, встроенные функции для работы с файлами не контролируют ошибок и не выдают исключений или кодов ошибок. В 8.0 это исправлено. В этом смысле, в 7.7 для последовательного чтения и записи текстовых файлов более правильно использовать системный объект Scripting.FileSystemObject
#11 by 427
Полный фздц.... Теперь уже протоколы работы с текстовыми файлами - опасные... Я валяюсь в ужасе... А текстовые файлы переноса по 20-30 мб пишутся... Ю. точно выиграет, если такие поучения выдавать на майдане...
#12 by romix
опасные - когда ошибка не контролируется (например, нет дискеты или неправильно указан путь - а 1С показывает, что все как бы ок), и когда жрет память по размеру файла переноса (если не в разы больше). То же самое - с XML.
#13 by 427
а доку пробовал читать? и советы с ИТС? или только по арабски читаешь?
#14 by 427
нет дискеты... А регламентную отчетность смотрел? она даже умеет говорить - в ставьте дискету... если ее нет... а еще классно посылает... если нет дороги
#15 by romix
(13,14) Они бы сами что-нибудь почитали для начала. Меня вполне устраивает Scripting.FileSystemObject, ибо работает хорошо и безглючно, и имеет больше возможностей.
#16 by 427
Хорошая штука... Вот только налететь можно.. У клиента...
#17 by romix
Можно. Если IE не обновить. Какие-то функции WSH не работают... Кажется, что-то связанное с имитацией нажатия на клавиши и с методом Activate. Но работа с файловой системой работает вроде бы везде. Также в 98 WSH может не стоять - Установка и Удаление программ.
#18 by 427
Похоже, что стиль ромикса - это внедрение зависимостей 1С от кучи не являющегося стандартным софта и как следствие - привязка клиента к себе...
#19 by pauls
Не перди...
#20 by Дятел
тук-тук-тук!
#21 by pauls
Спой соловушка....
#22 by death3d
Работаю с текстом уже довольно долго, и в файл, и из файла, и создать, и стереть(КомандаСистемы), и ИзСтрокиСРазделителями, и ВСтрокуСРазделителями, НайтиСледующийФайл, и многое другое. Проблем никаких...
#23 by death3d
А создать файл = Текст.Записать(ИмяПути + ИмяФайла). Работает на 100% Если файла нет, он его создает...
#24 by Ёжик в тумане
Найти на пустом месте проблему - тоже надо умудриться. У некоторых поразительный талант по этой части..
#25 by romix
Не понял - кого и к чему я привязываю. Исходники моих внешних компонент в открытом доступе лежат (интересно, кто еще так делает?). А компоненты автоматизации Windows трудно назвать нестандартным софтом. Проблема с текстовыми файлами все-таки есть. Вот в v7plus.dll даже добавили (специально для ёжиков) функции построчного чтения-записи текстовичков.
#26 by Де Лопа де Вега
Лучше, чем крутит текстовыми файлами Dolter, я пока не видел!
#27 by Ёжик в тумане
Ёжики без всяких проблем пользуются встроенными .ПолучитьСтроку(...) .ДобавитьСтроку(...)
#28 by romix
На больших файлах ничего не тормозит? А как насчет разобрать таким способом MLG, при том, что нужен только конец журнала (за текущую дату)?
#29 by romix
Короче, для ведения или чтения журналов, и переноса данных (а зачем еще нужны текстовички?) этот способ не подходит.
#30 by pauls
Пускай ёж откроет файл в 900 000 строк встроенными методами...
#31 by Ёжик в тумане
Ну твою налево в хреножопову мать! Текст.ПолучитьСтроку(Текст.КоличествоСтрок) - возвращает последнюю строку файла Текст.ПолучитьСтроку(Текст.КоличествоСтрок-1) - возвращает предпоследнюю строку файла и т.д.
#32 by Ёжик в тумане
Ещё и не такие кучи дерьма открывал.
#33 by romix
Щазз. Сначала 1с-ка тебе весь файл прочитает и в память (ОЗУ)положит. Только потом будет эти методы юзать.
#34 by pauls
И скока он в памяти весить будет? Сумлительно....
#35 by Asmody
ну что вы паритесь? да, встроенный Текст закачивает весь файл в память. но если 2 гига оперативки - то это не страшно. на крайняк есть v7text
#36 by romix
И как, головки у винта не открутились со свопом работать?
#37 by romix
Все равно дурной стиль. Насчет v7plus согласен.
#38 by Ёжик в тумане
, кукиши вам! Это не DBF, чтобы его весь в память загонять.
#39 by Asmody
"Текст" загоняет.
#40 by pauls
Как интересно...
#41 by romix
Блин, сгенери большой текстовичок объектом Текст... И увидешь, много ли секунд проработает 1С, пока все не упадет...
#42 by Ёжик в тумане
Если бы так всё и было - всё бы вешалось моментально. Что-то такого не наблюдалось..
#43 by Ёжик в тумане
Запись больших файлов - не самая быстрая - факт. А с чтением no problem.
#44 by romix
Ну ты опыт проведи? Он сын ошибок трудных...
#45 by Ёжик в тумане
Я вообще-то подозреваю, откуда сложилось такое заблуждение. Да, 1С ПРИ ОТКРЫТИИ файлов резервирует для этого память. Но не держит её. Реально проблемы могут только при открытии файлов более 100 Мб.
#46 by pauls
1С держит все что только можно :)
#47 by romix
Держит (не освобождает) до уничтожения переменной.
#48 by Ёжик в тумане
Доказульки в студию! Физдеть о вреде 1С сколько угодно можно, только иногда на зеркало неча пинять...
#49 by Ёжик в тумане
И тебе тоже - доказульки в студию!
#50 by romix
Текст обработки из 3 строк, которая подвесит твой комп? Щас напишу...
#51 by romix
->
#52 by Ёжик в тумане
cli hlt - не предлагать.
#54 by Ёжик в тумане
И чё?
#55 by romix
Да ниче - попробуй запусти, и подожди, на сколько там у тебя ОЗУ хватит...
#56 by pauls
Не знаю доказулька ли это... Но реальная проблема... Генерится большое кол-во элементов справочника за один присест. Несколько десятков тысяч. Это все делается в цикле с транзакциями . Т.е. открыть тразакцию записать 200 элементов, закрыть транзакцию, открыть новую еще 200 и т.д. В течение первой тысячи элементов происходит резкое снижение скорости записи. Размер базы весьма не велик, но память жрется + загрузка проца весьма большая... С алгоритмом все нормально транзакции открываются и закрываются, т.е. нет сваливание всего в одну, но ресурсы не высвобождаются...
#57 by Ёжик в тумане
И какой смысл крутить бесконечный цикл?
#58 by Ёжик в тумане
Хе, друг, мы тут о работе с объектом "Текст" говорим. Разницу улавливаешь?
#59 by pauls
Да улавливаю, но "Текст" - это фигня на самом деле, а вот на никто ничего вразумительного сказать не может...
#60 by Ёжик в тумане
Да тут куча причин может быть, начиная с того, что просто справочник растёт (т.е. запись 1-й тысячи элементов будет куда быстрее, чем запись 25-й тысячи), и заканчивая тем, что на 2-й тысяче справочник попадает в фрагментированную зону диска.
#61 by romix
Долго ждать - лучше такой пример (строчка=1 мег). В конце правда, 1С корректно пишет, что Out of memory и не падает.
#62 by Ёжик в тумане
+61 Можешь то же самое проделать, но не с созданием новых элементов, а с записью уже существующих. 100% - динамика затрат времени будет иной.
#63 by Ёжик в тумане
=
#64 by romix
Может, объект надо обнулять каждый раз? Т.е. СоздатьОбъект внутри цикла каждые 200 элементов.
#65 by Ёжик в тумане
А нафига у тебя строка //******************************************* ?
#66 by romix
У меня все нормально было - я делал загрузку элементов из сторонней базы. Достаточно большой. Нелинейного падения производительности у меня не было.
#67 by Ёжик в тумане
Опять же - к чему это всё?
#68 by romix
Как говорит Волшебник, стиль.
#69 by Дурочка 1С
У тебя в справочнике либо длинное наименование либо индексируемое текстовое поле неограниченной длины. Вот она тебе и индексирует базу все медленнее и медленнее.
#70 by romix
Доказательство, что память не освобождается сама по себе, а жрется.
#71 by pauls
Смысл может пояснить? Я вроде наоборот старался СоздатьОбъект выносить из цикла...
#71 by Ёжик в тумане
Ну, если у тебя элементом стиля является наличие мусора в модулях, то неудивительно, что у тебя такие проблемы с производительностью.
#73 by romix
Длинное наименование просто в N раз увеличивает объем перелопачиваемых данных. Нелинейного роста здесь нет. Строки неограниченной длины хранятся кусками по 80 символов. Ну, подумаешь, к каждому элементу прикрепится 1-2-3 таких кусочка. Тоже нелинейного роста вроде нету.
#74 by Ёжик в тумане
Это не доказательство, а форменное БСК. В этом куске даже нет попытки открыть файл!
#75 by romix
Мусор убирается при компиляции в байт-код. Ты этого не знал?
#76 by romix
->Ёжику.
#77 by bazvan
Даааааааааа ИдиЁ-оты ИТС читайте там все есть для танкистов
#78 by pauls
Наименование длиной 100. Индексируемых полей нет... Ясно что 25000-ый элемент будет загружаться медленнее, но почему основное падение происходит на 1-вой тысяче? Потом скорость "выравнивается"...
#79 by romix
Сокращение не понял. Объект Текст не нуждается в файле для своего существования и пожирания ОЗУ.
#80 by pauls
Не перди...
#81 by Дурочка 1С
Источник проблеммы скорее всего в этом.
#82 by pauls
Откуда такая уверенность?
#83 by romix
Объект обнуляй. Кстати, можно хоть сейчас эксперимент провести.
#84 by Ёжик в тумане
А скажи-ка, знаток компиляции, отчего тогда на замерах производительности на заремаренные строки проценты уходят?
#85 by Дурочка 1С
Я ж говорю наименование длинное. pauls известный лох.
#86 by romix
У ёжиков может и уходят...
#87 by Ёжик в тумане
У тебя склероз? Докажи своё .
#88 by Ёжик в тумане
У всех уходят. Незнание законов не освобождает от ответственности (с)
#89 by romix
Я написал что смог. Теперь твоя очередь доказать противное.
#90 by romix
Щас проверю...
#91 by bazvan
Почитайте описание в7плюс ДЛЛ там для баранов написано. И в обработках 1С увидите что изменены подходы к чтению ТХТ файла И по этому Ехспорт Импорт ЕРТ не куа не работает так как ее под ДЛЛ не переписывали Запали уже неудачники которые орут о переполнении памяти Нах Пох Другое Подчеркните нужное
#92 by Ёжик в тумане
Ты нифига не написал. Кроме бесконечного цикла. Если это и в самом деле всё, что ты можешь, то иди-ка ты, в самом деле ИТС читать - всё больше пользы, чем пердеть впустую.
#93 by romix
Уже писали про v7plus выше. Да, она подходит. Вопрос в другом.
#94 by bazvan
Пля ну че самому лесть и вам тут код привести??? Или сами  найдете????
#95 by 427
паулс - придурок. Дурочка1С права... а ты еще сомневался...
#95 by bazvan
В каком другом??? 7плюсь изменила способ чтения и записи. А ты купил ораньжевую ёлку?(с) Тот Если нет иди почитай свои сообщения умный ты наш
#97 by Ёжик в тумане
Нда :(
#98 by romix
Ну смоги ты напиши. Кстати, 1С у меня зависла после этого цикла. Снимал по Ctrl-Alt-Del.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С