|
Загрузка DBF |
☑ |
0
Sem0709
27.11.12
✎
05:46
|
Всем привет!
Нашел в инете кусок кода выгрузки\загрузки DBF.
Спр.Отдел \\ПеречислениеСсылка.Отдел
Значения не подставляются, т.е. это реквизит в форме остается пустым. Что не так делаю и как правильно ? Выгрузка проходит корректно, значения в таблице DBF-файла есть.
И ещё мелочь, но хочется знать на будущее. Почему в пути указаны два слеша, вместо одно бэк-слеша - работает оба варианта.
Процедура ОсновныеДействияФормыЗагрузить(Кнопка)
БД = Новый XBase;
БД.ОткрытьФайл("C://1.dbf"); \\?
Если БД.Открыта() тогда
БД.Первая();
Пока НЕ БД.ВКонце() Цикл
Спр=Справочники.Сотрудники.СоздатьЭлемент();
Спр.Наименование = СокрЛП(БД.Name);
Спр.Отдел = СокрЛП(БД.Local); \\?
Спр.Записать();
БД.Следующая();
КонецЦикла;
КонецЕсли;
БД.ЗакрытьФайл();
КонецПроцедуры
|
|
1
Гефест
27.11.12
✎
05:50
|
Потому что ты пихаешь туда не элемент перечисления, а строку
|
|
2
Sem0709
27.11.12
✎
06:10
|
Нуда, это мне в голову приходило. Как правильно сделать ?
|
|
3
Cube
27.11.12
✎
06:18
|
(2) Если ДБФ для переноса данных, то используй ЗначениеВСтрокуВнутр() и ЗначениеИзСтрокиВнутр() для выгрузки и загрузки значения перечисления соответственно.
Если ДБФ для чтения юзерам, то при загрузке ищи перечисление по наименованию.
|
|
4
Cube
27.11.12
✎
06:19
|
+(3) Кстати, можно выгружать имя перечисления, как оно задано в конфигураторе, а не его синоним, тогда можно будет загружать по именам.
|
|
5
Sem0709
27.11.12
✎
08:38
|
Вроде сделал, только пришлось увеличить длину выгружаемого поля с 50 на 100. Спасибо!
А если бы это были разные конфигурации ? ЗначениеВСтрокуВнутр() и ЗначениеИзСтрокиВнутр() строковые представления этих функций справедливы только для одной конфигурации!?
Про слеши в пути объяснение есть?
|
|
6
Cube
27.11.12
✎
08:41
|
(5) "строковые представления этих функций справедливы только для одной конфигурации!?"
Ещё строже - для одной ИБ (или РИБ), т.к. в эту строку выгружается уникальный идентификатор объекта, который, сам понимаешь, никогда не повторяется.
|
|