При работе с регламентированными отчетами в 1С 7.7. Бухгалтерия, если база находится не на локальном диске, т.е не в каталоге wine_c, а смонтирована куда-либо по сети (cifs) - то невозможно открыть бланки внешних отчетов. 1С пишет, что невозможно получить доступ к файлу с отчетом (этот файл, она сама создает в момент формирования отчета). В 1С есть папка с формами отчетов, типа Rp07q4.grp - там лежит куча файлов *.ert. В процессе формирования отчетов (например, форма №1 бухгалтерского баланса) создается папка с числовым именем. Например, ExtForms\100745344.123. Там хранятся промежуточные сохраненные варианты отчетов. Что-то типа кэша регламентированной отчетности 1с. В частности, когда ты просишь 1С показать данный бланк баланса (кнопка "печать - показать бланк"), она формирует в этом каталоге файл FRM1.mxl - содержащий в себе табличку с формой баланса, заполненную данными, согласно учета. Вот этот файл, и ему подобные, 1С и не может создать, ругаясь на то, что нет возможности получить доступ к файлу FRM1.mxl. Если папка с БД расположена в wine_c (не смонтирована туда, а физически расположена в дом. каталоге пользователя на локальном диске) - все нормально. Полагаю, что проблема связана с тем, как монтируется удаленный ресурс или каким образом к нему предоставляется доступ в smb.conf. Я его монтирую через fstab следующей командой: 192.168.0.1:path/to/resource /mnt/resource rw,gid=100,uid=501,dir_mode=0777,file_mode=0666,credentials=/root/passwd.txt 0 0 После чего делается символическая ссылка, например: ln -s /mnt/resource /home/user/wine_c/1C_bases UID локального пользователя и удаленного на сервере идентичны. Оба пользователя и локально и на сервере входят в группу users (GID 100).
может элементарно что-то с правами на запись в папке отчетности не так?
В том-то и дело, что права идентичны тем, что используются на локальной машине. Скорее всего что-то не так в процессе монтирования FS по протоколу CIFS. В своем посте я писал строчку монтирования. Какие в ней могут быть неполадки? С точки зрения документации Этерсофт - только одно, рекомендуется использовать dir_mode=2777, я использую 0777. Однако, как минимум на SUSE 10.3 при попытке использовать 2777 выдается ошибка - некорретно заданного параметра прав на каталоги. Может быть в этом проблема? Все остальное сделано строго по инструкции. Более того, я пробовал отключать вообще все праверки прав доступа (noperm, nosuids, etc. см. man mount.cifs) - результат тот же. :-( Может ли это быть связано с Samba? На днях попробую поставить windows-машину и сделать базу на ней, а с линукс-машины сформировать отчет. Если это сработает - мы сможем исключить wine@etersoft. Ваши предположения?
> ln -s /mnt/resource /home/user/wine_c/1C_bases здесь ошибка. сетевой диск в вайне должен быть представлен отдельным диском ln -s /mnt/resource /home/user/.wine/dosdevices/z:
А, потому что по ссылкам wine не ходит?
Надо воспроизвести у нас, потому что проблема до сих пор есть.
Дима, приложи сюда файл ~/.wine/wine.log, который получится после запуска $ WINEDEBUG=+file winelog 1cv7.exe (конечно, выполнив действие, которое приводит к ошибке)
Created attachment 460 [details] Файл wine.log демонстрирующий ошибку Прикладываю файл wine.log Проблема замечена с отчетами: Бух.баланс, НДС, отчет по прибыли. Возможно и с другими, эти точно проверял. При этом НДС ругается на невозможность доступа к файлу но сам бланк отображает. Баланс не отображает, поэтому имеет смысл тестировать на нем.
Надо воспроизвести. Пока у меня получается, что файл создаётся trace:file:CreateFileW L"D:\\1С_Данные\\1кв и апрель\\ExtForms\\05361228.78\\0501001.78\\FRM1.mxl" FILE_SHARE_READ FILE_S HARE_WRITE FILE_SHARE_DELETE creation 3 attributes 0x2000000 а потом его не получается открыть: trace:file:CreateFileW L"D:\\1С_Данные\\1кв и апрель\\ExtForms\\05361228.78\\0501001.78\\FRM1.mxl" GENERIC_READ FILE_SHAR E_READ creation 3 attributes 0x80 warn:file:CreateFileW Unable to create file L"D:\\1С_Данные\\1кв и апрель\\ExtForms\\05361228.78\\0501001.78\\FRM1.mxl" ( status c0000034) Возможно что-то с временами, сервер не успевает отреагировать? Можно проверить установкой задержки для открытия файла или проверкой, есть ли файл в тот момент, когда выдано сообщение об его ошибке.
Если проблема воспроизводится, будет писать тест, повторяющий проблему.
Нужно воспроизвести проблему в бутылке.
(In reply to comment #8) > а потом его не получается открыть: > trace:file:CreateFileW L"D:\\1С_Данные\\1кв и > апрель\\ExtForms\\05361228.78\\0501001.78\\FRM1.mxl" GENERIC_READ > FILE_SHAR > E_READ creation 3 attributes 0x80 > > warn:file:CreateFileW Unable to create file L"D:\\1С_Данные\\1кв и > апрель\\ExtForms\\05361228.78\\0501001.78\\FRM1.mxl" ( > status c0000034) etercifs-3.5-alt0.M40.1 + wine-1.0.9 (от 22 октября) Сделал в бутылке 1c7727-night База BUH-win-test-cifs Проблемы не увидел. trace:file:CreateFileW L"G:\\1SBDemo\\ExtForms\\01028561.77\\FRM2.mxl" GENERIC_READ FILE_SHARE_READ creation 3 attributes 0x80 trace:file:RtlDosPathNameToNtPathName_U (L"G:\\1SBDemo\\ExtForms\\01028561.77\\FRM2.mxl",0x32e39c,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"G:\\1SBDemo\\ExtForms\\01028561.77\\FRM2.mxl" 520 0x32e0f0 (nil)) trace:file:wine_nt_to_unix_file_name L"\\??\\G:\\1SBDemo\\ExtForms\\01028561.77\\FRM2.mxl" -> "/net/wine/.wine-1c7727-night/dosdevices/g:/1SBDemo/ExtForms/01028561.77/FRM2.mxl" trace:file:CreateFileW returning 0x81c trace:file:GetFileAttributesW L"G:\\1SBDemo\\ExtForms\\01028561.77\\FRM2.mxl" trace:file:RtlDosPathNameToNtPathName_U (L"G:\\1SBDemo\\ExtForms\\01028561.77\\FRM2.mxl",0x32e51c,(nil),(nil)) trace:file:RtlGetFullPathName_U (L"G:\\1SBDemo\\ExtForms\\01028561.77\\FRM2.mxl" 520 0x32e290 (nil)) trace:file:wine_nt_to_unix_file_name L"\\??\\G:\\1SBDemo\\ExtForms\\01028561.77\\FRM2.mxl" -> "/net/wine/.wine-1c7727-night/dosdevices/g:/1SBDemo/ExtForms/01028561.77/FRM2.mxl"
База на win-test На WINEDEBUG=warn+file ничего не было
Пока не можем воспроизвести.