Имя: Пароль:
1C
1С v8
Выгрузка из 1С в файлы .dbf
0 Vanchonok
 
08.11.11
13:41
Если кто сталкивался помогите разобраться. Нужно из 1С:УТ для торговой площадки "ФармСМ" выгружать файлы в формате .dbf с заказами и накладными. Может у кого есть обработка???
1 Wobland
 
08.11.11
13:41
а что это такое?
2 Vanchonok
 
08.11.11
13:43
Про что спрашиваешь? Если про площадку, то ресурс в инете для торговли медицинским оборудованием
3 Ахиллес
 
08.11.11
13:43
(0) Вот у "ФармСМ" и возьми эту обработку. Наверняка ты не первый, кто с ними работает и у кого есть восьмёрка.
4 Ахиллес
 
08.11.11
13:44
А вообще то торговцы лекарствами такие же наглые, как торговцы бензином. Даже если бы у меня была, фиг бы, я вам дал бесплатно. Купите.
5 aleks-id
 
08.11.11
13:46
за 500 баксов напишу. давайте формат дбф-ки
6 Vanchonok
 
08.11.11
13:48
В том то и дело что созвонился с ними, у них наработок для 1С вообще нет, только прислали структуру файлов. За 500 баксов может и напишите, только для фирмочки с тремя людьми в штате и торгующей очками дороговато.
7 Starhan
 
08.11.11
13:49
(0) Откуда знаете про Мисту, кто посоветовал? )
8 Aleksey
 
08.11.11
13:50
А что там писать?

Функция  Инициализация()
   Режим = РежимДиалогаВыбораФайла.Сохранение;
   ДиалогСохраненияФайла = Новый ДиалогВыбораФайла(Режим);
   ДиалогСохраненияФайла.ПолноеИмяФайла = "";
   Текст = "ru = ""Текст""; en = ""Text""";
   Фильтр = "ДБФ (*.dbf)|*.dbf";
   ДиалогСохраненияФайла.Фильтр = Фильтр;
   ДиалогСохраненияФайла.МножественныйВыбор = Ложь;
   ДиалогСохраненияФайла.Заголовок = "Куда сохранять файл?";
   
   Если ДиалогСохраненияФайла.Выбрать() Тогда
       ИмяФайла=ДиалогСохраненияФайла.ВыбранныеФайлы[0];
   Иначе
       Предупреждение("Файл не выбран!");
       Возврат ложь;
   КонецЕсли;
   
   
   БД = Новый XBase;
   БД.Поля.Добавить("INN","S",12);    // ИНН орагнизации-поставщика
       //... тут описываем поля нашей дбф
   Попытка
       БД.СоздатьФайл(ИмяФайла);
   Исключение
       Сообщить("Ошибка создания файла "+ИмяФайла);
       Сообщить(""+ОписаниеОшибки());
       Возврат ложь;
   КонецПопытки;        
   Возврат истина;    
КонецФункции

Функция Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт
   Документ = Объект;
   Если не Инициализация() тогда Возврат ""; конецЕсли;
   
   //Определяем поля шапки
   INN      = Документ.Организация.ИНН;
       ... получаем нужную информацию

   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("ТекущийДокумент", Документ.Ссылка);
   Запрос.Текст =
   "ВЫБРАТЬ
   |    ВЫРАЗИТЬ(Номенклатура.НаименованиеПолное КАК Строка(250)) КАК NOMNAME,
   |    Номенклатура.Код КАК NOMCODE,
   |    Номенклатура.Артикул КАК ARTIKUL,

... и что там тебе еще надо

   |ИЗ
   |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг
   |ГДЕ
   |        РеализацияТоваровУслуг.Ссылка = &ТекущийДокумент
   |
   |УПОРЯДОЧИТЬ ПО
   |    НомерСтроки";
   ЗапросТовары = Запрос.Выполнить().Выгрузить();

   
   Для каждого ВыборкаСтрокТовары из ЗапросТовары Цикл
       БД.Добавить();
       БД.INN      = INN;
               ... заполняем строки нашего ДБФ
       БД.KOL      = ВыборкаСтрокТовары.KOL;
               ... заполняем строки нашего ДБФ
       БД.Записать();
   КонецЦикла;
   
   Попытка
       БД.ЗакрытьФайл();
       Предупреждение("Накладная выгружена")
   Исключение
       Сообщить("Ошибка записи файла ");
       Сообщить(""+ОписаниеОшибки());
   КонецПопытки;    
   
 
   Возврат "";

КонецФункции

Ну и все это как заполнение ТЧ
9 shuhard
 
08.11.11
13:51
10 ptiz
 
08.11.11
13:55
Ну так посчитайте, выгодно ли вам работать с ФармСМ, если придется потратить 500у.е на обработку, а там уже решайте.
11 ptiz
 
08.11.11
13:56
Я бы за 300 написал.
12 Vanchonok
 
08.11.11
13:57
Мисту посоветовали в форуме на инфостаре.
13 Vanchonok
 
08.11.11
14:00
Везет, а с меня писака никудышний ! Может у кого хоть что подобное есть, посмотреть как пример и попробовать что нибудь своять?
14 Ахиллес
 
08.11.11
14:00
:-))) На инфостарте не осталось никого, кто бы написал выгрузку в дбф? Или там штукарь баксофф попросили? :-)))
15 shuhard
 
08.11.11
14:00
(12) тогда правила игры очевидны:
- точный релиз УТ, ибо УТ 10.3 и УТ 11 разные конфы
- формат файла
- минимальный бюджет
16 Wobland
 
08.11.11
14:01
//создадим файл
   ф=Новый XBase;
   ф.Поля.Добавить("TAB_N",     "S", 10);
   ф.Поля.Добавить("NAME"   ,   "S", 70);
   ф.Поля.Добавить("TIPDOC",    "S", 50);
   ф.Поля.Добавить("SERNUM" ,    "S", 50);
   ф.Поля.Добавить("PDATE"  ,    "D");
   ф.Поля.Добавить("PWHR"   ,   "S", 80);
   ф.Поля.Добавить("BIRTHDAY",  "D");
   ф.Поля.Добавить("OTDEL",     "S", 80);
   ф.Кодировка=КодировкаXBase.ANSI; //эта нужна?
   ф.АвтоСохранение=Истина;
   
   ф.СоздатьФайл("c:\88.dbf");
   ф.ОчиститьФайл();
   Выборка = Запрос.Выполнить().Выбрать();
   
   Пока Выборка.Следующий() Цикл
       // всё пошла выборка, добавляем запись
       ф.Добавить();
       //и заполняем у ней поля
       ф.TAB_N = Выборка.Код;
       ф.NAME = Выборка.ФизЛицо;
       ф.TIPDOC = Выборка.ДокументВид;
       ф.SERNUM = Строка(Выборка.ДокументСерия) +" "+ Выборка.ДокументНомер; // проеобразуем в строку, т.к. со второго операнда начнёт неявно в число
       ф.PDATE = Выборка.ДокументДатаВыдачи;
       ф.PWHR = Выборка.ДокументКемВыдан;
       ф.BIRTHDAY = Выборка.ДатаРождения;
       ф.OTDEL = Выборка.ПодразделениеОрганизации;
   КонецЦикла;
   //ну и всё...
   ф.ЗакрытьФайл();

с вас 450 баксов
17 ptiz
 
08.11.11
14:01
(13) Так вот в (8) тебе заготовка.
18 Vanchonok
 
08.11.11
14:14
Буду пробовать может что и получится
2 + 2 = 3.9999999999999999999999999999999...