Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Сумма по строке с символами          
maximus Подменю пользователя
сообщение 13.03.13, 14:22
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 104
Из: Харьков
Спасибо сказали: 0 раз
Рейтинг: 0

"Бухгалтерия для Украины", редакция 1.2 (1.2.12.2)

Необходимо просуммировать строку табличной части документа, но в строке имеются и цифры и символы. Подскажите как правильно можно вычислить сумму?

logist Подменю пользователя
сообщение 13.03.13, 14:31
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

По типу "Число"


Signature
Личные бесплатные консультации не даю, для этого есть форум!

maximus Подменю пользователя
сообщение 13.03.13, 14:37
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 104
Из: Харьков
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 13.03.13, 14:31) *



Забыл уточнить, в строке все значения строкового типа, например - 1 2 3 А Б 4 5 Г

Я перевожу их в Число(), но как быть там где уже буквы?

logist Подменю пользователя
сообщение 13.03.13, 14:41
Сообщение #4

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Я вообще не могу понять суть задачи. Ну выберите со строки только цифры, и просуммируйте их. В чем проблема? Или в чем задача...


Signature
Личные бесплатные консультации не даю, для этого есть форум!

maximus Подменю пользователя
сообщение 13.03.13, 14:42
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 104
Из: Харьков
Спасибо сказали: 0 раз
Рейтинг: 0

а нужно получить :

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Сумма

3 5 1 5 8 А К Н У = 22

Vofka Подменю пользователя
сообщение 13.03.13, 14:46
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Это вопрос уже к вам: как вы собираетесь суммировать буквы? 1 + Ъ сколько равно?

maximus Подменю пользователя
сообщение 13.03.13, 14:46
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 104
Из: Харьков
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(maximus @ 13.03.13, 14:42) *
а нужно получить :

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Сумма

3 5 1 5 8 А К Н У = 22



Во всех колонках табличной части данные строкового типа

Vofka Подменю пользователя
сообщение 13.03.13, 14:47
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Перебирайте символы строки и пропускайте символы, которые нельзя привести к числу.

maximus Подменю пользователя
сообщение 13.03.13, 14:50
Сообщение #9

Завсегдатай
****
Группа: Пользователи
Сообщений: 104
Из: Харьков
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Vofka @ 13.03.13, 14:46) *
Это вопрос уже к вам: как вы собираетесь суммировать буквы? 1 + Ъ сколько равно?



В этом и вопрос, как мне исключить эти буквы?

Цитата(Vofka @ 13.03.13, 14:47) *
пропускайте символы, которые нельзя привести к числу



Не совсем понимаю, как это сделать? Именно как впоймать ошибку при приведении типов?

Vofka Подменю пользователя
сообщение 13.03.13, 14:54
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Цитата(maximus @ 13.03.13, 14:50) *
Именно как впоймать ошибку при приведении типов?

Попытка
   Цифра = Число(СтроковыйСимвол);
   Сообщить("Цифра");
Исключение
   Сообщить("Буква");
КонецПопытки;

Спасибо сказали: maximus,

Petre Подменю пользователя
сообщение 13.03.13, 14:54
Сообщение #11

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Числа - это десять символов от "0" до "9". Проверить вхождение и преобразовать.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Vofka Подменю пользователя
сообщение 13.03.13, 14:54
Сообщение #12

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Можно по другому ещё: загоняете в какую-то коллекцию все цифры от 0 до 9 и порверяете вхождение туда каждого символа.

Добавлено: это к моему посту выше.

Сообщение отредактировал Vofka - 13.03.13, 14:55

Petre Подменю пользователя
сообщение 13.03.13, 14:59
Сообщение #13

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Зачем?
Если Найти("0123456789", ТекСимвол) Тогда
    ТекСумма = ТекСумма + Число(ТекСимвол);
КонецЕсли;


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

zay Подменю пользователя
сообщение 13.03.13, 14:59
Сообщение #14

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 163
Из: Киев
Спасибо сказали: 131 раз
Рейтинг: 137.1

Функция Расчет( СтрокаСимволов )
    
    ДлинаСтроки = СтрДлина( СтрокаСимволов );
    
    СуммаЧисловыхСимволов = 0;
    
    Для НомСимвола = 1 по ДлинаСтроки Цикл
        
        Код_Символа = КодСимвола(СтрокаСимволов, НомСимвола);
        
        Если (Код_Символа >= 48) И (Код_Символа <= 57) Тогда
            
            Символ = Сред(СтрокаСимволов, НомСимвола, 1);
            
            СуммаЧисловыхСимволов = СуммаЧисловыхСимволов + Число( Символ );
            
        КонецЕсли;
        
    КонецЦикла;
    
    Возврат СуммаЧисловыхСимволов;
    
КонецФункции

Спасибо сказали: maximus,

ignsv Подменю пользователя
сообщение 13.03.13, 15:00
Сообщение #15

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 193
Спасибо сказали: 60 раз
Рейтинг: 0

ОбщегоНазначения.ПреобразоватьВЧисло(Значение)


з.ы. а все ответ снимается.. только сейчас понял, что вы хотите сделать ))

Сообщение отредактировал ignsv - 13.03.13, 15:01

maximus Подменю пользователя
сообщение 15.03.13, 11:04
Сообщение #16

Завсегдатай
****
Группа: Пользователи
Сообщений: 104
Из: Харьков
Спасибо сказали: 0 раз
Рейтинг: 0

Всем спаибо за помощь в данном вопросе, реализовал через:

Попытка
   Цифра = Число(СтроковыйСимвол);
   Сообщить("Цифра");
Исключение
   Сообщить("Буква");
КонецПопытки;

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 23.04.24, 23:40
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!