21.07.2019, 06:23 [+3 UTC]
в нашей команде: 3 751 чел. | участники онлайн: 1 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.77 (31.05.2019)
JS-v.1.34 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
18.07.2019, 12:26

Последний вопрос:
20.07.2019, 17:15
Всего: 149945

Последний ответ:
20.07.2019, 16:43
Всего: 258714

Последняя рассылка:
21.07.2019, 01:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
16.12.2010, 01:37 »
Савенков Михаил
Спасибо за быстрый ответ! [вопрос № 181369, ответ № 264797]
17.04.2016, 22:29 »
andruxa2112
Спасибо большое. Там больше ничего не нужно вставлять? [вопрос № 189197, ответ № 273685]
22.11.2010, 20:11 »
Иванов Михаил Сергеевич
Большое спасибо за помощь!!! [вопрос № 180886, ответ № 264254]

РАЗДЕЛ [неизвестная рассылка]

[администратор рассылки: [неизвестный]]

Лучшие эксперты в этом разделе


Перейти к консультации №:
 

Консультация онлайн # 143351
Раздел: [неизвестная рассылка]
Автор вопроса: Шахрайчук Владимир Анатольевич
Отправлена: 08.09.2008, 14:52
Поступило ответов: 2

Помогите, пожалуйста отредактировать файл в 1С 7.7.
Вопрос задаю в эту рассылку абсолютно правильно. Код будет выполняться в программе
1С Бухгалтерия 7.7, но сам код очень похожий на С++, прошу Вас подсказать.
Есть файл бинарный произвольной структуры (я ее знаю). Необходимо произвести побайтовое чтение файла, затем побайтовую запись файла.
Реальная задача: после архивирования (обрезания) базы за 2000 - 2003 год файл 1cv7.mlg все еще содержит данные об объектах, использовавшихся в 2000 году, и все еще содержит сведения о действиях пользователей за 2000-2003 год. Таким образом, он имеет слишком большой размер (свыше 50 Мб), затрудняя анализ журнала регистрации, и затрудняя резервное копирование. Его нужно обрезать. Можно удалить его совсем, система создаст новый, но данные за 2004-2008 год будут потеряны. Я хочу его прочесть в побайтовом режиме, и обрезать.
Все это можно сделать средствами Windows, она достаточно мощная и разнообразная.
Приведу начало кода. Помогите пожалуйста, его продолжить. Нужы комманды для побайтового чтения любого бинарного файла, и побайтовой записи любого файла.
Var FileToedit;
FileToEdit=CreateObject("Windows.Filesystem... Вот в этом месте вместо Windows.Filesystem
можно написать Exel.Application, например, а как зовется объект для работы с файлами, я не знаю. Но точно знаю, что в стандартной поставке Windows XP SP2 он есть.
Var filelength;
filelength=FileToEdit.МетодПодскажите
FileToEdit.Seek(0);
Var FirstByte;
FirstByte=FileToEdit.МетодПодскажите
ByteToWrite=123;
FileToEdit.МетодПодскажите(ByteToWrite)
FileToEdit.Close();
Ненадежные утилиты внешних разработчиков прошу не предлагать. Все я буду делать средствами Windows.

Последнее редактирование 08.09.2008, 15:48 [неизвестный]

Состояние: Консультация закрыта

Ответ # 228797 от Black Monk

Здравствуйте, Шахрайчук Владимир Анатольевич!
Вы вполне можете использовать для этого штатные средства 1С.
При запуске 1с выберите Монитор (Монитор пользователей).
Потом в Меню Монитор\Архивирование Журнала
Здесь вы можете заархивирувать и удалить из текущего журнала данные за любой предыдущий период работы


Консультировал: Black Monk
Дата отправки: 08.09.2008, 16:09

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 228798 от Airyashov

Вообще-то, журнал регистрации это текстовый файл, если не запаролен. Так что можно воспользоваться объектом текст (только медленно очень) или V7TextFile из V7plus.Dll
А лучше, если знаете C++ пользоваться им, просто не понимаю зачем именно на 1С заморачиваться, или скрип на VB написать.


Консультировал: Airyashov
Дата отправки: 08.09.2008, 16:15

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 143351
Vovchai

# 1

= общий = | 08.09.2008, 16:37

А зачем городить огород на сиподобном языке, когда достаточно все выполнить простой обработкой на встроенном языке 1С и пишется за 15 минут максимум. Вот пример, написан "на коленке" за ~5 минут

СтрокаПоиска = Формат(ДатаОбрезки,"ДГГГГММДД")+";"; //ДатаОбрезки - реквизит на форме, тип дата

ФайлЖР = КаталогИБ()+"\Syslog\1cv7.m_g";

ФС.КопироватьФайл(КаталогИБ()+"\Syslog\1cv7.mlg",ФайлЖР,0); // создаем копию ЖР, с ней и работаем

ЖР = СоздатьОбъект("Текст");
ЖР.Открыть(ФайлЖР);
Количество = ЖР.КоличествоСтрок();

Для Сч=1 По Количество Цикл
СтрокаЖР = ЖР.ПолучитьСтроку(Сч);
Если Найти(СтрокаЖР,СтрокаПоиска)>0 Тогда //ищем строку с нужной датой
Прервать; // нашли, стоп
КонецЕсли;
КонецЦикла;

ЖР1 = СоздатьОбъект("Текст"); //создаем новый файл ЖР

Для Сч1=Сч По Количество Цикл
ЖР1.ДобавитьСтроку(ЖР.ПолучитьСтроку(Сч1)); // копируем построчно туда из исходного ЖР
КонецЦикла;
ЖР1.Записать(ФайлЖР); // заменяем файл 1cv7.m_g
// и уже ручками меняем расширение у 1cv7.m_g и заменяем файл 1cv7.mlg


Dmitry Stashenko

# 2

= общий = | 08.09.2008, 16:55

Доброго времени суток вам, Владимир. Все таки напишу по вопросу, хотя может и правда хватит предложенных вариантов. Объект Windows Script Host для работы с файлами называется Scripting.FileSystemObject. Очень хорошее описание находится тут. Приведенные по ссылке примеры достаточно просто доточить под 1С, если возникнут сложности, пишите.

Шахрайчук Владимир Анатольевич

# 3

= общий = | 08.09.2008, 18:54

Дмитрий Сташенко - точно в яблочко.
Black Monk - отлично. Не буду изобретать велосипед, попробую этим.
Честно говоря, я этот пункт меню искал в конфигураторе, а в мониторе поискать не догадался. А ведь столько баз уже обрезал...
Scripting.FileSystemObject прекрасно поможет мне с любыми файлами.

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.17865 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.77 от 31.05.2019
Версия JS: 1.34 | Версия CSS: 3.35