В общем как я сделал чтоб сэкономить время, завел ТЗ с колонками соответствующими в ДБФ
БДТ = Новый ТаблицаЗначений;
Табл.БДТ.Добавить("CODEPST");
Табл.БДТ.Добавить("NAME");
Табл.БДТ.Добавить("CNTR");
Табл.БДТ.Добавить("GDATE");
Пока Выборка.Следующий() Цикл
БД = БДТ.Добавить();
БД.CODEPST = СокрЛП(Выборка.Номенклатура.Код);
Наим = СокрЛП(Выборка.Номенклатура.НаименованиеПолное);
Если ПустаяСтрока(Наим)=Истина Тогда
Показать
Сэкономил время, не пришлось переписывать процедуру заполения.
Далее на форме сделал такую же тз с такими же переменными(все неопределенного типа, чтоб не копаться)
после заполнения ТЗ на сервере делаю:
Объект.Реквизит1.Загрузить(БДТ);
и далее на клиенте создаю свою ДБФ из табл. все заработало.
(20)если я не ошибаюсь, в линуксе же ж - отдельно права на запись и отдельно права на исполнение файла, нет?
Это так же как с FTP: если дать права на запись - это совсем не означает, что ты сможешь свой же файл прочитать :)
(4)
да делаю. У меня такое подозрение что права "задушены" на сервере. Похоже буду сейчас делать через ТЗ.
хотя при записи dbf ошибок не выдает.
тупо пишет dbf на своей волне где то в своем непонятном месте.
(1)на сервере 1с случаем темповая папка не чистится периодически? Судя по слэшам в пути - сервер 1с на линуксе? Если да, то темповая папка вообще чего-нить содержит? а то там по факту может оказаться symlink на /dev/nul :)
возвращает длину более 8 символов, с ним dbf уже не может работать. поэтому я назначаю принудительно свое.
НашеИмяФайла= "PriceP.dbf";
НашПолныйПутьФайла = КаталогВременныхФайлов()+НашеИмяФайла;
ФайлНаДиске = Новый Файл(НашПолныйПутьФайла);
Если ФайлНаДиске.Существует() Тогда
УдалитьФайлы(НашПолныйПутьФайла);
КонецЕсли;
(6) зачем мне сетевая папка?
мне нужно чтоб обработка работала везде а не в каком то конкретном месте.
поэтому нужно либо через ТЗ либо через передачу временного файла.
ТЗ не передается.
временный файл не могу найти для передачи в хранилище
(15) эээ.....а права у пользователя, под которым работает демон 1С, имеет права на чтение содержимого темповой папки? права на запуск из темповой папки?
(19) с правами все очень непонятно, но при записи дбф, ругани нет.
если указываешь папку где конкретно нет прав, то создание дбф выводится с ошибкой.
осмелюсь предположить что создание дбф проходит как надо.
(20)если я не ошибаюсь, в линуксе же ж - отдельно права на запись и отдельно права на исполнение файла, нет?
Это так же как с FTP: если дать права на запись - это совсем не означает, что ты сможешь свой же файл прочитать :)
Хотелось чтоб бы чик мык пык жик, пару строк кода и модуль, который работал на файловой версии взлетел на клиенте.
(22) сейчас я попробую прочитать обратно записанный dbf ради интереса
{ВнешняяОбработка.ВыгрузкаВDBF.Форма.Форма.Форма(340)}: Ошибка при вызове метода контекста (Первая)
БДФ.Первая(); // перешли к первой записи
по причине:
Перед выполнением операции нужно открыть базу
БД.ЗакрытьФайл();
БДФ= Новый XBase;
БДФ.ОткрытьФайл(ВремФайл,,Истина);
БДФ.Первая(); // перешли к первой записи
Пока Не БДФ.ВКонце() Цикл
Сообщить(БДФ.NAME);
БДФ.Следующая();
КонецЦикла;
ээээ.....на форме сделайте реквизит с типом "ТаблицаЗначений", напихайте в нее нужные колонки и загружайте сразу весь результат запроса.
Если задача именно сделать DBF, то на клиенте его, однако, не создать от слова совсем.
Т.е. у вас выбора нет, кроме как просить админов настроить правильно доступ.
В общем как я сделал чтоб сэкономить время, завел ТЗ с колонками соответствующими в ДБФ
БДТ = Новый ТаблицаЗначений;
Табл.БДТ.Добавить("CODEPST");
Табл.БДТ.Добавить("NAME");
Табл.БДТ.Добавить("CNTR");
Табл.БДТ.Добавить("GDATE");
Пока Выборка.Следующий() Цикл
БД = БДТ.Добавить();
БД.CODEPST = СокрЛП(Выборка.Номенклатура.Код);
Наим = СокрЛП(Выборка.Номенклатура.НаименованиеПолное);
Если ПустаяСтрока(Наим)=Истина Тогда
Показать
Сэкономил время, не пришлось переписывать процедуру заполения.
Далее на форме сделал такую же тз с такими же переменными(все неопределенного типа, чтоб не копаться)
после заполнения ТЗ на сервере делаю:
Объект.Реквизит1.Загрузить(БДТ);
и далее на клиенте создаю свою ДБФ из табл. все заработало.
(1) Может кому пригодиться:
Переделывал обработку .dbf под sql, взял за пример ОбменДаннымиXML.epf (там есть возможность выбора работы на клиенте/сервере, с правами к временным файлам у меня было всё нормально)
Добрый день.
Имя DBF файла и его расширение должны быть заглавными в линуксе. Тогда проблем с поиском в каталоге временных файлов не возникает.
В виндоус работает в любом регистре.