Не удается занести в массив

1. waitklassik 15.02.19 14:24 Сейчас в теме
Подскажите как быть код отрабатывает:


МассивФаилов = НайтиФайлы("C:\sp\", "*.txt");
Текст = Новый ТекстовыйДокумент;
Для Каждого Фаил из МассивФаилов Цикл
Текст.Прочитать(Фаил.ПолноеИмя);
Для НомерСтроки = 1 по Текст.КоличествоСтрок() Цикл
Стр = Текст.ПолучитьСтроку(НомерСтроки);
Сообщить(Стр);
Если НомерСтроки=4 Тогда // тут на 4 строке файла прерывает принудительно цикл
Прервать;
КонецЕсли;
КонецЦикла;
КонецЦикла;

выводит все строки в документах но не получается загнать в массив и разложить
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 15.02.19 14:28 Сейчас в теме
(1) Опишите, пожалуйста, что подразумевается под фразой "загнать в массив и разложить"?
alex-l19041; +1
3. waitklassik 15.02.19 14:34 Сейчас в теме
(2)код отрабатывает выводит список строк вот в таком виде 11111-11111-11111-1111 как теперь эти строки разделить на отдельные части и заполнить ими массив?
+
5. dhurricane 15.02.19 14:35 Сейчас в теме
(3) Например так:
Результат = СтрРазделить(ИсходнаяСтрока, "-");
Release; +1
6. YannikAlx 43 15.02.19 14:36 Сейчас в теме
(3)Вместо Сообщить(Стр); примените присвоение элементу массива как минимум.
+
4. YannikAlx 43 15.02.19 14:34 Сейчас в теме
(1)
не получается загнать в массив и разложить

В каком месте вашей программы вы пытаетесь это сделать?
Ваш единственный массив МассивФаилов
прекрасно отрабатывает с ваших же слов...
+
7. waitklassik 15.02.19 14:45 Сейчас в теме
(4)мне нужно разложить полученные строки на части и если первые 4 цифры совпали с цифрами в документе 1с заполнить реквизиты в документе оставшимися частями
+
8. waitklassik 15.02.19 14:50 Сейчас в теме
(4)туплю код работает. Но я не много не так задал вопрос по запросу выводится порядка 20 строк как мне сравнить первые цифры до - и если эти цифры совпадают с цифрами в документе 1с тогда разделить строку
+
9. dhurricane 15.02.19 14:54 Сейчас в теме
(8) Получить первые 4 символа из строки:
Результат = Лев(ИсходнаяСтрока, 4);

Найти все документы с такими же символами:
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|   Ссылка
|ИЗ
|   Документ.МойДокумент
|ГДЕ
|   Номер ПОДОБНО &СтрокаПоиска";

СтрокаПоиска = Лев(ИсходнаяСтрока, 4) + "%";
Запрос.УстановитьПараметр("СтрокаПоиска", СтрокаПоиска);

МассивСсылок = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку(0);
Показать
+
10. waitklassik 15.02.19 15:12 Сейчас в теме
(9)не совсем понял. мы получаем запросом строки вида:
1111-1111-1111-1111
2222-2222-2222-2222
3333-3333-3333-3333

дальше нужно сравнить первые 4 цифры каждой строчки и если они совпадают с данными в документе тогда заполнить реквизиты в документе частями выбранной строчки
+
14. Release 15.02.19 15:40 Сейчас в теме
Вам уже почти все написали в (9):
Запрос = Новый Запрос;
Запрос.Текст = 
"ВЫБРАТЬ
|   Ссылка
|ИЗ
|   Документ.МойДокумент
|ГДЕ
|   Номер ПОДОБНО &СтрокаПоиска";

МассивЧастей = СтрРазделить(ИсходнаяСтрока, "-");
СтрокаПоиска = МассивЧастей[0] + "%";

Запрос.УстановитьПараметр("СтрокаПоиска", СтрокаПоиска);
ВыборкаСсылок = Запрос.Выполнить().Выбрать();

Пока ВыборкаСсылок.Следующий() Цикл
     ДокОбъект = ВыборкаСсылок.Ссылка.ПолучитьОбъект();

     ДокОбъект.Рекв1 = МассивЧастей[1];
     ДокОбъект.Рекв2 = МассивЧастей[2];
     ДокОбъект.Рекв3 = МассивЧастей[3];

     ДокОбъект.Записать();
КонецЦикла;
Показать
+
11. YannikAlx 43 15.02.19 15:18 Сейчас в теме
Ну воистину разговор немого со слепым о прелестях картин Шишкина!

Уже исписались тут а ясности что и с чем нужно сравнить нет ни у кого!
совпадают с данными в документе

В каком докумете?
Какие реквизиты и опять же какого документа вы заполнить хотите?

Приведите наконец весь текст вашей программы , может поможем.
+
13. waitklassik 15.02.19 15:29 Сейчас в теме
(11)допусти есть документ1 в нем есть реквизит номер нужно что бы если номер совпадает с первыми 4 цифрами из строки полученной запросом заполнились реквизиты 1,2,3 документа1 частями строки совпавшей с номером
+
16. dhurricane 15.02.19 15:49 Сейчас в теме
(13) Продолжаем угадывать :-)
Для каждого ИсходнаяСтрока Из МассивСтрок Цикл
	
	Если СтрНачинаетсяС(Документ1.Номер, Лев(ИсходнаяСтрока,4)) Тогда
	
		ЧастиСтроки = СтрРазделить(ИсходнаяСтрока, "-");
		
		Документ1.Реквизит1 = ИсходнаяСтрока[1];
		Документ1.Реквизит2 = ИсходнаяСтрока[2];
		Документ1.Реквизит3 = ИсходнаяСтрока[3];
		
		Прервать;
		
	КонецЕсли;
	
КонецЦикла;
Показать
+
17. YannikAlx 43 15.02.19 15:52 Сейчас в теме
(16) Я всегда удивлялся , почему у нас так популярны Что-Где_Когда , Поле Чудес, Кто хочет стать миллионером....
))))))))))))))
+
19. waitklassik 15.02.19 16:25 Сейчас в теме
вроде как работает но возник вопрос а если будет (Лев(ИсходнаяСтрока,4)) не 4 знака а 5 или 6 как это прописать?
+
18. YannikAlx 43 15.02.19 15:56 Сейчас в теме
(13) напиши свой текст программы - мы скорректируем и поправим , если не будет работать...
+
12. YannikAlx 43 15.02.19 15:27 Сейчас в теме
Поймите, чем четче будет ваш вопрос , тем проще на него ответить, и тем яснее вам будет сам ответ.
Если же вы вывалили весь сумбур своих мыслей, никак их не организовав , еще сам не осознавая что и к чему, понять еще кому-то всю эту кашу очень трудно...
+
15. Release 15.02.19 15:49 Сейчас в теме
Если номер документа выглядит как 000000ХХХХ, где Х - это цифра, то строку:
СтрокаПоиска = МассивЧастей[0]  + "%";

нужно заменить на:
СтрокаПоиска = "%" + МассивЧастей[0];
+
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот