Бухгалтер і комп'ютер.П`ятниця, 29.03.2024, 06:50

Вітаю Вас Гість | RSS
Головна | Статті | Вхід
Меню сайту

Категорії каталога
Бухгалтер і комп'ютер [8]
Все що потрібно бухгалтерам для роботи за комп'ютером
Програмування на 1С [9]
Все що стосується програмування бухгалтерських програм "1С" версій 7.7 і 8.1.

Друзі сайту

Головна » Статті » Програмування на 1С


Універсальний експорт / імпорт dbf для 1С 7.7(Через таблицю значень).

Методика полягає в тому що в 1С ,мені наприклад, зручніше працювати з Таблицею Значень ніж з

DBF файлом по багатьох причинах.

 

Універсальність обробки полягає в тому, що при імпорті DBF формується Таблиця Значень з типами полів і структурою що повністю відповідають файлу з якого зачитуємо дані.

 

При експорті, все навпаки, потрібно в 1С сформувати Таблицю Значень з назвами і типами полів такими як потрібна структура майбутнього DBF файлу.

 

 

//*******************************************

// Переносить таблицю значень ТЗ в ДБФ файл НазвиКолонокТЗ = НазвамПолівДБФ

// SVB (kreont@meta.ua)

Функция ТаблицюЗначеньВФайлДБФ(Каталог,ІмяФайлу,ТЗ,Кодування = 0)

            Попытка

                        ИмяФайла = СокрЛП(Каталог) + ІмяФайлу + ".dbf";

                       

                        ДБФ=СоздатьОбъект("XBase");

                        ДБФ.КодоваяСтраница(Кодування);

                       

                        КількістьКолонок = ТЗ.КоличествоКолонок();

                        Для і =1 по КількістьКолонок Цикл

                                   ТипДаних = "";

                                   ДовжинаДаних = 0;                          

                                   ТочністьДаних = 0;

                                   НазваКолонки = ТЗ.ПолучитьПараметрыКолонки(і,ТипДаних,ДовжинаДаних, ТочністьДаних);

                                   Если ТипДаних = "Число" Тогда

                                               ТипДанихЧислом = "N";

                                   ИначеЕсли ТипДаних = "Строка" Тогда

                                               ТипДанихЧислом = "S";

                                   ИначеЕсли ТипДаних = "Дата" Тогда

                                               ТипДанихЧислом = "D";

                                   Иначе

                                               ТипДанихЧислом = "S";

                                               ДовжинаДаних = 100;

                                   КонецЕсли;

                                   ДБФ.ДобавитьПоле(НазваКолонки,ТипДанихЧислом,ДовжинаДаних,ТочністьДаних);

                        КонецЦикла;   

 

                        ДБФ.СоздатьФайл(ИмяФайла);

           

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

                        КолКолонок = ТЗ.КоличествоКолонок();

                        Пока ТЗ.ПолучитьСтроку() = 1 Цикл

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

                                               Для і = 1 по КількістьКолонок Цикл

                                                           ДБФ.УстановитьЗначениеПоля(СокрЛП(ТЗ.ПолучитьПараметрыКолонки(і)),ТЗ.ПолучитьЗначение(ТЗ.НомерСтроки,і));

                                               КонецЦикла;

                                   ДБФ.Записать();

                        КонецЦикла;

                       

                        ДБФ.ЗакрытьФайл();

                       

                        Возврат 0; //Успішно записано

            Исключение 

                        Сообщить("Помилка створення " + ИмяФайла + " при записі:");

                        Сообщить(ОписаниеОшибки());

                        Возврат 1;

            КонецПопытки;

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

 

 

 

 

 

 

//*******************************************

// Переносить ДБФ в Таблицю значень НазвиКолонокТЗ = НазвамПолівДБФ

// SVB (kreont@meta.ua)

Функция ДБФвТаблицюЗначень(Каталог,ІмяФайлу,Кодування = 0)

            Попытка                                     

                        ИмяФайла = СокрЛП(Каталог) + ІмяФайлу;

                        ДБФ=СоздатьОбъект("XBase");

                        ДБФ.ОткрытьФайл(ИмяФайла);

                        ДБФ.КодоваяСтраница(Кодування);

                       

                       

                        ТЗ = СоздатьОбъект("ТаблицаЗначений");

                       

                        КількістьКолонок = ДБФ.КоличествоПолей();

                       

                        Для і = 1 по КількістьКолонок Цикл   

                                   НазваКолонки = "";

                                   ТипДаних = "";

                                   ТипДанихЧислом = 0;

                                   ДовжинаДаних = 0;                          

                                   ТочністьДаних = 0;

                                   ДБФ.ОписаниеПоля(і,НазваКолонки,ТипДанихЧислом,ДовжинаДаних,ТочністьДаних);

                                   Если ТипДанихЧислом = 1 Тогда

                                               ТипДаних = "Число";

                                   ИначеЕсли ТипДанихЧислом = 2 Тогда

                                               ТипДаних = "Строка";

                                   ИначеЕсли ТипДанихЧислом = 3 Тогда

                                               ТипДаних = "Дата";

                                   Иначе

                                               ТипДаних = "Строка";

                                               ДовжинаДаних = 255; // Для невизначених типів полів, пробуєм зачитати те що є як тип стрічка

                                   КонецЕсли;

                                   //Сообщить(НазваКолонки + ",Тип:" + ТипДаних + ", Довжина:" + ДовжинаДаних + ", Точність:" + ТочністьДаних);

                                   ТЗ.НоваяКолонка(НазваКолонки,ТипДаних,ДовжинаДаних,ТочністьДаних,НазваКолонки);

                        КонецЦикла;   

                       

                       

                        ДБФ.Первая();

                        Пока ДБФ.ВКонце() = 0 Цикл

                                   ТЗ.НоваяСтрока();

                                   Для і = 1 по КількістьКолонок Цикл

                                               ТЗ.УстановитьЗначение(ДБФ.НомерЗаписи(),і,ДБФ.ПолучитьЗначениеПоля(і));

                                   КонецЦикла;

                                   ДБФ.Следующая();                            

                        КонецЦикла;

                       

                        ДБФ.ЗакрытьФайл();

                       

                        Возврат ТЗ; //Успішно зачитано

            Исключение 

                        Сообщить("Помилка отримання ТЗ з " + ИмяФайла);

                        Сообщить(ОписаниеОшибки());

                        Возврат 0;

            КонецПопытки;

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

 

 

 

