Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > из paradox в 1С


Автор: larabelle 13.11.2007, 09:29
А здравствуйте всем, и да неомрачит 13-е число вашего настроения.

Собсно по субжу. Данные из таблицы парадокс выгрузили в текстовый файл. 
и теперь надо их загнать в 1С (скорее всего в приходник).

Кому нить приходилось иметь дело с таким?

Автор: SaschaL 13.11.2007, 17:21
А запись в текстовом файле структурирована, дело в том что 1С нормально читает текстовые файлы, просто если выгрузка прошла без стуктуризации то буден некоторые проблемы по идентификации данных и следоваетльно загрузке их в 1С?

Автор: larabelle 13.11.2007, 17:50
Цитата(SaschaL @ 13.11.2007,  15:21)
А запись в текстовом файле структурирована, дело в том что 1С нормально читает текстовые файлы, просто если выгрузка прошла без стуктуризации то буден некоторые проблемы по идентификации данных и следоваетльно загрузке их в 1С?

Да, конечно, каждая запись идет по след структуре:
Цитата

?01.11.2007|1|5469|Наименование товара (1702)|ООО ТД "Хлебный дом" (1595)|10 (1)|13|-


но насколько придется подгонять эту структуру под 1с или наоборот пытаться изменить структуру выгрузки?

Автор: Zero 13.11.2007, 22:23
Цитата(larabelle @  13.11.2007,  09:29 Найти цитируемый пост)
Данные из таблицы парадокс выгрузили в текстовый файл. 
и теперь надо их загнать в 1С (скорее всего в приходник).

Вообщето формат таблиц парадокс схож по структуре с 1с, нафиг текстовый файл нужен?
Читаем доку + юзаем поиск.
Подсказка: XBase (место раскопок  smile )

Сорри за немногословность... No times. smile 

Автор: larabelle 13.11.2007, 23:36
Цитата(Zero @ 13.11.2007,  20:23)
Вообщето формат таблиц парадокс схож по структуре с 1с, нафиг текстовый файл нужен?
Читаем доку + юзаем поиск.
Подсказка: XBase (место раскопок  smile )

Сорри за немногословность... No times. smile

Сэр, с приездом вас и... также уже с отъездом.

Текстовый файл сложился исторически - т.е. мне его дали - и типа действуй.
Хотя параллельно я юзаю вариант, типа вашего. Но тогда нана достраивать таблицу источник, а там типа уже давнишняя отлаженная прога работает.


Автор: SaschaL 14.11.2007, 15:48
Для получения данный из тестовой строки попробуйте использовать метод 
ИзСтрокуСРазделителями()
Просто занимался такой проблемой достаточно давно, попробую найти в ближайшее время внешнюю обработку которую я писал для себя и для примера скинуть обработку. Будет нагляднее...

Автор: larabelle 14.11.2007, 20:38
Цитата(SaschaL @ 14.11.2007,  13:48)
Для получения данный из тестовой строки попробуйте использовать метод 
ИзСтрокуСРазделителями()
Просто занимался такой проблемой достаточно давно, попробую найти в ближайшее время внешнюю обработку которую я писал для себя и для примера скинуть обработку. Будет нагляднее...

Ок, бум посмотреть.
Заодно читаю как через ADO подключиться (есть возможность на машину с парадоксом 1С поставить) - до сих пор не приходилось иметь дело. 

Автор: larabelle 15.11.2007, 00:23
Цитата(SaschaL @ 14.11.2007,  13:48)
Для получения данный из тестовой строки попробуйте использовать метод 
ИзСтрокуСРазделителями()
Просто занимался такой проблемой достаточно давно, попробую найти в ближайшее время внешнюю обработку которую я писал для себя и для примера скинуть обработку. Будет нагляднее...

Да -а-а-а---а-а-а-а,
забыла сказать, 
Спасибо, SaschaL -
вы - настоящий друг!

Автор: larabelle 22.11.2007, 14:32
To SaschaL, Zero

в общем с приходником я справилась - пошла - правда длинным путем через импортиз екселя
теперь разбираюсь с реализацией ...
т.е. вопрос актуален - если кто чем может помоч - то буду рада

