|
Загрузка данных из табличных документов | ☑ | ||
---|---|---|---|---|
0
fleur
19.10.12
✎
10:55
|
Одно поле вычисляется, для его вычисления считывается не маленький текстовый файл, как сделать так чтобы он не считывался на каждой строчке табличного документа, а только один раз? Как можно указать, что он должен считываться на первой строчке?
|
|||
1
fleur
19.10.12
✎
11:00
|
как прервать процесс считывания на каждой строке из 1300 текстового файла из 1300 строк?
|
|||
2
fleur
19.10.12
✎
11:05
|
Из-за этого принтер не печатает, sos
|
|||
3
fleur
19.10.12
✎
11:20
|
Видимо фотку надо поменять
|
|||
4
Infsams654
19.10.12
✎
11:21
|
ОбработкаПрерыванияПользователя() не ?
|
|||
5
fleur
19.10.12
✎
11:21
|
Это куда и когда?
|
|||
6
fleur
19.10.12
✎
11:23
|
Видимо надо было до запуска программы или вместо запуска?
|
|||
7
ZanderZ
19.10.12
✎
11:23
|
а если его считать ДО цикла ?
|
|||
8
Infsams654
19.10.12
✎
11:24
|
(5) СП
(6) чего надо-то до запуска программы или вместо запуска? |
|||
9
fleur
19.10.12
✎
11:25
|
Обработка Вычислить выполняется на каждой строке, а куда писать то что нужно сделать до вычисления, "До записи" тоже мне кажется уже поздно
|
|||
10
fleur
19.10.12
✎
11:26
|
Сейчас надо прервать обработку как-то эту(загрузка данных ...), а считывать файл текстовый не знаю куда написать
|
|||
11
Infsams654
19.10.12
✎
11:29
|
(9), (10) - что это было ?
|
|||
12
fleur
19.10.12
✎
11:30
|
Запустила обработку, на каждой строке считывает текстовый файл, и теперь отдыхаю
|
|||
13
MSII
19.10.12
✎
11:31
|
контрол+брейк не помогает?
|
|||
14
Infsams654
19.10.12
✎
11:31
|
(12) чью обработку ?
|
|||
15
Infsams654
19.10.12
✎
11:32
|
(13) см. (4)
|
|||
16
Бледно Золотистый
19.10.12
✎
11:35
|
(1) Это надо?
Пример: Текст = Новый ЧтениеТекста("d:\win.txt", КодировкаТекста.ANSI); Стр = Текст.ПрочитатьСтроку(); Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки Сообщить(Стр); Стр = Текст.ПрочитатьСтроку(); КонецЦикла; |
|||
17
fleur
19.10.12
✎
13:32
|
(16) спасибо это уже нашла, но куда это писать?
|
|||
18
fleur
19.10.12
✎
13:36
|
если где вычислить, то делает на каждой строке, если перед записью, то уже поздно
|
|||
19
fleur
20.10.12
✎
00:56
|
Можно в таблице выбрать пустой столбец и написать там 1, дальше проверять ТекстыЯчеек[НомерСтолбца]=1? тогда загружать текстовый файл, а как-нибудь по-другому можно это сделать?
|
|||
20
zladenuw
20.10.12
✎
01:21
|
""""". АДО в РУКИ.
|
|||
21
fleur
20.10.12
✎
09:09
|
АДО - аббревиатура?
|
|||
22
milan
20.10.12
✎
10:23
|
ну сделай фунцию общего модуля, передаешь ей имя файла + чего найти, оно первый раз запоминается. да и обработку допилить 3 секунды
|
|||
23
fleur
20.10.12
✎
21:56
|
Да, но "конфигурация поставщика не редактируется", поэтому я хотела сделать все в самой обработке, может быть есть параметр номер строки, как к нему обратиться?
|
|||
24
Сияющий Асинхраль
20.10.12
✎
22:52
|
Ну считай файл один раз, запихни его содержимое в таблицу значений и дальше работай с ней. Этот вариант будет быстро работать и для варианта файла больше 2000 строк
|
|||
25
fleur
20.10.12
✎
23:50
|
Например если ФайлСчитан =Истина то не считывать файл, иначе считывать и ФайлСчитан= Истина; и это пишем в Выражении для "Вычислить" Так?
|
|||
26
kotletka
21.10.12
✎
00:00
|
я бы помог и в этот раз, но фотка не торт.. а так на закладке настройка есть кнопка "События" пощелкай по ней вдумчиво ))
|
|||
27
kotletka
21.10.12
✎
00:03
|
+ без незначительного дописывания обрабоки превать не получится
|
|||
28
fleur
21.10.12
✎
13:18
|
Проблема в том, что есть 4 места для вставки кода и они отрабатывают в таком порядке, сначала вычислить и после добавления строки и так на каждой строке, потом по одному разу перез записью, а за ней после записи. А мне нужно перед вычислить. Когда попыталась сделать как в (25), то пишет , что переменная не определена, если написать Перем ФайлСчитан, то к следующему разу значение не запомнится
|
|||
29
fleur
21.10.12
✎
23:34
|
(24) Вопрос в том, как сделать так, чтобы файл считался 1 раз , а не на каждой строчке?
|
|||
30
fleur
21.10.12
✎
23:34
|
И этот вопрос был в (0)
|
|||
31
zladenuw
22.10.12
✎
00:55
|
покажи свой велик. а там подумаю.
|
|||
32
fleur
22.10.12
✎
21:53
|
Есть поле,которое вычисляю и вот формула:
//Если Число(ТекстыЯчеек[14]) = 1 Тогда Результаты = Новый Массив; Текст = Новый ЧтениеТекста("D:\1c\Инвентаризация пробная.txt"); Стр = Текст.ПрочитатьСтроку(); Номер = 0; Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки Результаты.Добавить(Лев(Стр,13)); Сообщить(Результаты[Номер]); Номер = Номер+1; Сообщить(Стр); Стр = Текст.ПрочитатьСтроку(); КонецЦикла; //КонецЕсли; РезНом = Справочники.Номенклатура.НайтиПоНаименованию(ТекстыЯчеек[1]); Если РезНом = Справочники.Номенклатура.ПустаяСсылка() Тогда Сообщить ("Не найдена номенклатура " + ТекстыЯчеек[1]); КонецЕсли; РезХар = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(ТекстыЯчеек[2],,,РезНом); Если РезХар = Справочники.ХарактеристикиНоменклатуры.ПустаяСсылка() Тогда Сообщить (" Не найдена характеристика номенклатуры "+ТекстыЯчеек[2]); КонецЕсли; ШтрихкодСтроки=""; Штрих = РегистрыСведений.Штрихкоды; ОтборШтрих = Новый Структура("Владелец"); ОтборШтрих.Владелец = РезНом; ВыборкаШтрих = Штрих.Выбрать(ОтборШтрих); Пока ВыборкаШтрих.Следующий() Цикл Если ВыборкаШтрих.ХарактеристикаНоменклатуры = РезХар Тогда Сообщить("Штрихкод " + ВыборкаШтрих.Штрихкод); ШтрихкодСтроки = ВыборкаШтрих.Штрихкод; КонецЕсли; КонецЦикла; КоличествоФактически = 0; Для НомерЭлемента = 1 по Результаты.Количество() цикл Сообщить ("Ищем в массиве "+ Результаты[НомерЭлемента-1]+" "+ШтрихкодСтроки); Если Результаты[НомерЭлемента-1] = ШтрихкодСтроки Тогда Сообщить ("Нашла в массиве"); КоличествоФактически = КоличествоФактически+1; КонецЕсли; КонецЦикла; Сообщить("КоличествоФактически " + КоличествоФактически); //ОтборШтрих = Новый Структура(); //ОтборШтрих.Вставить("Владелец", РезНом); //ОтборШтрих.Вставить("ХарактеристикаНоменклатуры", РезХар); //ВыборкаШтрих = Штрих.Получить(ОтборШтрих); //Пока ВыборкаШтрих.Следующий() Цикл // Сообщить("Штрихкод " + ВыборкаШтрих.Штрихкод); //КонецЦикла Результат = КоличествоФактически; |
|||
33
fleur
25.10.12
✎
20:53
|
Запустила обработку загрузка данных из табличных документов и в одном поле вместо "искать" исправила на "вычислить", а формула в (32). За 6 часов отработало 50%. Самое смешное, что я выбрала не "Загрузить", а "Контроль исполнения". Кто работал с этой обработкой, меня поймет. Как можно хотя бы немного ускорить эту обработку, может убрать все "Сообщить"?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |