Консультация № 63911
23.11.2006, 19:33
0.00 руб.
0 3 2
Привет экспертам! Опять нужна ваша помощь.Целый вечер ломаю голову как перенести в текстовый файл данные из таблицы, которая формируется при печати. Делаю я это для того, чтобы ускорить печать документов на матричный принтер путем засовывания этого текстового файла сразу в лпт порт. В принципе, у меня это настроено через шаблоны(см.прил), но по многим причинам это ужасно неудобно(длина данных каждый раз меняется и подогнать шаблон порой бывает довольно геморно).Фиксированный шаблон тоже не устраивает. Может кто нить сталкивался с такой задачей? Пробовал переносить методом Таблица.Записать-записывает коряво. Позиция данных в таблице и в файле не совпадают. Пытался получать значение ячейки методом ЗначениеТекущейЯчейки, но так и не допёр как это работает(все время пустое значение возвращало). Вобщем, я в тупике. Выручайте.

Приложение:
Процедура ФормированиеФайлаПечати(ФайлШаблона,ФайлПечати) КолСтрокШ=ФайлШаблона.КоличествоСтрок(); For ind=1 To КолСтрокШ Do СтрШ=ФайлШаблона.ПолучитьСтроку(ind); ФайлПечати.ДобавитьСтроку(СтрШ); EndDo;КонецПроцедуры//**//Процедура Квитанция_D(ИмяФайла) ИмяПути=КаталогИБ()+"Shablons"; If ФС.СуществуетФайл(ИмяПути+ИмяФайла)=1 Then BaseT=СоздатьОбъект("Текст"); BaseШ=СоздатьОбъект("Текст"); BaseT.ФиксШаблон(1); BaseT.КодоваяСтраница(1); BaseШ.КодоваяСтраница(1); Состояние("Формирование файла печати..."); BaseШ.Открыть(ИмяПути+ИмяФайла); ФормированиеФайлаПечати(BaseШ,BaseT,С); BaseT.Записать(ИмяПути+"\tempf.txt"); КомандаСистемы("copy """+ИмяПути+"\tempf.txt"" "+"PRN"); Else DoMessageBox("Файл "+ИмяПути+ИмяФайла+" — не существует!!!"); EndIf;КонецПроцедуры

Обсуждение

Неизвестный
24.11.2006, 00:46
общий
это ответ
Здравствуйте, Endru!

На счет шаблонов -- не скажу.
А вот на счет метода ЗначениеТекущейЯчейки, то нужно использовать
Таб.Область(Стр,Кол).Текст
где Стр -- номер строки таблицы, Кол -- номер колонки.
Для теста попробуйте пример:
Сообщить(Таб.Область(1,1).Текст);
При этом в окно сообщений выведется текст из ячейки на пересечении первой строки и первой колонки таблицы.
Неизвестный
24.11.2006, 11:24
общий
это ответ
Здравствуйте, Endru!
А почему не воспользоваться стандартной процедурой записи таблицы в текстовый файл?

Таб.Записать("Файл.txt",3)
Неизвестный
27.11.2006, 17:37
общий
Странно , что у Вас не работает Таблица.Записать(), т.к. у меня, полученный файл txt успешно считывается Excell. Значит данные были записаны правильно.
Форма ответа