Приклад обробки для тестування, хто сумнівається в простоті (достатньо вставити в новий зовнішній звіт):

 

Процедура Сформировать()

 

            НазваФайлу = "";

            РобочийКаталог = "";

           

            ТЗДБФ = СоздатьОбъект("ТаблицаЗначений");

           

            Если ФС.ВыбратьФайл(0,НазваФайлу,РобочийКаталог,"Тест відкриття DBF файлу","DBF-файли (*.dbf)|*.dbf") = 1 Тогда

                        ТЗДБФ = ДБФвТаблицюЗначень(РобочийКаталог,НазваФайлу,КодуванняДБФ);         

                        Если ПустоеЗначение(ТЗДБФ) = 0 Тогда

                                  

                                   // Дивимся на екрані що зачитали

                                   ТЗДБФ.ВыбратьСтроку();

                                  

                                   // Запис ТЗ під іншим іменем (TestZap0) наприклад в той же каталог

                                   ТаблицюЗначеньВФайлДБФ(РобочийКаталог,"TestZap0",ТЗДБФ);

                                  

                        Иначе

                                   // Помилка отримання ДБФ в ТЗ

                        КонецЕсли;     

            КонецЕсли;     

           

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

Категорія: Програмування на 1С | Додав: _Admin_ (19.01.2009) | Автор: Василий
Переглядів: 10505 | Коментарі: 40 | Рейтинг: 5.0/3 |
Всього коментарів: 2
2 Infotes19j  
0
http://www.riesemedia.de/przeprowadzki/moja-pierwsza-przeprowadzka
Purchasing a used or new auto might be a tough approach should you not know what you will be undertaking. By educating yourself about vehicle store shopping before you decide to go to the car dealership, you may make stuff simpler on your own. The following advice may help your following buying getaway be pleasurable.

Always take a auto technician alongside when shopping for a whole new automobile. Automobile merchants are notorious for selling lemons and you may not desire to be their up coming patient. When you can not get a auto technician to think about autos with you, at least make sure that you have him take a look at closing choice before you purchase it.

Know your limits. Before you start buying for your next car or van, choose how much you can afford to spend, and stick to it. Don't forget about to include desire for your calculations. You are likely to shell out close to twenty percent as a payment in advance also, so be ready.

Just before attending a car dealership, know what kind of automobile you would like. Research all you options before shopping so you can evaluate which works the best for your budget and loved ones needs. Do your research to find out exactly how much you ought to pay for a possible vehicle.

Prior to signing any contract take the time to go through every single range, for example the small print. If you find nearly anything detailed you do not fully grasp, do not indicator until you get an solution that you just fully grasp. Unsavory salesmen may use a legal contract to place several costs that have been not reviewed.

When you maintain the preceding guidance at heart next time which you go purchasing a auto, you will be very likely to get a good offer. Buying a automobile does not have as a frustration. Only use the information with this post and you may get the auto you want in a excellent value.

1 JosephdOn  
0
Титан гель для увеличения
https://www.youtube.com/watch?v=ox8H0GShSCo
И то, что я не сказал сокурсникам, хочу рассказать в своем отзыве. https://www.youtube.com/watch?v=1aNjNEn9zug Не так давно в продаже появилось средство, позволяющее в короткие сроки увеличить размеры полового члена - Титан Гель . https://www.youtube.com/channel/UCW-0X0ufYK685Wa6MqknPaw Титан Гель содержит в себе горянку, триэтаноламин, эластин и лишайник, чертополох, маку перуанскую, гидролизат протеинов. https://www.youtube.com/watch?v=QUzTiXrK8mw
https://www.youtube.com/watch?v=XqiNyZ4ypkk
https://www.youtube.com/watch?v=gbQMI3ZuZ6E
Перед половым контактом следует принять душ. Как использовать Титан гель в комплексе с упражнениями, освещает подробная инструкция по его применению . Другое название компонента - эпимедиум. Экстракт лишайника, который поступает в организм вместе с препаратом для увеличения члена, активизирует кровообращение в области гениталий без перенапряжения тазовых мышц. Их женщины из-за этого не получают оргазм, отчего случаются измены и расставания. https://www.youtube.com/watch?v=v2C3et6A5L4 Интимная жизнь обрела новый смысл. Но открыл один сайт, второй, третий, нашел форумы, где обсуждался этот препарат, и понял, что стоит таки попробовать в последний раз. У некоторых мужчин, по их словам, проигрывают все характеристики органа. Первые результаты у мужчин от применения крема наблюдаются на 1-й неделе качество интимной жизни улучшается сразу, а прирост к 7 дню составляет 2 см.

Ім`я *:
Email *:
Код *:

Статистика


Copyright MyCorp © 2024