Имя: Пароль:
1C
 
Работа с файлами. Сортировка.
0 el-gamberro
 
23.08.06
10:27
Здравствуйте уважаемые форумчане.
У меня возник вопрос по поводу работы 1С с файлами. Точнее хотелось бы узнать можно средствами внутренненго языка провести сортировку текстовых файлов. Параметром сортировки является одна из строк этих файлов. Конкретнее дата.

Вообщем обрисовываю ситауцию. У компании есть заказчик. Заказчик присылает заказы в эл. виде. В виде текстовых файлов. Файл обрабатывается и переноситься в 1С созданием нужного документа (это я уже сделал).
Но есть один минус, заказы приходят одним массивом сразу на три дня. Обрабатывать их все подряд сразу нельзя, так как должна сохраняться правильная последовательность нумерации документов (т.е. не должно быть чтобы документ на другой день имел номер меньший, чем документ на текущий). По имени файлов заказов осуществить сортировку никак нельзя, ибо имена беспорядочны.
Сейчас ситуация такова, что приходяться сортировать все вручную. И потом уже по дням делать обработку. Хотелось бы сделать все так чтобы 1с обработка сама рассортировывала файлы и обрабатывала. Но в методах работы с файлами ничего подобного так и не нашел. Похожие фунции либо возращают имя файла строкой, либо открывают диалог для выбора.
Я думаю все это осуществимо, но пока с трудом разбираюсь в нужном направлении. Если кто подскажет куда и как лучше копать буду очень благодарен.
1 Jenya
 
23.08.06
10:29
Юзай методы работы с текстом
2 Конь в пальто
 
23.08.06
10:31
а время создания файла не покатит?
3 ASV
 
23.08.06
10:32
фс.найтипервыйфайл

нач цикла
тз.новаястрока()
тз.имяфайла=фс.имяфайла
текст.открыть(фс.имяфайла)
тз.дата=текст.получитьстроку()
фс.найтиследующий
кон цикла

тз.сортировать()
4 el-gamberro
 
23.08.06
10:33
(1) Юзаю. Вопрос как правильно похватить файл.
       
Результат = ФС.НайтиСледующийФайл();
ТекстДок = СоздатьОбъект("Текст");
ТекстДок.Открыть(Результат);

Пишет неверное имя файла. Видимо как-то надо указать еще каталог?!

(2) Нет. Время у всех одно.
(3) Попробую разобраться. :)
5 el-gamberro
 
23.08.06
10:35
(3) Как раз такой путь и думаю.
6 ASV
 
23.08.06
10:36
(4)фс.текущийкаталог+результат
7 el-gamberro
 
23.08.06
10:36
6 Это в строке ТекстДок.Открыть?! Буду пробывать
8 Jenya
 
23.08.06
10:39
ИмяФ = "";
ИмяК ="Твое имя каталога"
ФС.ВыбратьФайл(0, ИмяФ, ИмяК, "Выберите файл:", "Файлы Excel (*.xls)|*.xls");
Выбирается файл по расширению
9 el-gamberro
 
23.08.06
18:00
(8) Хм... Ведь в этом случае открывается диалог для выбора файла. ИМХо утомительно так все сортировать.
10 Garykom
 
гуру
23.08.06
20:38
Чтобы что то искало по имени (ФС.НайтиПервыйФайл(),ФС.НайтиСледующийФайл()), сначала установи текущий каталог (ФС.УстТекКаталог()), т.к. 1С ищет только в нем. А открывай файл по полному пути.
11 baer
 
23.08.06
23:42
Если
Параметром сортировки является одна из строк этих файлов. Конкретнее дата.

И

По имени файлов заказов осуществить сортировку никак нельзя, ибо имена беспорядочны.

То
Проще всего пройтись по каталогу где эти файлы лежат, и переименовать их в соответствии с необходимой строкой, а потом уже иметь упорядоченный список...
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн