Проверка на палиндром в 1С 8.3 #731058


#0 by Xilen
Приветствую! Сделал проверку на палиндром наименования в номенклатуре, но выдает ошибку {Справочник.Номенклатура.Форма.ФормаЭлемента.Форма(1019)}: Получение элемента по индексу для значения не определено &НаКлиенте В чем косяк, подскажите, пожалуйста)
#1 by Лохматые Уши
ТекНаим - это строка. Какой же там может быть индекс?
#2 by Xilen
Тогда как исправить? Посимвольно можно же работать со строками в 1С. Думал сработает) в с++ точно сработает такой алгоритм)
#3 by zulu_mix
кури Сред
#4 by Cyberhawk
тебе уже проще засунуть строку в массив на входе
#5 by Xilen
В "Сред" заработало) правда строка "арозаупаланалапуазора" не является палиндромом Оо )) Косякнул в условии что ли..
#6 by Salimbek
СокрЛП в начале используй, а то слева первый символ будет "а", а справа - пробел, вот и не сойдется.
#7 by Xilen
Отладчик показывает именно "арозаупаланалапуазора", т.е. без пробелов, но при этом результат все равно "не является".
#8 by Крошка Ру
Ну ты даешь! Что в слове содержится в отладчике ты посмотрел, молодец. А посмотреть, в какой момент он на строку "Палиндром = Ложь;" попадает - это уже неспортивно?
#9 by zulu_mix
#10 by Xilen
Посмотрел где) но после того как написал сюда) Спасибо за помощь! Буду разбираться))
#11 by Armando
Просто интересно, какую задачу решаете таким образом?
#12 by Xilen
Проверить на полиндром значение поля "Наименование"
#13 by zulu_mix
вообще правильнее так:
#14 by Адимр
Проверь последовательность нуклеотидов в дезоксирибонуклеиновой кислоте на палиндромы,скачать можно сдесь
#15 by Записьдампа
Повышаем градус! =)     Возврат Фраза = "" Или (Лев(Фраза, 1) = Прав(Фраза, 1) И ЭтоПалиндром( Сред(Фраза, 2, СтрДлина(Фраза) - 2))); КонецФункции
#16 by Крошка Ру
Повышать, так повышать: Возврат ОбщийМодульЛингвистическихФункций.ЭтоПалиндром(Фраза);
#17 by Armando
Это понятно. Практический смысл какой?
#18 by Xilen
Тема курсовой.. А смысла практического нет) Баловство)
#19 by zulu_mix
как думаешь, при какой длине строки выпадет твой ник?
#20 by Записьдампа
Ну тогда вот так =) Функция ЭтоПалиндром(Фраза)     Возврат КодВозвратаДиалога.Да = Вопрос("Фраза """ + Фраза + """ является палиндромом?", РежимДиалогаВопрос.ДаНет); КонецФункции
#21 by Xilen
Тогда вопрос поставлю по-другому: как грамотно написать условие: ну и соответственно последний уменьшается на 1 в цикле
#22 by Xilen
В общем, сравнение первого символа и последнего в цикле, причем будет первый+1, последний-1
#23 by zulu_mix
зачем эти сложности? реверс строки и сравнение с оригиналом гораздо гораздее
#24 by Записьдампа
#25 by Записьдампа
Тьфу. Если Сред(ТекНаим, Начало, 1) <>  Сред(ТекНаим, Конец 1) Тогда Кончено же
#26 by Xilen
ну, если говорить о загрузке, то посимвольное сравнение с начала и конца быстрее произойдет, нежели взять строку, реверснуть и сравнить обе) правда это доли секунды) просто когда искал материал по работе со строками в 1с наткнулся на этот пример, решил попробовать) но там написано простыми словами, а не кодом) Спасибо, Записьдампа) я пытался сделать также, только не единицы ставил, а длину строки)
#27 by Xilen
Хотя отбой, даже слово "трепет" при твоем условии сочло палиндромом)
#28 by Записьдампа
Я ведь ща 1С запущу =) Функция ЭтоПалиндром(ТекНаим)
#29 by Записьдампа
В качестве списка литературы к курсовой синтаксис-помощник 1С будешь указывать? =)
#30 by Xilen
&НаКлиенте результат: "трепет" - палиндром) просто я в карточке номенклатуры сделал кнопку на командной панели и привязал к процедуре
#31 by Xilen
обойдемся без списка литературы :D
#32 by Записьдампа
ТекНаим откуда берется?
#33 by Xilen
тьфу блин))) видать удалил случайно вместе с комментом и оставил не ту строку XD
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С