• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

запрос с условием по тексту

  • Автор темы puh14
  • Дата начала
P

puh14

Имеется ситуация - написал обработку загрузки номенклатуры в из одной ТИС 7.7 в другую Тис 7.7. Конфы идентичные. Соответствия кодам в номенклатуре нет, соответствие иерархии и наименованиям есть. Наименования зачастую бывают одинаковые в различных ветках. Для шустризны, чтобы не перебирать весь справочник попытался найти нужный элемент через запрос с условием

|Товар = Справочник.Номеклатура.текущийЭлемент;
|Группировка Товар;
|Условие (товар.Наименование = F.Name);

Где F.Name - текстовое поле в ДБФ, одинаковое по длине с наименованием.

Не пашет.

Пробовал добавлять имена в списки, СокрЛП, |Условие (товар.Уровень = F.Level); - единственное что пока не пробовал ПолноеНаименование

Пришлось делать через НайтиПоНаименованию - что не есть гут, в какой-то момент может закосячить. Ставить 1с++ неохота, есть ли какие нибуть другие выходы?
 
K

KiR

А почему ты не можешь просто искать по НАЙТИ?
 
P

puh14

Это для работы со строкой - а мне надо из справочника вытянуть элемент соответствующий уровню, наименованию и наименованию родителя из ДБФноого файла. Лучше всего через запрос - ежлиб он ещё работал.
 
K

kaa

|Условие (СокрЛП(товар.Наименование) = СокрЛП(F.Name));

так должно работать
 
P

puh14

Тоже не пашет.

Текст = "
|Период с ВыбНач по ВыбКон;
|Без Итогов;
|Товар = Справочник.Номенклатура.ТекущийЭлемент;
|Группировка Товар;
|Условие (Товар.ЭтоГруппа() = F.group); //не пашет
|Условие (СокрЛП(Товар.Наименование) = СокрЛП(F.name));// не пашет
|Условие (Товар.Уровень() = F.level);"//не пашет
;
 
P

puh14

не находит - пустая таблица на выходе.
 
K

kaa

может что-нибудь с кодировкой в дбф-ке не так ?

В таких случаях я пользовался так |Условие (Найти(СокрЛП(Товар.Наименование),СокрЛП(F.Name))>0)

Правда задачи были для синхронизации справочников, вываливалась табличка с найдеными занчениями их несколько
 
P

puh14

Кодировка нормальная - НайтиПоНаименованию работает. Насчет Найти - так мне и надо несколько! Остальные отсеиваются на условиях уровень и имя родителя. Ща попробую!
 
Мы в соцсетях:

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