To Zero -
xbase - я в курсе - но к моей ситуации не подходит

Автор: Naghual 23.11.2007, 00:02
Уважаемая larabelle, так в чем собственно у вас загвоздка?

Автор: larabelle 23.11.2007, 03:07
Цитата(Naghual @ 22.11.2007,  22:02)
Уважаемая larabelle, так в чем собственно у вас загвоздка?

Уважаемый Naghual,
нана программо создать документ реализация и табличную часть заполнить из таблицы .dbf или excel -
наверное так можно сфокусировать проблему на настоящий момент - поскольку текстовый файл (по крайней мере в том виде, в котором я его имею) - импортировать у меня не получилось.
конфига 1с77 - усн или тис.

Ну и чтобы алгоритмы работали ессно - ндс, попадание в отчеты и пр.

Автор: larabelle 23.11.2007, 03:29
Хм ... почти случайно наткнулась на про-клабе на обработку - посмотрела пока только мельком, но - кажется именно то, что мне нужно.
если кому нана - то брать здесь:
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=83&lid=1417

Автор: Naghual 24.11.2007, 15:00
Ну  что-же. Рад за вас.
Если все-же не получится, либо решите вернутся к текстовому файлу - милости прошу.
У меня подобные операции получались.

Автор: larabelle 24.11.2007, 18:22
Цитата(Naghual @ 24.11.2007,  13:00)
Если все-же не получится, либо решите вернутся к текстовому файлу - милости прошу.

Благодарю.

Автор: Zero 25.11.2007, 22:36
Цитата(larabelle @  23.11.2007,  03:07 Найти цитируемый пост)
нана программо создать документ реализация и табличную часть заполнить

На всякий пожарный, как это делал в своей задаче:
Код

//Установка реквизитов в шапке документа
    //НачатьТранзакцию();
    ДР.Новый(); 
    ДР.УстановитьНовыйНомер("РП"); 
    ДР.ДатаДок     = ТекущийДокумент().ДатаДок;
    ДР.Автор       = ТекущийДокумент().Автор;
    ДР.Проект      = ТекущийДокумент().Проект;
    Фир.НайтиПоНаименованию("РязаньПластик(Основной учет)",0,1);
    ДР.Фирма       = Фир.ТекущийЭлемент();
    ДР.ЮрЛицо      = Фир.ЮрЛицо.ПолнНаименование;
    ДР.Комментарий = ТекущийДокумент().Комментарий;
    ДР.КодОперации = Текущийдокумент().КодОперации;
    ДР.ДокОснование= Текущийдокумент();     
    Скл.НайтиПоНаименованию("Основной склад(РязаньПластик)",0,1);
    ДР.Склад       = Скл.ТекущийЭлемент();
    Кон.НайтиПоНаименованию("Панов В.Л. ИП",0,1);
    ДР.Контрагент  = Кон.ТекущийЭлемент();
    ДР.Договор     = Кон.ОсновнойДоговор;
    ДР.Валюта      = Кон.ОсновнойДоговор.ВалютаВзаиморасчетов;  
    ДР.Курс           = Текущийдокумент().Курс;
    ДР.Кратность   = Текущийдокумент().Кратность;
    ДР.УчитыватьНДС= 1;
    ДР.СуммаВклНДС = 1;
    ДР.УчитыватьНП = 0;
    ДР.СуммаВклНП  = 0;
    ДР.ТипЦен      = Текущийдокумент().ТипЦен;
    ДР.ДатаОплаты  = Текущийдокумент().ДатаОплаты;
    ДР.ФлагСвертки = Текущийдокумент().ФлагСвертки;       
    
    //Показывает номер документа с помощью которого он создан автоматически (если отсутствует то создан в ручную)
    ДР.КодДокументаСоздателя = Текущийдокумент().НомерДок;
    
    //Изменить цены табличной части документа  
    СумаВзаиморасчётов = 0;
    ТЧД.ВыбратьСтроки();    
    Пока ТЧД.ПолучитьСтроку() = 1 Цикл
        
        //Определить цену текущего элемента таблицы
        Ном.НайтиЭлемент(ТЧД.Номенклатура);
        Ц.ИспользоватьВладельца(Ном.ТекущийЭлемент());
        Ц.ВыбратьЭлементы();
        ЦенаН = 0;
        Пока Ц.ПолучитьЭлемент()=1 Цикл
            Если Ц.ТипЦен.Наименование = "Закупочные" Тогда
                ЦенаН = Ц.Цена.Получить(РабочаяДата());
                Прервать;
            КонецЕсли;
        КонецЦикла;      
        
        // Определим ставку НДС
        Если ТЧД.Номенклатура.СтавкаНДС = Перечисление.СтавкиНДС.НДС18 Тогда
            ЗначениеНДС = 1.18;
        ИначеЕсли ТЧД.Номенклатура.СтавкаНДС = Перечисление.СтавкиНДС.НДС10 Тогда
            ЗначениеНДС = 1.1;
        Иначе
            ЗначениеНДС = 0;
        КонецЕсли;
        
        ТЧД.Цена           = ЦенаН*ЗначениеНДС*1.03;         //НДС + наценка 3%
        ТЧД.Сумма          = ТЧД.Цена*ТЧД.Количество; 
        
        Если ЗначениеНДС = 1.18 Тогда
            ТЧД.СуммаНДС = ТЧД.Сумма*0.152542372;
        ИначеЕсли ЗначениеНДС = 1.1 Тогда
            ТЧД.СуммаНДС = ТЧД.Сумма*0.0909090909;
        Иначе
            ТЧД.СуммаНДС = 0;
        КонецЕсли;
        СумаВзаиморасчётов = СумаВзаиморасчётов + ТЧД.Сумма;
    КонецЦикла;
    
    //Установка данных табличной части документа
    ДР.ЗагрузитьТабличнуюЧасть(ТЧД);
    ДР.СуммаВзаиморасчетов = СумаВзаиморасчётов;
    ДР.Записать(); 
    ДР.Провести();
