Форум программистов, компьютерный форум, киберфорум
1С
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/25: Рейтинг темы: голосов - 25, средняя оценка - 4.96
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
1C 8.x

Загрузить DBF в TXT

26.11.2013, 12:19. Показов 5753. Ответов 48
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста примером как можно с помощью 1С с DBF загрузить в TXT
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.11.2013, 12:19
Ответы с готовыми решениями:

Загрузить DBF файл
Всем привет. Как мне здесь уже написали 1С 7.7 не может работать с dbf файлом более 1Гб(база действително стала "гнать" когда...

Как файл Dbf загрузить в программу 1c ?
Вообщем я хочу загрузить dbf файл в 1C.. захожу в конфигуратор..нажимаю загрузить файл...выбираю этот файл.. путь к файлу вставляется в...

Загрузить txt файлы с каталога
Подскажите на пример как можно загрузить txt файлы с каталога. Как выбрать каталог это понятно, а как дальше работать с ним не понятно.

48
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
27.11.2013, 09:53  [ТС]
Студворк — интернет-сервис помощи студентам
OrkVasya, Теперь все работает.

Добавлено через 6 минут
Подскажите как быть...
Создал поле ввода1 (Имя: НазвФам) с выпадающим списком

1C
1
2
3
4
5
6
7
8
9
10
Процедура НачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
    
    СписокРегистров = Новый СписокЗначений;
    СписокРегистров.Добавить("Петров");
    СписокРегистров.Добавить("Иванов");
Результат = ВыбратьИзСписка(СписокРегистров, Элемент);
    Если Результат <> Неопределено Тогда
        Элемент.Значение = Результат.Значение;
    КонецЕсли;
    СтандартнаяОбработка = Ложь;
Создал еще одно поле ввода2 (Имя: Ном). Где нужно чтобы при изменении поле ввода1 в поле ввода2 появлялось значение. Я делаю так

1C
1
2
3
4
5
Процедура НазвРайонаПриИзменении(Элемент)
    Если НазвФам = "Петров" Тогда
        Ном = "01";
        КонецЕсли;
КонецПроцедуры
Не работает такое условие, что не так делаю?
0
о_____О
Эксперт 1С
 Аватар для OrkVasya
225 / 224 / 37
Регистрация: 19.11.2010
Сообщений: 1,061
27.11.2013, 11:27
Без понятия, у меня все работает.
А "НазвРайонаПриИзменении" вызывается?
Вложения
Тип файла: 7z ВнешняяОбработка1.7z (3.4 Кб, 3 просмотров)
1
10 / 10 / 2
Регистрация: 16.08.2013
Сообщений: 53
27.11.2013, 12:54
Помоему надо обращаться к значению в ПолеВвода :
1C
1
Ном.Значение = "01";
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
27.11.2013, 12:54  [ТС]
У вас работает по кнопки, я при изменении вызывается поле ввода1
0
о_____О
Эксперт 1С
 Аватар для OrkVasya
225 / 224 / 37
Регистрация: 19.11.2010
Сообщений: 1,061
27.11.2013, 13:17
А какая разница?
Кстати, если у вас в коде все так, как вы скинули на форум, при изменении поле ввода 1 ни фига у вас не вызывается.
А вызывается при изменении "НазвРайонаПриИзменении".
Что это - известно только вам.

Добавлено через 1 минуту
Можете сделать, например, так:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Процедура НачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
    
    СписокРегистров = Новый СписокЗначений;
    СписокРегистров.Добавить("Петров");
    СписокРегистров.Добавить("Иванов");
Результат = ВыбратьИзСписка(СписокРегистров, Элемент);
    Если Результат <> Неопределено Тогда
        Элемент.Значение = Результат.Значение;
    КонецЕсли;
 
 Если Элемент.Значение = "Петров" Тогда
        Ном = "01";
        КонецЕсли;
 
    СтандартнаяОбработка = Ложь;
уже должно работать.
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
27.11.2013, 14:17  [ТС]
Спасибо, все получилось

Добавлено через 19 минут
OrkVasya, Подскажите как подсчитать сумму колонки ЦЕНА
0
о_____О
Эксперт 1С
 Аватар для OrkVasya
225 / 224 / 37
Регистрация: 19.11.2010
Сообщений: 1,061
27.11.2013, 14:25
1C
1
Сумма = КакаятоТаблица.Итог("Цена");
Подойдет?
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
27.11.2013, 14:32  [ТС]
OrkVasya, не получилось. Как на моем примере сделать

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Процедура ЧтениеDBFФайла (Элемент)
    
    ФайлДБФ = Новый XBASE;
    ФайлДБФ.Кодировка = КодировкаXBase.OEM;
    ФайлДБФ.ОткрытьФайл(ИмяФайла);
    ФайлДБФ.Первая();
    Текст1 = Новый ТекстовыйДокумент;
    Текст1.ДобавитьСтроку("#FILESUM" + "СУМ");
    Текст1.ДобавитьСтроку("#TYPE" + " " + "7");
    Текст1.ДобавитьСтроку("#SERVICE" + " " + КодРеестра);
    Пока НЕ ФайлДБФ.ВКонце() Цикл
        ЛС = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("LSHET"));
        ФАМ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("FAM1"));
        ИМ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("FAM2"));
        ОТЧ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("FAM3"));
        ФИО = ФАМ + " " + ИМ + " " + ОТЧ;
        УЛ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("STREET"));
        ДОМ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("HOUSENOM"));
        КВ = ФайлДБФ.ПолучитьЗначениеПоля("KVART");
        КОМ = ФайлДБФ.ПолучитьЗначениеПоля("KOMN");
        САЛ = ФайлДБФ.ПолучитьЗначениеПоля("SALDO");
        САЛФ = Формат(САЛ, "ЧРД='.'");  
        СЧ = ФайлДБФ.ПолучитьЗначениеПоля("LASTCNTIND");
        СЧФ = Формат(СЧ, "ЧГ=0; ЧДЦ=4; ЧРД='.'");
        
        Если КОМ = NULL Тогда
            ПР = "-" + КОМ;
        Иначе
            ПР = "";
        КонецЕсли; 
        
        Текст1.ДобавитьСтроку(ФИО + ";" + УЛ + "," + ДОМ + "," + КВ + ПР + ";" + ЛС + "/" 
        + КодРайона + ";" + САЛФ + ";" + ";" + ";" + ";" + "100074" + ":" + ЛС + ":" + УЛ + "," + ДОМ + "," 
        + КВ + ПР + ":" + СЧФ + ":");
        
        ФайлДБФ.Следующая();
    КонецЦикла;
    ФайлДБФ.ЗакрытьФайл();
    Текст1.Записать(Файл);
    
КонецПроцедуры
0
о_____О
Эксперт 1С
 Аватар для OrkVasya
225 / 224 / 37
Регистрация: 19.11.2010
Сообщений: 1,061
27.11.2013, 14:38
Ессно, не получилось. У вас же не таблица.

В таком случае могу только предложить в цикле накапливать.
Что-то вроде:

1C
1
2
3
4
5
6
Сумма = 0;
 
Пока НЕ ФайлДБФ.ВКонце() Цикл
   Цена = Число(ФайлДБФ.ПолучитьЗначениеПоля("ПолеСЦеной"));
   Сумма = Сумма + Цена;
КонецЦикла;
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
27.11.2013, 15:00  [ТС]
OrkVasya, он выдает в каждой строчке сумму а не общую сумму по колонке ЦЕНА
0
о_____О
Эксперт 1С
 Аватар для OrkVasya
225 / 224 / 37
Регистрация: 19.11.2010
Сообщений: 1,061
27.11.2013, 15:07
Кто "он"?
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
27.11.2013, 15:46  [ТС]
OrkVasya,
Код который вы мне дали, я его прописал, выводит в каждой строке сумму, а надо вывести общую сумму по всем строкам в файле txt
0
о_____О
Эксперт 1С
 Аватар для OrkVasya
225 / 224 / 37
Регистрация: 19.11.2010
Сообщений: 1,061
27.11.2013, 16:01
Еще раз, с телепатией у меня очень плохо. Я, слава богу, не вижу ваш монитор и не могу предположить, что какая переменная у вас значит, и как вы вписали ток код, который я написал.

Приводите код, а то получается, что слон - это как большая змея.
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
27.11.2013, 16:09  [ТС]
Вот мой код

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
ФайлДБФ = Новый XBASE;
    ФайлДБФ.Кодировка = КодировкаXBase.OEM;
    ФайлДБФ.ОткрытьФайл(ИмяФайла);
    ФайлДБФ.Первая();
    Сумма = 0;
    Текст1 = Новый ТекстовыйДокумент;
                Текст1.ДобавитьСтроку("#FILESUM" + " " + "СУМ");
    Текст1.ДобавитьСтроку("#TYPE" + " " + "7");
    Текст1.ДобавитьСтроку("#SERVICE" + " " + КодРеестра);
    
    Пока НЕ ФайлДБФ.ВКонце() Цикл
        ЛС = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("LSHET"));
        ФАМ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("FAM1"));
        ИМ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("FAM2"));
        ОТЧ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("FAM3"));
        ФИО = ФАМ + " " + ИМ + " " + ОТЧ;
        УЛ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("STREET"));
        ДОМ = СокрЛП(ФайлДБФ.ПолучитьЗначениеПоля("HOUSENOM"));
        КВ = ФайлДБФ.ПолучитьЗначениеПоля("KVART");
        КОМ = ФайлДБФ.ПолучитьЗначениеПоля("KOMN");
        САЛ = ФайлДБФ.ПолучитьЗначениеПоля("SALDO");
        САЛФ = Формат(САЛ, "ЧРД='.'");
        
        СУМ = САЛФ + Сумма;
        Сообщить (СУМ);
        
        СЧ = ФайлДБФ.ПолучитьЗначениеПоля("LASTCNTIND");
        СЧФ = Формат(СЧ, "ЧГ=0; ЧДЦ=4; ЧРД='.'");
        
        Если КОМ = NULL Тогда
            ПР = "-" + КОМ;
        Иначе
            ПР = "";
        КонецЕсли;
        
        Текст1.ДобавитьСтроку(ФИО + ";" + УЛ + "," + ДОМ + "," + КВ + ПР + ";" + ЛС + "/" 
        + КодРайона + ";" + САЛФ + ";" + ";" + ";" + ";" + "100074" + ":" + ЛС + ":" + УЛ + "," + ДОМ + "," 
        + КВ + ПР + ":" + СЧФ + ":");
        
        ФайлДБФ.Следующая();
        
    КонецЦикла;
                    
    ФайлДБФ.ЗакрытьФайл();
    Текст1.Записать(Файл);

Для проверки я вывожу сообщением, но мне нужно вывести в эту строчку
1C
1
Текст1.ДобавитьСтроку("#FILESUM" + " " + СУМ);
Как вывести я пока что не понимаю, подскажите
0
о_____О
Эксперт 1С
 Аватар для OrkVasya
225 / 224 / 37
Регистрация: 19.11.2010
Сообщений: 1,061
27.11.2013, 16:24
А в чем проблема?
Перенесите эту строку в после цикла и выводите.

В вашей версии строка "СУМ = САЛФ + Сумма;" очень странна ибо "Сумма" у вас всегда равна 0.

Что-то вроде:
1C
1
2
3
4
5
6
Сумма = 0;
Пока НЕ ФайлДБФ.ВКонце() Цикл
   Сумма = Сумма + Цена; \\ здесь цена - это то, что вы достаете из строки
КонецЦикла;
 
Текст1.ДобавитьСтроку("#FILESUM" + " " + Сумма);
1
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
27.11.2013, 16:53  [ТС]
Да увидел что не так написал, но выводит все значения в строку а не плюсует их
1C
1
2
3
4
САЛ = ФайлДБФ.ПолучитьЗначениеПоля("SALDO");
        САЛФ = Формат(САЛ, "ЧРД='.'");
        Сумма = САЛФ + Сумма;
        Сообщить (Сумма);
И
1C
1
Текст1.ДобавитьСтроку("#FILESUM" + " " + Сумма);
нужно чтобы стоял самый первый в текстовом документе
0
о_____О
Эксперт 1С
 Аватар для OrkVasya
225 / 224 / 37
Регистрация: 19.11.2010
Сообщений: 1,061
27.11.2013, 17:00
Вы же на эти грабли уже наступали.
"САЛФ = Формат(САЛ, "ЧРД='.'");" - тут у вас строка, скорее всего. Приводите к числу и должно заработать.

По позиции в документе - СП вам в руки - изучайте "ТекстовыйДокумент.ВставитьСтроку()"
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
28.11.2013, 13:57  [ТС]
Подскажите, почему не выводит нулевое значение в текстовом документ

1C
1
2
3
4
5
6
7
8
Текст1 = Новый ТекстовыйДокумент;
Пока НЕ ФайлДБФ.ВКонце() Цикл
САЛ = Число(ФайлДБФ.ПолучитьЗначениеПоля("SALDO"));
Текст1.ДобавитьСтроку(САЛ);
ФайлДБФ.Следующая();
КонецЦикла;
ФайлДБФ.ЗакрытьФайл();
Текст1.Записать(Файл);
0
о_____О
Эксперт 1С
 Аватар для OrkVasya
225 / 224 / 37
Регистрация: 19.11.2010
Сообщений: 1,061
28.11.2013, 14:15
Без понятия.
Код, вроде, рабочий, на взгляд.
Отладчик что говорит? Что возвращается из "ФайлДБФ.ПолучитьЗначениеПоля("SALDO ")"?
0
 Аватар для Ermak27
4 / 4 / 0
Регистрация: 16.01.2013
Сообщений: 1,228
28.11.2013, 14:53  [ТС]
Я не понимаю как работать отладчиком. Если значение больше нуля тогда выводит, если равно нулю то пустое значение выводит.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.11.2013, 14:53

FoxPro: в программу на Delphi загрузить dbf-таблицу и эту же таблицу сохранить, как txt
Здравствуйте! Помогите, пожалуйста!!!!!!! Нужен код. В программу на Delphi загрузить dbf-таблицу и эту же таблицу сохранить как txt.

Загрузить помеченные на удаление записи из dbf
Импортирую dbf-файл VFP, используя провайдер Microsoft OLE DB Provider for Visual FoxPro Set cnn =...

Создать DBF файл и загрузить в него данные
Добрый день! Как выполнить такое задание ? Создать DBF файл. Затем, загрузить туда данный из таблицы work. Название файла...

import из txt в dbf
в visual Foxpro есть команда импорта из файла xls в dbf ,а &quot;мастером&quot; можно импортировать из файла txt. Можно ли это записать командой(из...

конвертация dbf в txt
суть такая: открываешь файл дбф и сохраняешь в txt


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru