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

Хранилище

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

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



> Помогите надо проверить строку на число 2 страниц V   1 2 >          
nogik Подменю пользователя
сообщение 24.03.11, 11:47
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Обработка работы с dbf файлом. проблема в том что номер документа не числовой а строка RCO_1908_447. Как сделать проверку чтобы это поле пропускалось, а числовые поля проходили дальше.

что поставить в условие если????

Если (ФайлДБФ.ПолучитьЗначениеПоля("DATA_S")=Дата)и
(Найти(ФайлДБФ.ПолучитьЗначениеПоля("KL_CHK"),СокрЛП(Счет))>0)  Тогда
//выбрать нужные данные из строки файла dbf в результативную таблицу значений            
    стр = ТаблицаДБФ.Добавить();                                
    стр.Дата      = ФайлДБФ.ПолучитьЗначениеПоля("DATA_S");
             стр.ПлатПоруч = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("ND")));

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

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

Число(RCO_1908_447)

не подойдёт?

nogik Подменю пользователя
сообщение 24.03.11, 12:19
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Да нет просто я для примера привёл эту строку, она может быть с другим названием, тоесть мне надо проверка если в номере документа встречаеться буква, а не число тогда не отображать.

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

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

nogik, ну а подумать немножко?

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

nogik Подменю пользователя
сообщение 24.03.11, 12:39
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

не то пальто всё равно((((, блин есть счета в формате .dbf от банка есть обработка импорт из банка, так вот в dbf файле номер 3 номера счёта числовые, а один символьный, мне надо чтобы числовые прошли а сим вольный не прошёл)) Тоесть нужна проверка вот этого СокрЛ(УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("ND")))

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

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

Мы с вами, наверное, говорим на разных языках

nogik Подменю пользователя
сообщение 24.03.11, 12:57
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Наверно(((, я просто новичёк вы уж простите меня многого не знаю(((, на работе сказали так сделать вот я и сижу ломаю голову(

Ardi Подменю пользователя
сообщение 24.03.11, 12:57
Сообщение #8

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Приблизительный код:

ном2="";
Для ъ=1 по стрДлина(ном) цикл
ном2=ном2+?(найти("1234567890",сред(ном,Ъ,1))>0,сред(ном,Ъ,1),"");
КонецЦикла;


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

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

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

Цитата
нужна проверка вот этого СокрЛ(УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("ND")))


а = СокрЛ(УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("ND")));
Попытка
   а = Число(а);
   Сообщить("а - число");
Исключение
   Сообщить("а - строка");
КонецПопытки;

Ardi Подменю пользователя
сообщение 24.03.11, 12:59
Сообщение #10

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(nogik @ 24.03.11, 13:57) *
я просто новичёк вы уж простите меня многого не знаю(((

Просто видимо 1986 год виноват, прогрммирование здесь не причем.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

nogik Подменю пользователя
сообщение 24.03.11, 13:05
Сообщение #11

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Ну просто работал до этого совсем в другой сфере жизнь заставила программировать((((

nogik Подменю пользователя
сообщение 24.03.11, 13:17
Сообщение #12

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(Ardi @ 24.03.11, 13:57) *
Приблизительный код:

ном2="";
Для ъ=1 по стрДлина(ном) цикл
ном2=ном2+?(найти("1234567890",сред(ном,Ъ,1))>0,сред(ном,Ъ,1),"");
КонецЦикла;



Не канает этот код да все буквы убрало и остались только цифры, а мне надо если встретилась буква в Номере документа то пропустить этот документ, а не букву пропустить.

logist Подменю пользователя
сообщение 24.03.11, 13:21
Сообщение #13

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

Вам же выше Vofka написал код.


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

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

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 24.03.11, 14:21) *
Вам же выше Vofka написал код.

Я пробовал не канает(

logist Подменю пользователя
сообщение 24.03.11, 13:37
Сообщение #15

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

Цитата(nogik @ 24.03.11, 13:28) *
Я пробовал не канает(

Ну напишите ж почему "не канает"... а то становится непонятно что вообще происходит


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

nogik Подменю пользователя
сообщение 24.03.11, 13:41
Сообщение #16

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 24.03.11, 14:37) *
Ну напишите ж почему "не канает"... а то становится непонятно что вообще происходит

а = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("ND")));
Попытка
а = Число(а);
Сообщить("а - число");
Исключение
Сообщить("а - строка");
КонецПопытки;
стр.ПлатПоруч = а;

не пропускает число с строкой.

logist Подменю пользователя
сообщение 24.03.11, 13:45
Сообщение #17

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

Цитата(nogik @ 24.03.11, 13:41) *
не пропускает число с строкой.

Нука напишите сюда код который идет до начала этого и чуть после, что бы была понятна общая картина.


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

Vofka Подменю пользователя
сообщение 24.03.11, 13:45
Сообщение #18

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

Цитата
мне надо если встретилась буква в Номере документа то пропустить этот документ

Цитата
не пропускает число с строкой.


Вы с этой планеты? Если не пропускает число со строкой - это не означает, что там есть буква?!

Batchir Подменю пользователя
сообщение 24.03.11, 13:51
Сообщение #19

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

епт, тут намеки не помогут, ожидается рабочий код

а = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("ND")));
Попытка
   а = Число(а);
   ЭтоЧисло = ИСТИНА;
Исключение
   ЭтоЧисло = ЛОЖЬ;
КонецПопытки;
Если ЭтоЧисло Тогда
   стр.ПлатПоруч = а;
   // и так далее
КонецЕсли;

nogik Подменю пользователя
сообщение 24.03.11, 13:52
Сообщение #20

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 0 раз
Рейтинг: 0

Цитата(logist @ 24.03.11, 14:45) *
Нука напишите сюда код который идет до начала этого и чуть после, что бы была понятна общая картина.

Если ФайлДБФ.Первая() тогда                       
    Пока Истина Цикл
    //если фирма счета совпадает со счетом выбранной фирмы, выбрать в таблицу
    Если (ФайлДБФ.ПолучитьЗначениеПоля("DATA_S")=Дата)и
                    (Найти(ФайлДБФ.ПолучитьЗначениеПоля("KL_CHK"),СокрЛП(Счет))>0) Тогда
         //выбрать нужные данные из строки файла dbf в результативную таблицу значений        стр = ТаблицаДБФ.Добавить();                                
        стр.Дата      = ФайлДБФ.ПолучитьЗначениеПоля("DATA_S");
        а = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("ND")));
        Попытка
           а = Число(а);
           Сообщить("а - число");
        Исключение
           Сообщить("а - строка");
        КонецПопытки;
        стр.ПлатПоруч = а;
        //стр.ПлатПоруч = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("ND")));
        стр.Сумма     = Число(ФайлДБФ.ПолучитьЗначениеПоля("S"));
        //стр.КодВалюты = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("CUR_ID")));
        //стр.КодВалюты = ИмяСчет.ВалютаДенежныхСредств.Код;
        Если  ФайлДБФ.ПолучитьЗначениеПоля("DK")= 1 Тогда
        стр.СчетКто = Счет;
        стр.СчетКому  = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("KL_CHK_K")));
        НомерТочки = Найти(стр.СчетКому,".");
        Если НомерТочки>0 Тогда
            стр.СчетКому  = Лев(стр.СчетКому,НомерТочки-1);
        КонецЕсли;
        стр.ИмяКому   = ФайлДБФ.ПолучитьЗначениеПоля("KL_NM_K");
        стр.ОкпоКому  = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("KL_OKP_K")));
         стр.мфоКому   = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("MFO_K")));
           Иначе
             стр.СчетКому = Счет;
               стр.СчетКто   = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("KL_CHK_K")));
             НомерТочки = Найти(стр.СчетКто,".");
              Если НомерТочки>0 Тогда
            стр.СчетКто  = Лев(стр.СчетКто,НомерТочки-1);
        КонецЕсли;
        стр.ИмяКто    = ФайлДБФ.ПолучитьЗначениеПоля("KL_NM_K");
        стр.ОкпоКто   = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("KL_OKP_K")));
        стр.мфоКто    = УбратьПробелы(строка(ФайлДБФ.ПолучитьЗначениеПоля("MFO_K")));
        КонецЕсли;    
        стр.Содержание= ФайлДБФ.ПолучитьЗначениеПоля("N_P");
        КонецЕсли;    
        Если не ФайлДБФ.Следующая() Тогда
        Прервать;
        КонецЕсли;
        КонецЦикла;
    КонецЕсли;
    Возврат(ТаблицаДБФ);
Причина редактирования: Для публикации кода используйте спец тег

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


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

 

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