...

Задача была, на основе текущего документа создать ещё один документ с немного другими данными.
Цитата(larabelle @  23.11.2007,  03:07 Найти цитируемый пост)
Ну и чтобы алгоритмы работали ессно - ндс, попадание в отчеты и пр.
 В данном случае я не в регистрах, не в обработке проведения ничего не менял, и соответственно алгоритм работы документа "реализация" не изменился, т.е. в регистры всё что нужно, всё попадёт и соответственно отчёты будут нормально формироваться.
Цитата(larabelle @  23.11.2007,  03:07 Найти цитируемый пост)
заполнить из таблицы .dbf или excel

Как вытаскивать данные из dbf можете почитать документации 1с там всё есть что нужно, а вытаскивать данные из excel средствами 1с, там тоже всё просто используя механизм OLE-Automation, пример которого неоднократно приводился на форуме, в том числе и мной.

PS: надеюсь вопрос решён полностью... Если нет, то как-нибудь ещё зайду завершу. Главно правильно изложить основную суть проблемы.

Автор: larabelle 25.11.2007, 23:52
Цитата(Zero @ 25.11.2007,  20:36)
Как вытаскивать данные из dbf можете почитать документации 1с 

Собсно именно это сейчас и делаю. Просто не сразу вышла на этот вариант. Много времени угрохала на попытки с txt - файлом - и потом уже подалась к родным dbf-ам. Хотя все- равно обходным маневром - потому как dbf-ы получаю из db paradox/
В общем тема если и не закрыта, то заморожена - в том смысле, что инфы имею выше крыши, пока не проработаю - вопросы задавать вроде как неприлично.
larabelle 

ps - за код спасибо.

Автор: ahito1 22.1.2010, 06:38
Помогите, такая же проблема нужно из парадоксовых таблиц сделать простой экспорт в 1с. Может есть уже готовые решения?
в языке 1с вообще не шарю.

Автор: SaschaL 28.1.2010, 08:26
У меня есть готовый экспорт значений из подобного рода базы в 1С. Вкратце оговорюсь что там программа была банковская, и я импортировал данные из неё в 1С, для синхронизации. Могу скинуть на мыло кому надо!
вот мое Sascha@74mail.ru

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)