Вход | Регистрация

1С:Предприятие ::

Метки: 

Поиск в ТЗ

Я
   John83
 
28.02.18 - 17:59
Есть ТЗ.
Колонки: номенклатура и уровень. Уровень принимает числовые значения от 0 и выше.
Нужно найти строки, в которых содержится определенная номенклатура и при этом уровень НЕ РАВЕН 0.
Возможно ли такой отбор через структуру передать? Или только запрос?
 
  Рекламное место пустует
   mehfk
 
1 - 28.02.18 - 18:01
Как только найдешь в СП в какое место в НайтиСтроки ты будешь вставлять вот это "НЕ РАВЕН 0." - дай знать.
   John83
 
2 - 28.02.18 - 18:06
(1) ну а вдруг
   Джексон
 
3 - 28.02.18 - 18:08
(0) Используй ПостроительОтчета для фильтрации. Источник данных - твоя таблица, в отборе задашь сравнениия как надо. И выводи результат в таблицу-коллекцию выведешь.
Обращений к базе не будет, нибаись.
   azernot
 
4 - 28.02.18 - 18:28
>Есть ТЗ.
Вот в этом месте ошибка.
ТЗ - не есть. ТЗ где-то формируется. И вот там-то моно заполнить булеву колонку "ЭтоНЕНулвойУровень".

Ну а если ТЗ "Есть", то всегда можно кинуть её в Запрос и там отобрать нужное.
   mehfk
 
5 - 28.02.18 - 18:29
(2) Ты 1с-ник или как?
   Забияка
 
6 - 28.02.18 - 18:43
Поколение "Пепси" :)
   Джексон
 
7 - 28.02.18 - 18:44
(4) > кинуть её в Запрос и там отобрать нужное.

Нежно потеребив при этом сеть. Мягко вставить во временную таблицу пару сотен тысяч записей (последние 100 в ускоренном ритме), грубо закрыть транзакцию и выполнить запрос на SQL сервере. Потом аккуратно вычитать полученные данные, потеребив уже опавший сетевой стек еще раз, выгрузить все в новую таблицу значений и щелчком пальцев отослать ненужные больше ресурсы прочь. Подождав, впрочем, тайно и стыдливо, очистки временной таблицы на стороне SQL.

Вот такой порнографией вы, коллега, и занимаетесь
   azernot
 
8 - 28.02.18 - 18:50
(7) Всё верно вы описываете. Всё так.
Но какова задача - таково решение.

А вот как из ПостроителяОтчёта получить ТЗ я не знаю..
Может напишите решение под ключ?
   mehfk
 
9 - 28.02.18 - 18:58
(8) тз = Новый ТаблицаЗначений;
тз.Колонки.Добавить("МояКолонка");

тз.Добавить().МояКолонка = "1";
тз.Добавить().МояКолонка = "2";
тз.Добавить().МояКолонка = "3";

Построитель = Новый ПостроительОтчета;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(тз);
Построитель.Выполнить();

тзРез = Построитель.Результат.Выгрузить();
   Джексон
 
10 - 28.02.18 - 19:22
(8) > Но какова задача - таково решение.
То есть вы не знаете возможностей платформы, но виноват в этом постановщик задачи.
Браво. Вы - Легендарный 1Сник.

    Построитель = Новый ПостроительОтчета;
    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТаблицаИсточника);
    
    ЭлементОтбора = Построитель.Отбор.Добавить("Уровень");
    ЭлементОтбора.ВидСравнения  = ВидСравнения.Больше;
    ЭлементОтбора.Значение      = 0;
    ЭлементОтбора.Использование = Истина;
    
    Построитель.Выполнить();
    ТаблицаРезультата = Построитель.Результат.Выгрузить();

Таблица источника должна быть типизирована, как для передачи в запрос.
Поэтому (9) не будет работать (:
 
  Рекламное место пустует
   John83
 
11 - 28.02.18 - 19:37
(4) "ЭтоНЕНулвойУровень"
как раз то, что нужно
спасибо пребольшое!
   mehfk
 
12 - 28.02.18 - 19:57
(10) >> Поэтому (9) не будет работать (:
Вот нахера, спрашивается, должен 1с-ник хоть до чего-то сам дойти
   Джексон
 
13 - 28.02.18 - 20:06
(12) Вообще да, но не в этом случае, извини, конечно.

Конекретно здесь будет невменяемое сообщение об ошибке и он снова придет сюда же с безумными вопросами, мешая мне разлагаться и деградировать. А оно мне надо?

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


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует