Как осуществить проверку на наименование товара в 1С8 #734731


#0 by pnamik
Добрый день. Подскажите, пожалуйста, как можно осуществить проверку заполнения наименования товара? Удается проверить в целом заполнения ячейки наименование с помощью Необходимо, чтобы проверка осуществлялась по другому: Если наименование состоит не меньше трех слов (например, куртка женская EIFEL или ботинки мужские б/тм), то можно записать элемент, а если меньше трех (например, куртка женская, или ботинки) чтобы выдал предупреждение "не правильно заполнено наименование'. Спасибо заранее за подсказки
#1 by РеализоВано
ЗначениеЗаполнено
#2 by polosov
Разбей предложение на слова, посчитай их, несколько Если Тогда Иначе
#3 by shuhard
что-то мешает разбить строку по пробелам и сосчитать число слогов ?
#4 by MSOliver
Три   слова?
#5 by polosov
+  Задача на уровне школьников, тренирующихся на языке Рапира.
#6 by evorle145
, Практически во всех типовых конфигурациях (обычно в общем модуле "ОбщегоНазначения") есть функция РазложитьСтрокуВМассивПодстрок
#7 by MSOliver
иногда конфигурации бывают типовые, в очень редких случаях данный механизм в них уже реализован... Эх, вот если бы знать...
#8 by MSOliver
СтрЗаменить(РазбираемаяСтрока," ",Симолы.ПС);
#9 by pnamik
конфигурация самописная, 1С 8.0.18.2 варианты СокрЛП(Наименование) = "" + ""  Тогда не подходит
#10 by pnamik
если можешь предлагай, пожалуйста, варианты для школьника.
#11 by evorle145
Функция обРазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
#12 by anatoly
это есть в ОбщегоНазначения, если типовая а потом проверить количество в массиве. профит.
#13 by kosts
Удалить лишние пробелы, посчитать оставшееся количество пробелов.
#14 by pnamik
не думаю, что такие сложности там потребуется. кажется одной строкой можно обойтись. Надеюсь подскажет варианты для школьника
#15 by MSOliver
Зачем ? См. !
#16 by evorle145
#17 by evorle145
#18 by MSOliver
Отказ = СтрЧислоВхождений(Наименование," ")=>3;
#19 by MSOliver
Отказ = НЕ СтрЧислоВхождений(Наименование," ")=>3;
#20 by MSOliver
в трёх словах, два пробела!)
#21 by anatoly
а вдруг пробелы по краям? или в середине по два-три?
#22 by kosts
Правильно. Не правильно
#23 by pnamik
и выдает ошибку при добавлениии в процедуру Передзаписью {Справочник.Номенклатура.Форма.ФормаЭлемента(23,7)}: Процедура или функция с указанным именем не определена (обРазложитьСтрокуВМассивПодстрок)
#24 by kosts
Ну так скопируй
#25 by pnamik
скопировал функцию , также ставил в процедуру ПередЗасписью (Отказ) при записи элемента выдал ошибку {Справочник.Номенклатура.Форма.ФормаЭлемента}: Поле объекта не обнаружено (Количество)     Если обРазложитьСтрокуВМассивПодстрок(Наименование, " ").Количество<3 Тогда
#26 by ИС-2
обРазложитьСтрокуВМассивПодстрок замени на Общегоназначения.РазложитьСтрокуВМассивПодстрок
#27 by evorle145
, после количество нужны "", я тебе об этом в написал. Но советую тебе читать ошибки и пытаться вникать в них. Но вместе с тем, я не понимаю, почему тебе лень понять смысл ошибки, а мне не лень тебе это объяснять.
#29 by evorle145
см
#30 by MSOliver
Ваще-то надо как в
#31 by MSOliver
Вы правы
#32 by pnamik
спасибо тебе огромное, похоже, получилось, проверю в разных вариациях сейчас. Ты большой умница
#33 by MSOliver
Отказ = СтрЧислоВхождений(СокрЛП("1 2 3")," ")>2;
#34 by 1976vas
Только надо еще и убрать пробелы сначала справа и слева, могут же быть...
#35 by kosts
Ну если так Найти(СтрЗаменить(СтрЗаменить(СтрЗаменить(с, "    ", " "), "   ", " "), "  ", " ")) > 2
#36 by kosts
Сокр еще забыл
#37 by MSOliver
Я думаю Победа!
#38 by Maniac
Вот дауны то пошли....
#39 by pnamik
спешил, выдает предупреждение о том, что не правильно заполнена наименование, но записывает товар, а нужно, чтобы пока не правилам не давал записывать
#40 by polosov
#41 by Maniac
Правильно не Количество а Количество
#42 by kosts
Да кто ж его запомнит как правильно. Давеча в C# вроде свойством видел
#43 by polosov
#44 by Maniac
Вообще правильный ответ был еще в 11. Но почему то чувак ее переименовал - это полностью типовая стандартнавя процедура. От 1С. Вызываем. И делаем проверку на Количество Все нах.
#45 by Maniac
в 1С все методы со скобками.
#46 by MSOliver
Ожидается символ ,
#47 by pnamik
а в процедуру ПередЗаписью что добавить?
#48 by kosts
В языках которые я знаю, аналогично
#49 by MSOliver
Читаем внимательно, конфа самописка
#50 by polosov
Если РазбитьСтрокуНаСлова(Наименование).Количество < 3 Тогда Отказ = Истина; КонецЕсли;
#51 by MSOliver
Кароче жесть, тут на час работы!
#52 by banco
переходите на 8.3.6 ))
#53 by Maniac
Пипец. Уволил бы всех по списку.
#54 by pnamik
срабатывает в части предупреждение, после нажатия ок (согласия с предупреждением), записывает элемент, а нужно, чтобы не записывал, пока не по правилам наименование спасибо помогло пока. Возврат забыл. Спасибо за терпение
#55 by polosov
Да ктоб к тебе пошел... Нудятину терпеть блин.
#56 by pnamik
сейчас проверю и . очень добры и терпеливы
#57 by pnamik
выдал ошибку добавил , после запятой что не понимаю {Справочник.Номенклатура.Форма.ФормаЭлемента(50,5)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction')
#58 by polosov
МассивСлов.Добавить(СокрЛП(СтрПолучитьСтроку(СтрокаСлов,Индекс));
#59 by polosov
Возможно еще потребуется проверка на пустую строку, если были несколько пробелов подряд
#60 by pnamik
МассивСлов.Добавить(СокрЛП(СтрПолучитьСтроку(СтрокаСлов,Индекс));  добавил в конце еще одно ) и еще и в после количество добавил , сработало. Молодцы. проверю сейчас с пробелами
#61 by pnamik
на пустую строку проверка уже есть в . не пускает с пробелами. и спасибо и здоровья Вам. также всем тем, кто участвовал в обсужден ии
#62 by evorle145
главное чтоб на пользу пошло)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям