К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Сохранение/загрузка списка значений

Гость
0 - 30.01.2013 - 22:05
Чего переклинило меня.
Надо в текстовом файле сохранить список значений, а потом его загрузить оттуда.
Сохраняю
Текст.ДобавитьСтроку(ЗначениеВСтрокуВнутр(Список))
А вот как восстановить не воткну никак.
Список=ЗначениеИзСтрокиВнутр(Текст.ПолучитьСтроку( N)) ругается



Гость
1 - 30.01.2013 - 22:13
Первая строка - ересь. Читаем ЖКК (или СП), ищем описание ЗначениеИзСтрокиВнутр()
Заодно ЗначениеВСтрокиВнутр()
Заодно ЗначениеВСтроку() и ЗначениеИзСтроки().
Гость
2 - 30.01.2013 - 22:15
+1 А так же ЗначениеВфайл() и ЗначениеИзФайла().
Гость
3 - 30.01.2013 - 22:16
1-VZ >Та я уже ЖКК на пепел искурил.
Ну не въеду.
Гость
4 - 30.01.2013 - 22:28
3-Marlboro > Въезжай. в (1), а особенно (2) есть въезд.
P.S. Объект Текст не является внутренним объеком, который можно читать поперек как глазками. Этот объект - строковый. А значит, в случае сабжа, его надо записать, а потом (в другом месте), открыть для чтения, а потом уже считывать.
Но это (в случае сабжа) совершенно лишние телодвижения.
Смотрим (2) и не выеживаемся. ;)
Гость
5 - 30.01.2013 - 22:42
4-VZ >Не-не, не надо уж совсем плохо про меня думать.
1) ЗначениеВФайл() не подойдет потому, что в файле сохраняется не только список, но и ряд других параметров.
2) Естественно, объект Текст у меня используется сначала для записи файла, а потом для его чтения.
(Типа все настройки обработки пишутся в ini-файл, а при открытии оттуда читаются)
Все нормально работает, только со списком значений бьюсь.
Гость
6 - 30.01.2013 - 22:59
5-Marlboro > Вот тебе два кусочечка колбаски:
1. Записываем:
Параметры.ДобавитьЗначение(НачДата,"НачДата");
Параметры.ДобавитьЗначение(КонДата,"КонДата");
Параметры.ДобавитьЗначение("Документ.ПеречислениеН ДФЛвБюджет","Описание");
Параметры.ДобавитьЗначение(ЗначениеВСтрокуВнутр(ТД оков),"Таблица");
ЗначениеВФайл(СокрП(ФайлВыгрузки),Параметры);


2. Читаем:
Параметры = СоздатьОбъект("СписокЗначений");

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

ИмяФайла = СокрЛП(ФайлВыгрузки);
Если ПустоеЗначение(ИмяФайла)=1 Тогда
Предупреждение("Не указан файл выгрузки!");
Возврат;
Иначе
Если ФС.СуществуетФайл(ИмяФайла)=0 Тогда
Предупреждение("Указанный файл выгрузки не найден!");
Возврат;
КонецЕсли;

Параметры = ЗначениеИзФайла(СокрП(ФайлВыгрузки));
НачДата = Параметры.Получить("НачДата");
КонДата = Параметры.Получить("КонДата");
Описание = Параметры.Получить("Описание");
Если ПустаяСтрока(Описание)=1 Тогда
Предупреждение("Неверный формат файла загрузки!",30);
Возврат;
ИначеЕсли Найти(ВРЕГ(Описание),"ДОКУМЕНТ.")=0 Тогда
Предупреждение("Файл выгрузки не содержит описания документов.",30);
Возврат;
КонецЕсли;
ВидДокумента = СокрП(Сред(Описание,10));
Если Метаданные.Документ(ВидДокумента).Выбран()=0 Тогда
Предупреждение("В данной конфигурации нет документа """+ВидДокумента+"""");
Возврат;
КонецЕсли;
ПредставлениеДока = Метаданные.Документ(ВидДокумента).Представление();

ТДоков = ЗначениеИзСтрокиВнутр(Параметры.Получить("Таблица" ));
Если ТипЗначенияСтр(ТДоков)="ТаблицаЗначений" Тогда
Если ТДоков.КоличествоКолонок()=0 Тогда
Предупреждение("Переданный файл содержит пустую таблицу!",30);
Возврат;
ИначеЕсли ТДоков.КоличествоСтрок()=0 Тогда
Предупреждение("Переданный файл не содержит документов для переноса!",30);
Возврат;
КонецЕсли;
Иначе
сообщить("тДоков имеет значение """+ТипЗначенияСтр(ТДоков)+"""");
Возврат;
КонецЕсли;
КонецЕсли;
Гость
7 - 30.01.2013 - 23:12
6-VZ >Принимается. Спасибо. Возможно, использую как вариант.
Но мне все таки интересно - можно ли сохранить/прочитать список значений через текстовый файл с использованием ЗначениеВСтрокиВнутр/ЗначениеИзСтрокиВнутр ?
Гость
8 - 30.01.2013 - 23:29
7-Marlboro > Можно. Но это плохое кунфу. Лучшее - как в (6). Можно загрузить/выгрузить дерево с ветками СЗ и ТЗ одним бабахом. Причем любой СЗ может содержать внутри СЗ и ТЗ. А любая ТЗ может включать в своих ячейках и СЗ, и ТЗ.
И это - более универсально для [рекурсивной] распаковки.
Гость
9 - 31.01.2013 - 00:01
8-VZ >Убедил.
Я завсегда за правильный подход к любому делу.
Гость
10 - 31.01.2013 - 00:32
9-Marlboro > Еще обрати внимание на первый фрагмент: там параметры записываются в стиле, принятом в типовых конфах для передачи в любые формы. Это позволяет экономить время при разработке, применяя рутинный код. И зазобрать рутинный код легче, зная заранее общую схему ;)
Например:
ОткрытьФорму("Отчет", ЗначениеИзФайла(ИмяВнФайла), ИмяВнОбработки);
О_о


К списку вопросов






Copyright ©, Все права защищены