Файлы

  • Автор темы Автор темы Vunda
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
V

Vunda

Здраствуйте мне очень нужно:
Проверить существует ли файл (например "test.ini") в папке с базой.
Если нет создать, и записать в него несколько строк ("строка 1", "строка 2", "строка 3")
Если есть прочитать значения в переменные ("перем 1", "перем 2", "перем 3")

Подскажите пожалуйста как это сделать в 8 версии.
 
Открывай конфигуратор, Справка - Поиск по справке, пишем в поле поиска слово "файл", тама находим функций работы с файлами.

Я бы хранил значения в файле в разделенными каким то символом в виде строки, например вот так aaa$bbb$ccc, записывал и читал бы из файла эту строку и разбивал её на кусочки, получая значения переменных, для этого я бы использовал объект "ИзвлечениеТекста". Ну, почитай там и выбери удобный тебе вариант.
 
Спасибо, но лутше хранить разные параметры в разних строках, оно и читабельнее будет :)
А по справках порыюсь...
Только если можне какая функцыя возвращает значение каталога, где находиться база??
 
Vunda
КаталогИБ() - возращает каталог базы!!!
Я бы разделял так: "Перем1","Перем2"
А потом:
Код:
Текст=СоздатьОбъект("Текст");
Текст.КодоваяСтраница(1);
Текст.Открыть(Каталог+ИмяФайла);
Для Сч=1 По Текст.КоличествоСтрок() Цикл
Стр=Текст.ПолучитьСтроку(Сч);
Если ПустаяСтрока(Стр)=1 Тогда
Продолжить;
КонецЕсли;	
СписокЗначенийЗагрузки.УдалитьВсе();
СписокЗначенийЗагрузки.ИзСтрокиСРазделителями(Стр);
Перем1=СокрЛП(СписокЗначенийЗагрузки.ПолучитьЗначение(1));
......
КонецЦикла;

Полный код с выбором:
Код:
Процедура кнОткрыть()
Фильтр="txt";
ИмяФайла="";
Каталог="";
Стр="Файл загрузки (*." + Фильтр + ")|*." + Фильтр + "";
Если ФС.ВыбратьФайл(0,ИмяФайла,Каталог,"Открыть файл",Стр,,)=0 Тогда
Возврат;
КонецЕсли;
ТаблицаДанных.УдалитьСтроки();
СписокЗначенийЗагрузки=СоздатьОбъект("СписокЗначений");
Текст=СоздатьОбъект("Текст");
Текст.КодоваяСтраница(1);
Текст.Открыть(Каталог+ИмяФайла);
Стр=Текст.ПолучитьСтроку(1);
СписокЗначенийЗагрузки.УдалитьВсе();
СписокЗначенийЗагрузки.ИзСтрокиСРазделителями(Стр);
Если СписокЗначенийЗагрузки.ПолучитьЗначение(1)="DataBaseForPODR_ALL:PODRAZ-NAME" Тогда
Для Сч=2 По Текст.КоличествоСтрок() Цикл
Стр=Текст.ПолучитьСтроку(Сч);
СписокЗначенийЗагрузки.УдалитьВсе();
СписокЗначенийЗагрузки.ИзСтрокиСРазделителями(Стр);
Если ПустаяСтрока(Стр)=1 Тогда
Продолжить;
КонецЕсли;	
ТаблицаДанных.НоваяСтрока();
ТаблицаДанных.Статус=НеОбработан;
ТаблицаДанных.Код=Число(СокрЛП(СписокЗначенийЗагрузки.ПолучитьЗначение(1)));
ТаблицаДанных.Наименование=СокрЛП(СписокЗначенийЗагрузки.ПолучитьЗначение(2));
Состояние("Количество записей: "+Сч);
КонецЦикла;
ТаблицаДанных.Сортировать("+Код");
КонецЕсли;	
КонецПроцедуры
 
Vunda
Конечно не катит. Вот что бывает, когда в названии темы не указана версия 1С.
КаталогИБ() работает в 7.7
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab