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 > Еще обрати внимание на первый фрагмент: там параметры записываются в стиле, принятом в типовых конфах для передачи в любые формы. Это позволяет экономить время при разработке, применяя рутинный код. И зазобрать рутинный код легче, зная заранее общую схему ;) Например: ОткрытьФорму("Отчет", ЗначениеИзФайла(ИмяВнФайла), ИмяВнОбработки); О_о | |
| Интернет-форум Краснодарского края и Краснодара |