Работу с индексом закоментила. Все читает и записывает. У меня вопрос,
1. я указываю файл дбф и программно вывожу его в ТЗ на форме. Сделано чтобы была возможность привести в нужный вид и сохранить. Надо удалить лишний столбец, выделяю, нажимаю крестик в панели и ничего. Как удалить?
2. Я в программе не знаю названия колонок грузиться по названиям полей дбф, как записать в них значение зная индекс?
Так что осталось. Делаю обработку правка дбф чтобы загрузка проходила для разных ДБФок, сейчас уже смотрю там не удалить надо столбец а переименовать в ДБФке. Задача стоит такая у разных контров разные ДБФки выгрузки, чтобы под каждого загрузку не писать нужно привести ДБФ к нужной стандартной структуре. Сделала обработку указываешь файл дбф. И на форму выводитв таблицу его содержание, так как дбфки разные, структура таблицы создаеться динамически при чтении. Я вот дуаю сделать так сдлать группу "меняем структуру" где прописать нужные поля и рядом чтобы пользователь указал какое изменить на структурное.Переименовать. Потом сохраняем и загружаем.
Просто понимаете при загрузке дбф и индекс мб разный поэтому как то нужно переписывать структуру полей, я еще ни разу переименование не делала. Надо посмотреть какие свойства у полей. И получаеться колонку таблицы на форме тоже надо будет переименовать чтобы пользватель видел что запишеться в файл. Вот смотрите в одной поле называеться Name индекс 2, а в другой Tovar индекс 3, и таких файлов штук 40. Легче привести к одной структуре чем на каждую загрузку писать. В загрузке береться определенное колво полей, стандартный набор для документа.
А я так и делаю. Вывожу на форму а потом пользователь указывает колонки соотвествия. У меня две обработки одна правит дбф вторая грузит стандартный набор полей. Я поняла Вы предлагаете их слить в одну и пользователь укажет какие колонки соотвествуют набору данных и по индексу брать. Надо попробовать, Делаю уже на месте, защищенная стоит конфа, дома не посмотришь.
Не вижу смысла править дбф. Это двойная работа получается. Я предлагаю данные полностью считывать в таблицу значений, а потом уже из неё брать данные для создания документов. Пользователю нужно только указать соответствие колонок таблицы реквизитам создаваемого документа.
Татьяна1982
пн, 11/04/2016 - 09:34
БД = Новый XBase;
БД.Поля.Добавить("CODE", "S", 5);
БД.Поля.Добавить("NAME", "S", 40);
БД.СоздатьФайл(Путь + "start.dbf", Путь + "index.cdx");
БД.Индексы.Добавить("IDXCODE", "CODE");
ФлИБД = БД.СоздатьИндексныйФайл(Путь + "index.cdx");
БД.АвтоСохранение = Истина;
Выборка = Справочники.Номенклатура.ВыбратьИерархически();
Пока Выборка.Следующий() Цикл
БД.Добавить();
БД.CODE = Выборка.Код;
БД.NAME = Выборка.Наименование;
КонецЦикла;
БД.ЗакрытьФайл();
БД = Новый XBase;
БД.ОткрытьФайл(Путь + "start.dbf", Путь + "index.cdx");
БД.ТекущийИндекс = БД.Индексы.IDXCODE;
Пока БД.Следующая() Цикл
Сообщить(БД.CODE);
Сообщить(БД.NAME);
КонецЦикла;
БД.ЗакрытьФайл();
Нашла в инете.
guru
пн, 11/04/2016 - 09:45
Работает?
Татьяна1982
пн, 11/04/2016 - 10:05
Думаю да. Вечером проверю мне загрузку-выгрузку писать. Ну так на память я раньше делала на 7ке верно. С индексом вот не помню.
Татьяна1982
вт, 12/04/2016 - 20:11
Работу с индексом закоментила. Все читает и записывает. У меня вопрос,
1. я указываю файл дбф и программно вывожу его в ТЗ на форме. Сделано чтобы была возможность привести в нужный вид и сохранить. Надо удалить лишний столбец, выделяю, нажимаю крестик в панели и ничего. Как удалить?
2. Я в программе не знаю названия колонок грузиться по названиям полей дбф, как записать в них значение зная индекс?
guru
ср, 13/04/2016 - 09:29
Что-то не совсем понятны вопросы.
1. Откуда хотите удалить лишний столбец и как он был создан?
2. А "название колонки" <> "название поля дбф"? Куда вы хотите записать значение? О каком индексе идёт речь?
Татьяна1982
чт, 14/04/2016 - 08:50
Так что осталось. Делаю обработку правка дбф чтобы загрузка проходила для разных ДБФок, сейчас уже смотрю там не удалить надо столбец а переименовать в ДБФке. Задача стоит такая у разных контров разные ДБФки выгрузки, чтобы под каждого загрузку не писать нужно привести ДБФ к нужной стандартной структуре. Сделала обработку указываешь файл дбф. И на форму выводитв таблицу его содержание, так как дбфки разные, структура таблицы создаеться динамически при чтении. Я вот дуаю сделать так сдлать группу "меняем структуру" где прописать нужные поля и рядом чтобы пользователь указал какое изменить на структурное.Переименовать. Потом сохраняем и загружаем.
Татьяна1982
чт, 14/04/2016 - 09:07
2. Не зная названия колонки надо было заполнить значения. Я нашла Установить(Индекс). Индекс номер колонки. Все получилось.
guru
чт, 14/04/2016 - 09:31
Как раз хотел предложить обращаться к колонкам и полям по индексу. Тогда проблема с разными именами полей отпадёт.
Татьяна1982
чт, 14/04/2016 - 09:40
Просто понимаете при загрузке дбф и индекс мб разный поэтому как то нужно переписывать структуру полей, я еще ни разу переименование не делала. Надо посмотреть какие свойства у полей. И получаеться колонку таблицы на форме тоже надо будет переименовать чтобы пользватель видел что запишеться в файл. Вот смотрите в одной поле называеться Name индекс 2, а в другой Tovar индекс 3, и таких файлов штук 40. Легче привести к одной структуре чем на каждую загрузку писать. В загрузке береться определенное колво полей, стандартный набор для документа.
guru
чт, 14/04/2016 - 09:46
А прочитать все данные из дбф в таблицу на форме и после этого дать пользователю возможность указать в какой колонке что хранится - не вариант?
Татьяна1982
чт, 14/04/2016 - 09:51
А я так и делаю. Вывожу на форму а потом пользователь указывает колонки соотвествия. У меня две обработки одна правит дбф вторая грузит стандартный набор полей. Я поняла Вы предлагаете их слить в одну и пользователь укажет какие колонки соотвествуют набору данных и по индексу брать. Надо попробовать, Делаю уже на месте, защищенная стоит конфа, дома не посмотришь.
guru
чт, 14/04/2016 - 09:57
Не вижу смысла править дбф. Это двойная работа получается. Я предлагаю данные полностью считывать в таблицу значений, а потом уже из неё брать данные для создания документов. Пользователю нужно только указать соответствие колонок таблицы реквизитам создаваемого документа.