Имя: Пароль:
1C
1С v8
Работа DBF в 1С
,
0 GMGrom
 
22.04.13
20:15
Добрый вечер дамы и господа, понимаю тема набила оскомину.
1С Предприятие 8.1

Вопрос следующий:
Я нашел способ импортировать DBF в 1с, а именно в справочник, при помощи обработки ЗагрузкаДанныхИзТабличногоДокумента, но это не совсем то что надо.
Теперь надо как-то отредактировать чтобы эта обработка позволяла сохранять в dbf и отправлять в справочник (второе она умеет, но не сохраняет в dbf)

Прошу помощи у знатоков.
1 ДенисЧ
 
22.04.13
20:17
Продаю идею - использовать объект XBase
2 Михаил Козлов
 
22.04.13
20:18
Что эта обработка должна уметь сохранять в dbf? Она, вроде как, из него читает.
3 Ковычки
 
22.04.13
20:21
ексель
4 блондин1c
 
22.04.13
20:21
(1) или программиста позвать как вариант
5 GMGrom
 
22.04.13
20:24
Юмор шикарен, но все же.
Нам поставили условия, либо вы шлете нам номенклатуру в формате dbf или гуляйте.
http://rghost.ru/45479565 - обработчик
6 Wobland
 
22.04.13
20:30
(5) ну возьми да пришли. или тебе готовое дать?
7 ДенисЧ
 
22.04.13
20:30
(5) Продаю идею - заплати мне денег, и я сделаю
8 Wobland
 
22.04.13
20:31
(7) эту идею ты уже не продашь
9 Ковычки
 
22.04.13
20:32
(7) ворованные СП закончились ?
10 Wobland
 
22.04.13
20:40
чужой пример. с вас 500 рублей

Процедура ВыгрузитьНажатие(Элемент)
   
   Попытка
       Спис = Новый xBase;
       Спис.Кодировка = КодировкаXBase.OEM;
       Спис.поля.Добавить("A","S",30,0);Спис.поля.Добавить("B","S",30,0);Спис.поля.Добавить("C","S",30,0);
       Спис.поля.Добавить("D","S",30,0);Спис.поля.Добавить("E","S",30,0);Спис.поля.Добавить("F","S",30,0);
       Спис.поля.Добавить("G","S",30,0);

       //Шапка;
       Спис.СоздатьФайл(ПутьФайла);
       //1
       Спис.Добавить();
       Спис.A = ОСБ;
       Спис.Записать();
       //2
       Спис.Добавить();
       Спис.A = "К платежному поручению №";        
       Спис.B = НПП;        
       Спис.C = "от";        
       Спис.D = Формат(ДатаПП, "ДЛФ=D");
       Спис.Записать();
       //3
       Спис.Добавить();
       Спис.A = "Зачисление";                        
       Спис.B = "01";        
       Спис.C = "810";
       Спис.Записать();
       //4
       Спис.Добавить();
       Спис.A = "Наименование, ОГРН, № банк.счета";
       Спис.B = НаименованиеОрганизации;
       Спис.C = НомерБанкСчета;
       Спис.D = ЭлементыФормы.ТекстОГРН.Заголовок;
       Спис.Записать();
       //5
       Спис.Добавить();
       Спис.A = "По договору:";
       Спис.B = Договор;
       Спис.C = "от";
       Спис.D = Формат(ДатаДоговора, "ДЛФ=D");
       Спис.Записать();
       //6
       Спис.Добавить();
       Спис.A = "№ п/п";
       Спис.B = "Номер счета";
       Спис.C = "Фамилия";
       Спис.D = "Имя";
       Спис.E= "Отчество";
       Спис.F = "Сумма";
       Спис.G = "Примечание";
       Спис.Записать();
       СуммаИтого = 0;
       НомПП = 1;
       Для Каждого Стр Из Список Цикл
           Спис.Добавить();
           Спис.A = НомПП;
           Спис.B        = Строка(Стр.ЛицСчет);
           Спис.C        = Стр.Фамилия;
           Спис.D        = Стр.Имя;
           Спис.E        = Стр.Отчество;
           Спис.F        = Формат(Стр.Сумма,"ЧЦ=15; ЧДЦ=2; ЧРД='.'; ЧГ=0");
           Спис.Записать();
           СуммаИтого = СуммаИтого + Стр.Сумма;
           НомПП = НомПП + 1;
       КонецЦикла;
       
       //Итог
       Спис.Добавить();
       Спис.B = "ИТОГО:";
       Спис.F = Формат(СуммаИтого,"ЧЦ=15; ЧДЦ=2; ЧРД='.'; ЧГ=0");
       
       Спис.Записать();
       
       Если Спис.Открыта() Тогда
           Спис.ЗакрытьФайл();
           Сохранен = Истина;
       КонецЕсли;
       Сообщить("Создан файл: "+ПутьФайла);
   Исключение
   КонецПопытки;
КонецПроцедуры
11 GMGrom
 
22.04.13
21:07
Процедура КоманднаяПанельТабличногоДокументаСохранить(Кнопка)
   
   ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
   
   ДиалогВыбораФайла.Заголовок = "Созранить табличный документ в файл";
   ДиалогВыбораФайла.Фильтр    = "Табличный документ (*.mxl)|*.mxl|Лист Excel (*.xls)|*.xls|Текстовый документ (*.txt)|*.txt|dBase III (*.dbf)|*.dbf|";
   Если ДиалогВыбораФайла.Выбрать() Тогда
       
       ТабличныйДокумент = ЭлементыФормы.ТабличныйДокумент;
       ФайлНаДиске = Новый Файл(ДиалогВыбораФайла.ПолноеИмяФайла);
       
       Если нРег(ФайлНаДиске.Расширение) = ".mxl" Тогда
           ТабличныйДокумент.Записать(ДиалогВыбораФайла.ПолноеИмяФайла,ТипФайлаТабличногоДокумента.MXL);
           
       ИначеЕсли нРег(ФайлНаДиске.Расширение) = ".xls" Тогда
           ТабличныйДокумент.Записать(ДиалогВыбораФайла.ПолноеИмяФайла,ТипФайлаТабличногоДокумента.XLS);
           
           
       ИначеЕсли нРег(ФайлНаДиске.Расширение) = ".txt" Тогда
           ТабличныйДокумент.Записать(ДиалогВыбораФайла.ПолноеИмяФайла,ТипФайлаТабличногоДокумента.TXT);
           
       ИначеЕсли нРег(ФайлНаДиске.Расширение) - ".dbf" Тогда
           ТабличныйДокумент.Записать(ДиалогВыбораФайла.ПолноеИмяФайла,ТипФайлаТабличногоДокумента.DBF);
           
       КонецЕсли;
       
   КонецЕсли;
   
КонецПроцедуры


Сохранить как DBF не работает
12 denmaestro
 
22.04.13
21:09
справочник->excel->dbf
13 GMGrom
 
22.04.13
21:34
{Обработка.ЗагрузкаДанныхИзТабличногоДокумента.Форма.Форма(395)}: Преобразование значения к типу Число не может быть выполнено
       ИначеЕсли нРег(ФайлНаДиске.Расширение) - ".dbf" Тогда
14 Славен
 
22.04.13
21:38
сохраняешь как xls, затем открываешь экселем и сохранееш как дбф, эксель это умеет
15 Asmody
 
22.04.13
22:01
Не понял я, чем XBase не устроил?
16 hhhh
 
22.04.13
22:10
(13) что реально вычитаете из нрег дбф или просто нам лапшу на уши вешаете?
17 GMGrom
 
22.04.13
22:14
Я уже исправил ("вычитание").

{Обработка.ЗагрузкаДанныхИзТабличногоДокумента.Форма.Форма(3 99)}: Поле объекта не обнаружено (DBF)
ТабличныйДокумент.Записать(ДиалогВыбораФайла.ПолноеИмяФайла, ТипФайлаТабличногоДокумента.DBF);
18 Тьма
 
22.04.13
22:21
(17)Билли - дбф это не просто таблица, это таблица с типизированными полями, Билли, не надо ее твоим Экселем/Мокселем уродовать, у нее свои объекты и методы, Xbase-ом называемые (третий раз причем в этой ветке называемые) Гейтс ты неприкаянный.
19 hhhh
 
22.04.13
22:22
(17) не, вы - приколисты:

ТипФайлаТабличногоДокумента (SpreadsheetDocumentFileType)
Значения

ANSITXT (ANSITXT)
DOCX (DOCX)
HTML (HTML)
HTML3 (HTML3)
HTML4 (HTML4)
MXL (MXL)
MXL7 (MXL7)
ODS (ODS)
PDF (PDF)
TXT (TXT)
XLS (XLS)
XLS95 (XLS95)
XLS97 (XLS97)
XLSX (XLSX)

Описание:

Содержит варианты форматов файлов для сохранения табличного документа. Используется для определения параметра <ТипФайлаТаблицы> метода Записать.
20 EvgeniuXP
 
22.04.13
22:25
(0) в желтых книжках посмотри, там пример есть или в справке.
21 DjSpike
 
22.04.13
22:34
Какую именно информацию вы хотите сохранять в dbf ?
22 Михаил Козлов
 
25.04.13
10:57
Человек хочет выгрузить из ТАБЛИЧНОГО ДОКУМЕНТА в DBF, а метода нет. И понятно, почему: в табличном документе с типами напряженка. Попробуйте в DBF грузить не из табличного документа, а из результата запроса или таб. части.