Bug 733

Summary: Проблема с атрибутами файла
Product: WINE@Etersoft Reporter: Синицын Иван <ivan>
Component: Файловые операцииAssignee: Boris Savelev <boris>
Status: CLOSED WONTFIX QA Contact:
Severity: major    
Priority: P5 CC: baraka, lav
Version: 1.0.7   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 584    
Attachments: Внешняя обработка.

Description Синицын Иван 2007-09-03 16:21:32 MSD
Created attachment 169 [details]
Внешняя обработка.

Процедура АтрибутыФайла(<ИмяФайла>,<РазмерФайла>,<АтрибутыФайла>, <ВремяСоздания>,<ВремяПоследнегоДоступа>,<ВремяПоследнейЗаписи>,<РасширенноеИмяФайла>)
 
 Из под Windows возвращает - 
 |1091279|000010000|2006.02.26 22:10:44|2007.08.24 07:51:32
 Из под Линукс -
 |1091279|000010000|2007.08.24 07:51:32|2007.08.24 07:51:32
 
 т.е. из под Линукс время создания файла = времени последнего доступа

В приложении внешняя обработка для 1с77, которая по имени файла выводит его атрибуты.

Проблема наблюдается и в самом linux - при изменении файла, меняется и дата создания.
Comment 1 Boris Savelev 2007-09-24 12:00:37 MSD
> Проблема наблюдается и в самом linux - при
> изменении файла, меняется и дата создания.
> 
Действительно так. Можно даже в МС проверить
Comment 2 Vitaly Lipatov 2007-10-14 21:22:39 MSD
Боря, убедительная просьба подробно изложить результат исследования
по данной проблеме здесь, и багу закрыть.
Comment 3 Boris Savelev 2007-10-19 10:36:27 MSD
в линуксе нет понятия время создания. есть:
Время последнего доступа
Время последней модификации аттрибутов
Время последнего изменения данных
Comment 4 Vitaly Lipatov 2007-10-20 15:34:39 MSD
Поскольку в Linux не хранится дата создания, реализовать в WINE этот атрибут невозможно.
Если Ваня помнит, от кого бага, то может быть стоит узнать, какие проблемы это вызывает.
Comment 5 Синицын Иван 2007-10-23 11:58:43 MSD
Написал письмо, ждем ответа.
Comment 6 Синицын Иван 2007-10-25 09:24:37 MSD
Вот ответ о возникающих на основе этой баги ошибках:

Ошибка возникает при условии:
1. Любая конфигурация в которой обмен между базами организован с использованием МОБ (фирмы ПБ).
2. Осуществляется одновременная работа клиентами Windows и Linux 
3. Включен режим обновления правил обмена после изменения конфигурации (установка по умолчанию).

Там выполняется вот такой код (в глобальном Модуле Процедура ПроверкаПравилОбмена() )

А0="";А1="";А2="";А3="";А4=""; 
ФайлИсточникDD=КаталогБазыДанных()+"1cv7.dd";
Если ФС.СуществуетФайл(ФайлИсточникDD)=0 Тогда
ФайлИсточникDD=КаталогБазыДанных()+"1cv7.dds";
КонецЕсли; 
Фс.АтрибутыФайла(ФайлИсточникDD,А0,А1,А2,А3,А4);
Версия=Сокрлп(""+Сокрлп(А0)+Сокрлп(А1)+Сокрлп(А2)+Сокрлп(А4));
СтараяВерсия=Сокрлп(Константа.ВерсияМДФайла);
Если Версия<>СтараяВерсия Тогда
Обновляем правила и правим Константу - Константа.ВерсияМДФайла

В результате при входе из Linux после входа из Windows - пересчитываем правила (у меня занимает минут 20)
и наоборот при входе из Windows после входа из Linux - опять пересчитываем

Для исправления я просто не стал смотреть на время создания файла
Версия=Сокрлп(""+Сокрлп(А0)+Сокрлп(А1)+Сокрлп(А4));