|
Общий модуль | ☑ | ||
---|---|---|---|---|
0
fleur
26.10.12
✎
14:33
|
Выдает ошибку:"{ОбщийМодуль.Инвентаризация(24,13)}: Обнаружено логическое завершение исходного текста модуля
КонецФункции<<?>>; (Проверка: Толстый клиент (обычное приложение))" Функция РезультатыИнвентаризации(ШтрихкодСтроки) Результаты = Новый Массив; Текст = Новый ЧтениеТекста("D:\1c\Инвентаризация пробная.txt"); Стр = Текст.ПрочитатьСтроку(); Номер = 0; Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки Результаты.Добавить(Лев(Стр,13)); Сообщить(Результаты[Номер]); Номер = Номер+1; Сообщить(Стр); Стр = Текст.ПрочитатьСтроку(); КонецЦикла; КоличествоФактически = 0; Для НомерЭлемента = 1 по Результаты.Количество() цикл Сообщить ("Ищем в массиве "+ Результаты[НомерЭлемента-1]+" "+ШтрихкодСтроки); Если Результаты[НомерЭлемента-1] = ШтрихкодСтроки Тогда Сообщить ("Нашла в массиве"); КоличествоФактически = КоличествоФактически+1; КонецЕсли; КонецЦикла; Возврат КоличествоФактически; КонецФункции; |
|||
1
Kashemir
26.10.12
✎
14:35
|
Точку запятую в конце убери, гений.
|
|||
2
Happy Bear
26.10.12
✎
14:35
|
первый раз вижу точку с запятой после КонецФункции
|
|||
3
fleur
26.10.12
✎
14:40
|
Быстрее всех оказался Kashemir, спасибо
Это блиц опрос: Результат = ОбщиеМодули.Инвентаризация.РезультатыИнвентаризации(ШтрихкодСтроки); Выдает ошибку:"Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(45,13)}: Переменная не определена (ОбщиеМодули)" |
|||
4
Kashemir
26.10.12
✎
14:42
|
(3) А что такое ОбщиеМодули ?
|
|||
5
fleur
26.10.12
✎
14:47
|
Общие модули предназначены для размещения в них текстов функций и процедур, которые могут вызываться из любого другого модуля конфигурации
|
|||
6
rbcvg
26.10.12
✎
14:49
|
В юмор.
|
|||
7
Happy Bear
26.10.12
✎
14:49
|
(5) ...могут вызываться из любого другого модуля конфигурации по имени общего модуля а не через ж... т.е. не через ОбщиеМодули
|
|||
8
Kashemir
26.10.12
✎
14:50
|
(5) Жесть какая. И что СП с тобой согласно ?
|
|||
9
del123
26.10.12
✎
14:50
|
не пиши общие модули
|
|||
10
sanja26
26.10.12
✎
14:51
|
(5)Общие модули как объект конфигурации, вызываются по названию
|
|||
11
Defender aka LINN
26.10.12
✎
14:51
|
(5) Это ты молодец, что скопипастил. А теперь ответь на (4)
|
|||
12
Жан Пердежон
26.10.12
✎
14:51
|
(3) что вы делали последние почти 2 года?
|
|||
13
Daenerys
26.10.12
✎
14:58
|
Экспорт
|
|||
14
Kashemir
26.10.12
✎
15:00
|
(13) К этому мы еще не дошли. Отвечаешь на еще не созревший вопрос
|
|||
15
fleur
26.10.12
✎
15:02
|
Все исправила, но
" Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(46,13)}: Процедура или функция с указанным именем не определена (РезультатыИнвентаризации)" |
|||
16
Kashemir
26.10.12
✎
15:03
|
(15) Вот и дошли. А теперь смотри (13)
|
|||
17
del123
26.10.12
✎
15:03
|
вот теперь пора (13)
|
|||
18
nv24
26.10.12
✎
15:03
|
=)
|
|||
19
fleur
26.10.12
✎
15:04
|
да экспорт тоже уже написала
|
|||
20
fleur
26.10.12
✎
15:05
|
после этого перезагрузить 1с надо?
|
|||
21
dmpl
26.10.12
✎
15:05
|
Хм... стареют, видимо, участники. Даже фотку не попросили...
|
|||
22
fleur
26.10.12
✎
15:05
|
фотка давно уже есть
|
|||
23
Kashemir
26.10.12
✎
15:05
|
(19) Телепатирую, проблема в {46,13} ^^
|
|||
24
Reset
26.10.12
✎
15:10
|
а если так
Результат =Инвентаризация.РезультатыИнвентаризации(ШтрихкодСтроки); |
|||
25
Kashemir
26.10.12
✎
15:11
|
(20) Ниче се вопросики.
|
|||
26
pessok
26.10.12
✎
15:13
|
lt;f d.
|
|||
27
pessok
26.10.12
✎
15:13
|
дежа вю *
|
|||
28
hhhh
26.10.12
✎
15:14
|
Таки я предлагаю во-первых переименовать общий модуль. Что-то дикое какое-то название. Надо МодульИнвентаризация.
|
|||
29
fleur
26.10.12
✎
15:22
|
А теперь не нравится строчка:
Стр = Текст.ПрочитатьСтроку(); Пишет: Ошибка при вызове конструктора (ЧтениеТекста) Видимо я открываю в режиме обычного приложения, поэтому не работает. |
|||
30
Kashemir
26.10.12
✎
15:23
|
(29) Отойди от компьютера
|
|||
31
fleur
26.10.12
✎
15:25
|
Что еще можно сделать?
|
|||
32
Kashemir
26.10.12
✎
15:27
|
(31) Борщ сварить, салатик какой сварганить.
|
|||
33
dmpl
26.10.12
✎
15:28
|
(29) Зачем жестко текст с именем файла вписала? Брось реквизит на форму, прикрути к нему диалог выбора файла - и все заработает.
|
|||
34
fleur
26.10.12
✎
15:31
|
До этого все работало, просто очень долго, я ждала сутки, а потом компьютер был нужен
|
|||
35
fleur
26.10.12
✎
15:35
|
(33) точно, дело в названии файла, нет такого на этом ПК
|
|||
36
fleur
26.10.12
✎
15:54
|
Прироста производительности не случилось. Опять все долго. Функция в (0) работает не долго, но вызывается 1300 раз, как ее разделить на 2 части, чтобы 1 часть функции вызывалась 1 раз, а вторая часть 1300 раз?
|
|||
37
Конфигуратор1с
26.10.12
✎
15:56
|
(36)а зачем Вы ее на сервер то?
|
|||
38
dmpl
26.10.12
✎
15:58
|
(36) Сообщить() жрет достаточно много времени. И используй Найти() вместо обхода массива.
|
|||
39
fleur
26.10.12
✎
15:59
|
в смысле в общие модули?
Использую обработку загрузка данных из табличных документов и там программа, которую напишешь в "Вычислить" выполняется столько раз, сколько строк в табличной части, а так как это долго, то мне посоветовали в общий модуль записать |
|||
40
dmpl
26.10.12
✎
16:01
|
А вообще, лучше используй табличную часть. В первой колонке штрих-код, во второй - количество. Дальше просто Свернуть("ШтрихКод", "Количество") - и будет таблица значений со штрихкодами и количеством.
|
|||
41
Конфигуратор1с
26.10.12
✎
16:02
|
(40)+100500
|
|||
42
fleur
26.10.12
✎
16:03
|
да, но у меня в табличной части нет штрихкодов
|
|||
43
fleur
26.10.12
✎
16:04
|
Мне нужно подсчитать количество вхождений в массив, а Найти найдет первое вхождение
|
|||
44
Конфигуратор1с
26.10.12
✎
16:11
|
(43)То есть для каждого штрихкода Вы перебираете весь текстовый файл?
|
|||
45
Конфигуратор1с
26.10.12
✎
16:11
|
(44)один и тот же?
|
|||
46
dmpl
26.10.12
✎
16:11
|
(42) Ну тогда используй таблицу значений промежуточную, где колонка штрих-кодов будет.
|
|||
47
Конфигуратор1с
26.10.12
✎
16:12
|
Не проще Вам прочитать текстовый файл один раз и запулить его в таблицу значений. А потом просто через найти строки и получать количество вхождений?
|
|||
48
Конфигуратор1с
26.10.12
✎
16:13
|
(47)Еще быстрее сделать тзшку с штрихкодами, в запрос и вернуть количество()
|
|||
49
dmpl
26.10.12
✎
16:16
|
Для ускорения работы нужно от подхода "курочка по зернышку клюет" перейти к подходу "все и сразу". В 8-ке именно такой подход приветствуется.
|
|||
50
fleur
26.10.12
✎
16:24
|
И все-таки как разделить эту функцию на 2 части, чтобы первая часть выполнялась 1 раз?
|
|||
51
Segate
26.10.12
✎
16:31
|
(50) лол ))) Простите.
Читаем файл один раз. возвращаем ТЗ и тз обходим всем чем угодно. хоть выбрать, хоть найти, хотьче. Зачем эту убогую процедуру как то делить? Ее надо выкинуть и забыть как кошмарный сон с утра |
|||
52
Segate
26.10.12
✎
16:32
|
и да... Скажите, а что будет, если в текстовом файлике хаотично наставить лишних пробелов или буковок в начале строки?
|
|||
53
Конфигуратор1с
26.10.12
✎
16:40
|
(50)опишите задачу более детально
|
|||
54
fleur
26.10.12
✎
16:44
|
Есть документ "Инвентаризация"(открываю его через обработку Загрузка данных из табличных документов) и есть текстовый файл, в котором на каждой строчке "Штрихкод 1" (второе поле это количество у всех = 1). Далее пытаюсь заполнить поле количество через "Вычислить" фактическим количеством, которое в текстовом файле. При этом штрихкоды в текстовом файле могут повторяться
|
|||
55
Конфигуратор1с
26.10.12
✎
16:45
|
(54)а зачем вам обработка загрузки из табличных документов?
|
|||
56
ОбычныйЧеловек
26.10.12
✎
16:47
|
fleur пжалуста - убери слово "Профессионал" из личной карточки.
|
|||
57
Конфигуратор1с
26.10.12
✎
16:55
|
(56)на основании чего?
|
|||
58
Segate
26.10.12
✎
17:00
|
Функция РезультатыИнвентаризации() экспорт
Результаты = Новый ТаблицаЗначений; Результаты.колонки.Добавить("ШК"); Текст = Новый ЧтениеТекста("D:\1c\Инвентаризация пробная.txt"); Стр = Текст.ПрочитатьСтроку(); Номер = 0; Пока Стр <> Неопределено Цикл // строки читаются до символа перевода строки Стз= Результаты.Добавить(); стз.шк = Лев(Стр,13); Стр = Текст.ПрочитатьСтроку(); КонецЦикла; Возврат результаты; КонецФункции; результаты = РезультатыИнвентаризации(); отбор = новый структура; Отбор... Результат = Результаты.выбрать(Отбор); PROFIT!!!! = результат.количество(); как то так. Но писал я на коленке прямо тут |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |