• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Вопрос о применении метода СокрЛП

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Вопрос от чайника. Заранее за него извиняюсь.
Во встроенном языке есть метод работы со строками СокрЛП, который отсекает лишние пробелы стоящие слева и справа в строке.
Сейчас я решаю, следующую задачу. Необходимо закинуть информацию о номенклатуре в базу 1С.
При этом нужно проверять уникальность номенклатуры, чтобы не заносить ее повторно.
Проверку я осуществляю с помощью методов НайтиПоКоду и НайтиПоНаименованию.
У меня возникает такой вопрос.
Нужно ли мне применять в данном случае метод СокрЛП.
Например, как поведет себя программа в данном случае:
В базе 1с. в справочнике номенклатура есть пункт:
(пробел) Станок (2 пробела) токарный
а в файле dbf такая запись:
Станок (1 пробел) токарный.​
Как поведет себя программа? Нужно ли здесь применять метод СокрЛП?
Сохраняются ли лишние пробелы при хранении строковых значений в файле dbf и в справочниках 1С?
При хранении числовых значений?
 
V

vbs

НайтиПоНаименованию(<?>,,);
FindByDescr(<?>,,);
Синтаксис:
НайтиПоНаименованию(<Наименование>,<Режим>,<ФлагПоиска>)
Назначение:
Найти элемент справочника по наименованию.
Возвращает: 1 - если действие выполнено;
0 - если действие не выполнено (элемент не найден).
Параметры:
<Наименование> - строка с наименованием искомого элемента справочника,
<Режим> - необязательный параметр. Число: 1 - поиск внутри установленного подчинения (родителя); 0 - поиск во всем справочнике вне зависимости от родителя. Значение по умолчанию - 1.
<ФлагПоиска> - необязательный параметр. Число: 1 - найти точное соответствие наименования; 0 - найти наименование по первым символам. Значение по умолчанию - 0.


Твои станки будут различаться по наименованию, если флаг поиска будет равен 1. СОКРЛП здесь не поможет, ибо лишний пробел ВНУТРИ наименования.
К числам пробелы спереди и сзади отношения не имеют

в принципе может помочь следующее - в наименованиях справочника в 1С удалить лишние ВНУТРЕННИЕ пробелы (оставив между словами ровно ОДИН), то же проделать и при попытке внедрения в 1С данных из dbf-источника
 
J

jcnby

в принципе может помочь следующее - в наименованиях справочника в 1С удалить лишние ВНУТРЕННИЕ пробелы (оставив между словами ровно ОДИН), то же проделать и при попытке внедрения в 1С данных из dbf-источника

Хм... есть шанс что кто-то из бухов просто напрасто незапонит ето простое правило....
 
V

vbs

Тогда можно искать по наименованию с флагом 0 и выкатывать диалог при совпадении первых символов
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!