|
Как из массива данных взять информацию? 🠗 (PR 29.09.2011 10:37) | ☑ | ||
---|---|---|---|---|
0
Blakangelos
29.09.11
✎
10:28
|
Как из массива данных взять информацию номер,инн,Имя Фамилия и т.д и переносить в справочник физические лица.
Code Процедура КнопкаВыполнитьНажатие(Кнопка) // Вставить содержимое обработчика. КонецПроцедуры Процедура ИмяФайлаНачалоВыбора(Элемент, СтандартнаяОбработка) // Отключение стандартной обработки СтандартнаяОбработка = Ложь; // Выбор файла Microsoft Excel ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ВыборФайла.Фильтр = "Документ Excel (*.txt)|*.txt"; ВыборФайла.ПроверятьСуществованиеФайла = Истина; ВыборФайла.ПолноеИмяФайла = ИмяФайла; Выбор = ВыборФайла.Выбрать(); Если НЕ Выбор Тогда Возврат; КонецЕсли; ИмяФайла = ВыборФайла.ВыбранныеФайлы[0]; КонецПроцедуры Процедура ЧтениеТХТФайла(Элемент) // Проверка на наличие имени файла Если ПустаяСтрока(ИмяФайла) Тогда Предупреждение("Для запуска обработки необходимо предварительно выбрать файл данных."); Возврат; КонецЕсли; // Открыть файл, создать текстовый документ, прочитать ПотокСтрок = ПолучитьПотокЧтенияСтрок(ИмяФайла); // Очистить предыдущие значения ТаблицаДокумента.Очистить(); ТаблицаДокумента.Колонки.Очистить(); // Создать колонки табличного документа ТаблицаДокумента.Колонки.Добавить("Номер",,"Номер",25); ТаблицаДокумента.Колонки.Добавить("ДатаСсоздания",,"ДатаСсоздания",25); ТаблицаДокумента.Колонки.Добавить("ДатаПроведения",,"ДатаПроведения",25); ТаблицаДокумента.Колонки.Добавить("СуммарнаяЦена",,"СуммарнаяЦена",25); ТаблицаДокумента.Колонки.Добавить("ССС",,"ССС",25); ТаблицаДокумента.Колонки.Добавить("ФФФ",,"ФФФ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫЫ",,"ЫЫЫ",25); ТаблицаДокумента.Колонки.Добавить("й",,"й",25); ТаблицаДокумента.Колонки.Добавить("йй",,"йй",25); ТаблицаДокумента.Колонки.Добавить("ЫЫчЫ",,"ЫЫчЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫччЫ",,"ЫЫччЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫчччЫ",,"ЫЫчччЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫччччЫ",,"ЫЫччччЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫчччччЫ",,"ЫЫчччччЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫччччччЫ",,"ЫЫччччччЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫчччччччЫ",,"ЫЫчччччччЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫччччччччЫ",,"ЫЫччччччччЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫяЫ",,"ЫЫяЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫяяЫ",,"ЫЫяяЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫяяяЫ",,"ЫЫяяяЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫяяяяЫ",,"ЫЫяяяяЫ",25); ТаблицаДокумента.Колонки.Добавить("ЫЫяяяяяЫ",,"ЫЫяяяяяЫ",40); ТаблицаДокумента.Колонки.Добавить("ЫЫфЫ",,"ЫЫфЫ",70); //ТаблицаДокумента.Колонки.Добавить("ЫЫффЫ",,"ЫЫффЫ",70); //ТаблицаДокумента.Колонки.Добавить("ЫЫфффЫ",,"ЫЫфффЫ",70); //ТаблицаДокумента.Колонки.Добавить("ЫЫффффЫ",,"ЫЫффффЫ",25); // Последовательное чтение строк текстового файла КоличествоСтрок = ПотокСтрок.КоличествоСтрок(); Для Строка = 1 По КоличествоСтрок Цикл // Обработка нажатия Ctrl + Break ОбработкаПрерыванияПользователя(); // Чтение строки из файла тхт / csv СтрокаИзФайла = ПотокСтрок.ПолучитьСтроку(Строка); // Разбор строки в массив, используя в качествен символа-разделителя "|" МассивСтрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(СтрокаИзФайла,";"); // Добавить данные в табличную часть экранной формы Стр=ТаблицаДокумента.Добавить(); Стр.Номер = Строка; Стр.ДатаСсоздания = МассивСтрок[0]; Стр.ДатаПроведения = МассивСтрок[2]; СТр.ЫЫччЫ = МассивСтрок[9]; Стр.СуммарнаяЦена = МассивСтрок[1]; СТр.ССС = МассивСтрок[3]; СТр.ФФФ = МассивСтрок[4]; СТр.ЫЫЫ = МассивСтрок[5]; СТр.й = МассивСтрок[6]; СТр.йй = МассивСтрок[7]; СТр.ЫЫчЫ = МассивСтрок[8]; СТр.ЫЫчччЫ = МассивСтрок[10]; СТр.ЫЫччччЫ = МассивСтрок[11]; СТр.ЫЫчччччЫ = МассивСтрок[12]; СТр.ЫЫччччччЫ = МассивСтрок[13]; СТр.ЫЫчччччччЫ = МассивСтрок[14]; СТр.ЫЫччччччччЫ = МассивСтрок[15]; СТр.ЫЫяЫ = МассивСтрок[16]; СТр.ЫЫяяЫ = МассивСтрок[17]; СТр.ЫЫяяяЫ = МассивСтрок[18]; СТр.ЫЫяяяяЫ = МассивСтрок[19]; СТр.ЫЫяяяяяЫ = МассивСтрок[20]; СТр.ЫЫфЫ = МассивСтрок[21]; //СТр.ЫЫффЫ = МассивСтрок[22]; //СТр.ЫЫфффЫ = МассивСтрок[23]; //СТр.ЫЫффффЫ = МассивСтрок[24]; // Отобразить информацию о ходе выполнения обработки Состояние("Обработка строки файла : " + "строка " + Строка + " из " + КоличествоСтрок); КонецЦикла; // Отобразить результаты загрузки в форме элемента ЭлементыФормы.ТаблицаДокумента.Значение = ТаблицаДокумента; ЭлементыФормы.ТаблицаДокумента.СоздатьКолонки(); КонецПроцедуры // ЧтениеTXTФайла(Элемент) // Функция "расщепляет" строку на подстроки, используя заданный // разделитель. Разделитель может иметь любую длину. // Если в качестве разделителя задан пробел, рядом стоящие пробелы // считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр // игнорируются. // Например, // РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов, // три из которых - пустые строки, а // РазложитьСтрокуВМассивПодстрок(" ку му", " ") возвратит массив значений из двух элементов // // Параметры: // Стр - строка, которую необходимо разложить на подстроки. // Параметр передается по значению. // Разделитель - строка-разделитель, по умолчанию - запятая. // // // Возвращаемое значение: // массив значений, элементы которого - подстроки // Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт МассивСтрок = Новый Массив(); Если Разделитель = " " Тогда Стр = СокрЛП(Стр); Пока Истина Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Иначе ДлинаРазделителя = СтрДлина(Разделитель); Пока Истина Цикл Поз = Найти(Стр,Разделитель); Если Поз=0 Тогда МассивСтрок.Добавить(Стр); Возврат МассивСтрок; КонецЕсли; МассивСтрок.Добавить(Лев(Стр,Поз-1)); Стр = Сред(Стр,Поз+ДлинаРазделителя); КонецЦикла; КонецЕсли; КонецФункции // глРазложить Функция ПолучитьПотокЧтенияСтрок(Файл) Попытка // Используется для доступа к параметрам файлов или каталогов. ТекстовыйФайл = Новый Файл(Файл); Если ТекстовыйФайл.Существует() = Ложь Тогда Сообщить("Файла "+Файл+" не существует!"); Возврат Неопределено; КонецЕсли; // Текстовый документ предназначен для работы с текстами. // Объект позволяет получать и сохранять текст в файле, // работать со строками ПотокЧтенияСтрок = Новый ТекстовыйДокумент(); ПотокЧтенияСтрок.Прочитать(Файл); Исключение Сообщить("Файл не прочитан.", СтатусСообщения.Внимание); Сообщить(ОписаниеОшибки()); Возврат Неопределено; КонецПопытки; // Возвращает текст, извлеченный из файла Возврат ПотокЧтенияСтрок; КонецФункции // ПолучитьПотокЧтенияСтрок |
|||
1
Jstunner
29.09.11
✎
10:29
|
поле, за полем
|
|||
2
Пол Ньюман
29.09.11
✎
10:29
|
Спасибо, очень ценная и полезная информация, сильно не хватало в работе. Оставьте веб-кошелек, скину 100 евро в знак благодарности
|
|||
3
zak555
29.09.11
✎
10:30
|
использовать серелизацию ?
|
|||
4
PR
29.09.11
✎
10:30
|
(0) Это вопрос или ответ?
|
|||
5
Blakangelos
29.09.11
✎
10:31
|
Вопрос
|
|||
6
Blakangelos
29.09.11
✎
10:33
|
у меня есть таблица и как от туда брать данные и ложить в новый созданный элемент справочника физические лица.
|
|||
7
PR
29.09.11
✎
10:33
|
(6) А что говорит документация?
|
|||
8
Blakangelos
29.09.11
✎
10:33
|
???
|
|||
10
Blakangelos
29.09.11
✎
10:34
|
тоесть?
|
|||
11
poligraf
29.09.11
✎
10:34
|
(6) ты применительно к 1С или вообще?
Вообще - Вирт, очень доступно про массивы, сортировки и т.д. написал. Жду 100 евро |
|||
12
Goggy
29.09.11
✎
10:34
|
(7) Ашоито? )
|
|||
13
PR
29.09.11
✎
10:35
|
(8) Ты с полом-то определилось, создание?
|
|||
14
zak555
29.09.11
✎
10:35
|
Пол: Женский
|
|||
15
andrewks
29.09.11
✎
10:35
|
могу только одно сказать:
ЫЫффЫ |
|||
16
zak555
29.09.11
✎
10:35
|
(13) так я всё верно изложил
|
|||
17
SeraFim
29.09.11
✎
10:35
|
(11) предлагаешь вирт за 100 евро???))
|
|||
18
Blakangelos
29.09.11
✎
10:36
|
что сложно подсказать?
|
|||
19
Goggy
29.09.11
✎
10:36
|
тяпница близиццо :)
|
|||
20
poligraf
29.09.11
✎
10:36
|
(17) Школьники...
(18) так вопроса не было |
|||
21
PR
29.09.11
✎
10:36
|
(18) Подсказываю. Тебе нужно начать читать документацию. С самого начала.
|
|||
22
Goggy
29.09.11
✎
10:38
|
(21) ну судя по ёлочкам, которые он текстом рисует ему на количество строк платят, так что документация только уменьшит ему з/п :)
|
|||
23
PR
29.09.11
✎
10:38
|
(18) Ты смотри, с девушек обычно просят фото вперед :))
|
|||
24
andrewks
29.09.11
✎
10:38
|
ответ на сабж:
ИмяМас[Индекс] |
|||
25
sda553
29.09.11
✎
10:39
|
Для ы=1 по МассивСтрок.Количество()-1 Цикл
Стр[ТаблицаДокумента.Колонки[ы].Имя]=МассивСТрок[ы]; КонецЦикла; |
|||
26
poligraf
29.09.11
✎
10:40
|
(25) "Для Каждого" более кошерно:)
|
|||
27
andrewks
29.09.11
✎
10:40
|
(25) почему с единицы?
|
|||
28
sda553
29.09.11
✎
10:41
|
(27) недоспал потому что, с нуля конечно
|
|||
29
Blakangelos
29.09.11
✎
10:59
|
Для ы=1 по МассивСтрок.Количество()-1 объясните первую строчку не пойму ???
|
|||
30
Blakangelos
29.09.11
✎
11:00
|
АУ есть живые?
|
|||
31
Blakangelos
29.09.11
✎
11:03
|
1 2 3
A- Имя |Фамилия|Отчество B- DEn |Denisov|Denisovic C- Ivan|Ivanovi|Ivanov |
|||
32
Blakangelos
29.09.11
✎
12:06
|
НАРОД ПОМОГИТЕ АУУУУУУ
|
|||
33
poligraf
29.09.11
✎
12:36
|
(29) Что там не понятно?
Конструкция цикла? Или почему "ы" должно быть равно 0? |
|||
34
Blakangelos
29.09.11
✎
13:53
|
да почему Ы=0???
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |