Выгрузка В Клиент Банк Из Збу8 На Пластиковую Карту

Тема в разделе "1C и всё что с ней связано", создана пользователем Nikolon, 6 ноя 2011.

  1. Nikolon

    Nikolon Гость

    В общем я недавно начал изучать 1с, почти ничего не знаю=) Требуется организовать в ЗБУ8 выгрузку в dbf файл, чтобы тот грузился в клиент банк для начисления зп сотрудников на пластиковую карту.
    Не долго думая решил с коммуниздить данный метод из ЗиК 77, там данная возможность уже реализована.
    В последней демке ЗБУ нарисовал на второй странице формы документа нужные поля. Я раньше программировал на с++ и немного не понимаю принципа opendlg в 1с, и еще проблема в том что синтекс 7.7 и 8.2 немного отличается. Синтаксис помощник не особо помог-) Напишите плз как реализуется создание файла .dbf
    Вот код и 7ки:

    Код ( (Unknown Language)):
    Процедура Выгрузить()

    Если ПустаяСтрока(ФайлВыгрузки)=1 Тогда
    Предупреждение("Не указан файл.");
    Возврат;
    ИначеЕсли ФС.СуществуетФайл(ФайлВыгрузки) = 1 Тогда
    Если Вопрос("Файл "+ФайлВыгрузки+" существует!"+РазделительСтрок+"Переписать?","Да+Нет") = "Нет" Тогда
    Возврат;
    КонецЕсли;
    КонецЕсли;


    DBF = СоздатьОбъект("XBASE");
    // Кодировка DOS
    DBF.КодоваяСтраница(1);

    DBF.ДобавитьПоле("TAB_N","S",10,0);
    DBF.ДобавитьПоле("NAME","S",70,0);
    DBF.ДобавитьПоле("SUM_PAY","N",12,2);


    DBF.СоздатьФайл(ФайлВыгрузки);

    ВыбратьСтроки();

    Пока ПолучитьСтроку()>0 Цикл  

    DBF.Добавить();

    DBF.TAB_N=Сотрудник.Код;
    DBF.NAME=СокрЛП(Сотрудник);
    DBF.SUM_PAY=Сумма;
    DBF.Записать();

    КонецЦикла;

    Если DBF.Открыта()=1 Тогда
    DBF.ЗакрытьФайл();
    КонецЕсли;

    Предупреждение("Выгрузка завершена ...");

    КонецПроцедуры

    Получается в файл выгружается ФИО работника, код и сумма зп.
    Допустим в 8ке нет метода СоздатьОбъект, ругается еще много на что, но думаю я разберусь...

    Заранее спс за помощь, не сильно кидайте в меня камнями за мой дибилизм, сам понимаю что тут дело 5 минут для опытного программера, коим я не являюсь=)
     
  2. User1C

    User1C Гость

    Вот пример работы с dbf на 8.2:

    Код ( (Unknown Language)):
    ИмяФайла = "d:\zp.dbf";
    ИмяФайлаБазы = Новый Файл(ИмяФайла);
    База = Новый XBase;

    Если НЕ ИмяФайлаБазы.Существует() Тогда
    База.Кодировка = КодировкаXBase.OEM;

    База.Поля.Добавить("TAB_N","S",10,0);
    База.Поля.Добавить("NAME","S",70,0);
    База.Поля.Добавить("SUM_PAY","N",12,2);
    База.СоздатьФайл(ИмяФайла);
    База.Записать();

    КонецЕсли;
    Твой код: заполняешь дальше свою dbf

    Код ( (Unknown Language)):
    База.ЗакрытьФайл();
    Предупреждение("Выгрузка завершена ...");
     
  3. Nikolon

    Nikolon Гость

    Спасибо!
     
  4. Гость

    Код ( (Unknown Language)):
    Процедура Выгрузить()

    Если ПустаяСтрока(ФайлВыгрузки)=1 Тогда
    Предупреждение("Не указан файл.");
    Возврат;
    ИначеЕсли ФС.СуществуетФайл(ФайлВыгрузки) = 1 Тогда
    Если Вопрос("Файл "+ФайлВыгрузки+" существует!"+РазделительСтрок+"Переписать?","Да+Нет") = "Нет" Тогда
    Возврат;
    КонецЕсли;
    КонецЕсли;


    DBF = СоздатьОбъект("XBASE");
    // Кодировка DOS
    DBF.КодоваяСтраница(1);

    DBF.ДобавитьПоле("TAB_N","S",10,0);
    DBF.ДобавитьПоле("NAME","S",70,0);
    DBF.ДобавитьПоле("SUM_PAY","N",12,2);


    DBF.СоздатьФайл(ФайлВыгрузки);

    ВыбратьСтроки();

    Пока ПолучитьСтроку()>0 Цикл  

    DBF.Добавить();

    DBF.TAB_N=Сотрудник.Код;
    DBF.NAME=СокрЛП(Сотрудник);
    DBF.SUM_PAY=Сумма;
    DBF.Записать();

    КонецЦикла;

    Если DBF.Открыта()=1 Тогда
    DBF.ЗакрытьФайл();
    КонецЕсли;

    Предупреждение("Выгрузка завершена ...");

    КонецПроцедуры
    А можешь весь мод скинуть?
     
  5. Nikolon

    Nikolon Гость

    Пока в процессе, как доделаю скину...
    Просто в 7ке и в 8ке разные реквизиты табличной части и я пока не разобрался как взять код и наименование сотрудника, вернее откуда его брать. В табличной есть только физлицо (Справочники.Физлица группа сотрудники). Вот как взять в справочнике наименование и его код пока не понял... Если сегодня не пойму завтра у начальника спрошу...
    Кстати вот ссылка на хороший справочник по синтаксису: http://t-prog.narod.ru/page1.html#326
     
  6. Гость

    B) А ну ясно...просто показалось что на 7 у тебя есть готовый.
     
  7. Nikolon

    Nikolon Гость

    мда... я попытался скинуть модуль формы документа, но он не влез)))
    объяню более понятно: в 1с77 Зик типовой, уже имеется данная возможность а вот в БГУ8 такого нет, хочу просто перенести. Код сюда не лезит, если выкладывать модуль формы документа.\
     
  8. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Эксперт, возьми пример с Nikolon. Русским по белому сказано, что в типовой ЗиК 77 модуль есть. Вплоть до того, что процедура из того модуля указана. B)
     
  9. Nikolon

    Nikolon Гость

    Есть ПолеВвода1, нарисовано на форме, добавил кнопочку Обзор, нажимаем отрабатывает данная процедура:

    Код ( (Unknown Language)):
        ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    ДиалогВыбора.Фильтр = "Data Base File(*.dbf)|*.dbf";
    ДиалогВыбора.Заголовок = "Выберите каталог для создания файла";
    Если НЕ ДиалогВыбора.Выбрать() Тогда
    Возврат;
    КонецЕсли;
    ПутьКФайлу = ДиалогВыбора.Каталог;
    Сама выгрузка отрабатывает, но надо чтобы в ПолеВвода отображался каталог, куда я сохраняю. Тоесть нужно передать переменную ПутьКФайлу в ПолеВвода1, как это можно сделать? И еще один маленький вопросик, как сделать чтобы при сохранении не нужно было указывать имя файла, а оно на автомате было задано... По аналогии у меня в коде создается dbf файл вот так:

    Код ( (Unknown Language)):
    БД.СоздатьФайл(ПутьКФайлу+("start.dbf");
     
  10. Nikolon

    Nikolon Гость

    Ой сори я даун....) Там надо было не поле выбора использовать а поле ввода))) и

    Код ( (Unknown Language)):
    ПутьКФайлу = ДиалогВыбора.ВыбранныеФайлы;
    и в процедуре перед открытием задавать имя файла по умолчанию=)
     
  11. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    8.2:
    Код ( (Unknown Language)):
    Элементы.ЭлементыФормы.ПолеВвода1.Значение = ПутьКфайлу + ("start.dbf")
    8.1
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Выбор файла</div></div><div class="sp-body"><div class="sp-content">
    Код ( (Unknown Language)):
    ДиалогФыбораФайла                                    =Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

    ДиалогФыбораФайла.Фильтр                     =   "Файл для загрузки (*.dbf)|*.dbf";
    ДиалогФыбораФайла.Расширение                 =   "dbf";
    ДиалогФыбораФайла.Заголовок                       =   "Выберите файл";
    ДиалогФыбораФайла.ПредварительныйПросмотр       =   Ложь;
    ДиалогФыбораФайла.ИндексФильтра                   =   0;
    ДиалогФыбораФайла.ПолноеИмяФайла             =   Элемент.Значение;
    ДиалогФыбораФайла.ПроверятьСуществованиеФайла   =   Истина;
    Если ДиалогФыбораФайла.Выбрать() Тогда
    Элемент.Значение = ДиалогФыбораФайла.ПолноеИмяФайла;
    КонецЕсли;
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Выбор каталога</div></div><div class="sp-body"><div class="sp-content">
    Код ( (Unknown Language)):
    ДиалогФыбораФайла                                    =Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);

    Если ДиалогФыбораФайла.Выбрать() Тогда
    Элемент.Значение = ДиалогФыбораФайла.ПолноеИмяФайла;
    КонецЕсли;
     
  12. Darlock

    Darlock Well-Known Member
    1C Team

    Регистрация:
    4 янв 2008
    Сообщения:
    558
    Симпатии:
    0
    Разницы никакой, все отличие в доступных изначально кнопках работы с полем.
     
  13. Nikolon

    Nikolon Гость

    У полявыбора нельзя менять тип данных, он стоит произвольный, а я все бился как его сделать строковым=) Блин аж стыдно))) Такая легкая задачка а я... Спасибо всем за помощь, буду дальше биться об стену=))) Ибо овны не сдаются=)
     
  14. Nikolon

    Nikolon Гость

    Все сделал, все работает, с dbf файлом проблем не было, а вот с диалогами помучился, зато в будущем будет прок=). Спасибо за помощь. Если кому то надо пишите в личку, скину модуль.
     
Загрузка...
Похожие Темы - Выгрузка Клиент Банк
  1. Mikle_GB
    Ответов:
    12
    Просмотров:
    637
  2. KapitoliyKakoyTo
    Ответов:
    1
    Просмотров:
    2.828
  3. JohnLemon
    Ответов:
    47
    Просмотров:
    2.744
  4. Надя1972
    Ответов:
    0
    Просмотров:
    654
  5. AndreiBY
    Ответов:
    0
    Просмотров:
    1.352

Поделиться этой страницей