#0
by Rounder
Поставлена задача: есть некий файл DBF в сетевой папке, с ним уже работает группа пользователей. Мне из 1С нужно откорректировать/добавить запись. Это возможно средствами 1С?
#2
by Rounder
У меня пока нет проблемы - и нет возможности испробовать. Спрашиваю может кто решал подобную задачу.
#3
by butterbean
непонятен твой вопрос — если файл занят то записать ты не сможешь, если свободен, то сможешь :-)
#4
by Aleksey
эээ а они в чём работают в блокноте с этим файлом? А ты уверен что посе твоей правки программа с которой "уже работает группа пользователей" не вылетет по ошибки? А ты уверен что та программа не использует хитрые индексы, и в результате она тоже не скажет ой
#8
by akronim
Вообще после открытия дбф "средствами 1С" ничем другим этот файл не откроешь даже на просмотр - будет ошибка доступа. Так что я отношусь скептически к этой затее. Вот она - наглядная польза кофе в офисах. Гадание на бараньих кишках или даже на внутренностях жертвенного голубя в условиях современного офиса несколько затруднительно, да и соседи не поймут.
#14
by kiruha
Точнее где то в 2003 spock начал использовать драйвер фокса для многопольз доступа к dbf
#15
by Rounder
Что я делаю не так? Соединение = Новый COMОбъект("ADODB.Connection"); Соединение.Open("Provider=vfpoledb.1;Exclusive=No; Data Source=" + ПутьКБД + ";Collating Sequence=MACHINE;"); Если остановиться по точке останова после строки ДБФ = Соединение.Execute("Select * from " + ПутьКБД + " "); то при открытии dbf-ки другим приложением ругает на то, что нет доступа. Но ведь в инициализации объекта я указал Exclusive=No. Что здесь не так?
#17
by Infsams654
надо попробовать через другой драйвер. И почему бы не подсоединиться не через COMОбъект("ADODB.Connection"), а прямо к внешнему источнику в 1С и работать через ВнешнийИсточникДанныхТаблицаМенеджер
#22
by Jump
Возможно. Т.е запись ты сможешь добавить если в этот момент файл не залочен. А будет ли другая программа корректно работать с базой после этого сказать невозможно, надо разбираться в принципах работы программы и что для нее эта запись которую ты откорректировал. В общем файл *,dbf это просто формат хранения, и в данном случае мало отличается от файла *.txt
#23
by Infsams654
не, в формате заголовка dbf точно есть поле для многопользовательского использования, однако, как с ним работает 1С - хз. При чем + на уровне записей
#24
by kiruha
Причем здесь 1С , если подключение идет через сторонний драйвер. Фокс прекрасно работает в многопольз режиме, а если что залочено - надо смотреть в голове
#28
by Ёпрст
Соединение = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+КаталогИБ+";Extended Properties=dBase IV;Persist Security Info=False";
#35
by Rounder
Так у меня и работало когда фал открывал в VFP например не в монопольном режиме, то из 1С с любым провайдером я к нему подключался и модифицировал спокойно. Не работала обратная ситуация: когда я не мог открыть из 1С файл в немонопольном режиме, т.е. когда я его открывал первым и уже пробуя открыть файл в VFP получал аксесс денайд.
#36
by Rounder
Вчера по твоему совету попробовал Microsoft.ACE.OLEDB.12.0 и использовал стандартную строку подключения: Соединение.Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ПутьКБД + ";Extended Properties=dBASE IV;User ID=Admin;"); И с такой строкой файл лочило. С той что ты сегодня подсказал - вроде работает как нужно. Сейчас еще разберусь что это за параметр. Спасибо за помощь.
#39
by Ёпрст
можешь еще на всякий.. вот так: Соединение = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+КаталогИБ+";Mode=Share Deny None;Extended Properties=dBase IV" т.е указать ему Mode
#40
by Ёпрст
тут видать, в фоксе(любой проге) нужно тоже подключаться с таким же User ID .. можно еще и пароля задать
#41
by Rounder
я смотрел в параметрах соединения - Mode устанавливается по умолчанию в Share Deny None
#42
by Ёпрст
но лучше, всё же вот с такой строкой: Соединение = "Provider=VFPOLEDB.1;Data Source="+КаталогИБ+";Collating Sequence=MACHINE;TABLEVALIDATE=0"; фокс всё же поприятнее с дбф дружит, да и индекс можно задействовать в запросе.
#47
by Rounder
Кстати - да. Вот и еще проблема нарисовалась. Microsoft.ACE.OLEDB.12.0 не лочит, но и индексный файл не обновляет :(
#48
by Ёпрст
Соединение = "Provider=VFPOLEDB.1;Data Source="+КаталогИБ+";Mode=Share Deny None;Collating Sequence=MACHINE;TABLEVALIDATE=0"; вот так спецом проверил - ничего не лочится.. при Mode=Read тоже
#50
by Rounder
Все - окончательно разобрался. Тормозил я при проверке на лок/не лок. Ты прав. Не лочится. Бляха - столько времени потерял и у других отнял. Еще раз спасибо.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Отчет на СКД, сохранить как внешнюю обработку, отчет... И не открывается в базе.
- ТабЧасть Заполнить циклом
- УТ 10.3 Реализация товаров в два этапа
- HP2050. Принтер при печати чередует ориентацию листа.
- Вертикальные линии на диаграмме табличного документа 8.2
- Производство готовой продукции и использование ее для собственных нужд
- Можно ли использовать в 1С8 УПП контрольно кассовою машину не открывая розницы
- Проблема с перенос справочника в УТ 11
- Видимость реквизита КоличествоМест
- Как вытащить данные 1С из битой SQL базы?
- Битрикс корпортал процент выполнения задачи
- Объединение ячейки в СКД
- Проблема с общим модулем "Метод объекта не обнаружен"
- Аналитика учета номенклатуры
- Пропадают общие итоги в СКД
- Поле объекта недоступно для записи (Ссылка)
- Закрытие заказов покупателей.
- Извращение.Как из управляемой формы передать в обычную параметр
- v7: Условие в запросе к двум документам
- 1С 8.2 Планы обмена (регистрация изменений)