Текущий архив: 2007.08.26;
Скачать: CL | DM;
Внизпо 1с не поможите? ТЗ.НайтиЗначение не работает что-то.. Найти похожие ветки
← →
Vlad Oshin © (2007-07-25 16:21) [0]
СпрТов=СоздатьОбъект("Справочник.Товары");
спрТов.ВыбратьЭлементы();
Т.вывестиСекцию("ШапкаНеВошедших");
пока спрТов.ПолучитьЭлемент()=1 цикл
// если БылЛи(спрТов)=1 тогда продолжить; конецесли;
СТ=спрТов.наименование;
если ТЗ.НайтиЗначение(СТ,,)=0
тогда
если спрТов.принадлежитгруппе(ВыбТов)=1
тогда
если спрТов.ЭтоГруппа()=0
тогда Т.вывестиСекцию("НеВошедшие");
иначе Т.вывестиСекцию("ГрНВ");
конецесли;
конецесли;
конецесли;
конеццикла;
Jaguar
Ножницы прямые Pre Style Slice 5.5 82555 0 48 58679.72 1
Ножницы прямые Satin 6.5" ** 0365 0 5 5516.83 1
Ножницы прямые простые 6 2460JAG 0 17 7644.46 5
ЯГУАР У
Ножницы прямые Cj II 5,5 9955 0 1 2190.6 1Итого 1299
// выше - вывод ТЗ(ВыбратьСтороки, пока ПолучитьСтроку=1 и т.д.). Ниже, вывод по коду.
Товар, в выбранной группе товаров, не вошедший в список выше
14 АКЦИЯ
Jaguar
ЯГУАР У
Ножницы прямые Cj II 5,5 9955
Целый день мучаюсь.. В чем дело?
← →
Vlad Oshin © (2007-07-25 16:23) [1]Т.е., если нет в ТЗ тогда выводить
А выводит 2 раза.
Значит, не находит, хоть оно там есть. Сам же вывел перед этим
← →
Piter © (2007-07-25 16:30) [2]Vlad Oshin © (25.07.07 16:21)
СпрТов=СоздатьОбъект("Справочник.Товары");
спрТов.ВыбратьЭлементы();
Т.вывестиСекцию("ШапкаНеВошедших");
пока спрТов.ПолучитьЭлемент()=1 цикл
// если БылЛи(спрТов)=1 тогда продолжить; конецесли;
СТ=спрТов.наименование;
если ТЗ.НайтиЗначение(СТ,,)=0
тогда
если спрТов.принадлежитгруппе(ВыбТов)=1
тогда
если спрТов.ЭтоГруппа()=0
тогда Т.вывестиСекцию("НеВошедшие");
иначе Т.вывестиСекцию("ГрНВ");
конецесли;
конецесли;
конецесли;
конеццикла;
УЖААААААС
← →
tesseract © (2007-07-25 16:37) [3]Ужас, говори что надо сделать.
и ТЗ это таблица значений ? а где номер строки - без него может не сработать, передавай нулевое. И СокрЛП рулит по любому.
← →
tesseract © (2007-07-25 16:40) [4]Да и лучше создай колонку "коды" - по ним и поиск быстрее и всё + задай в колонках ТЗ, что ты там хранишь - тоже пошустрее будет, а то по умолчанию там Variant.
← →
Vlad Oshin © (2007-07-25 16:44) [5]
> а где номер строки - без него может не сработать
сейчас попробую
СокрЛП - не надо, имхо.
В ТЗ (да, это таблица значений) хранится товар из справочника и с чем сравниваю тоже из справочника.
> говори что надо сделать.
надо вывести все товары из справочника, которых нет в таблице значений.
← →
Vlad Oshin © (2007-07-25 16:57) [6]ТЗ.НайтиЗначение(СТ,,)=0
переписал как
Функция БылЛи(тов);
Тз.ВыбратьСтроки();
пока тз.получитьстроку()=1 цикл
если строка(тов)=строка(тз.наименование)
тогда
возврат 1;
конецесли;
конеццикла;
возврат 0;
КонецФункции
т.е. тупо по строчкам, с приведением к строке.
все работает.
по другому не хочет. Да в принципе, ладно, пойдет. Долго только несколько..
← →
tesseract © (2007-07-25 17:21) [7]
> по другому не хочет. Да в принципе, ладно, пойдет. Долго
> только несколько..
Выгрузи в список значений и потом ище в ТЗ по номеру строки - будет пошустрее, и по кодам, только по кодам, строки - тормозные, в 1с значат все 99 знаков наименования.
ЗЫ: Т.Е ты справочники занисишь в таблицу и потом хочешь чтобы они быстро приводились к собственным наименованиям по стандартно заданному конфе представлению - конечно будет тормозить!
← →
Vlad Oshin © (2007-07-25 17:28) [8]нет, я рассчитываю хорошо проданющиеся товары, заношу их в ТЗ, потом распечатываю(ну там что почем и сколько продали).
Потом нужно распечатать непроданные/плохо продающиеся товары.
Логично, что это = (все из справочника) - (те, что уже выведены).
← →
Polevi © (2007-07-25 17:28) [9]выглядит отвратно
← →
tesseract © (2007-07-25 17:33) [10]
> нет, я рассчитываю хорошо проданющиеся товары, заношу их
> в ТЗ, потом распечатываю(ну там что почем и сколько продали).
>
Ты извращенец!!!!!! В стандартной книжке по 1с есть пример в котором всё это на запросе разобрано, И вроде даже в конфу стандартную входит. Работает в десятки раз быстрее твоего художества (извини, но это так).
У меня есть пример продажи партий по поступлениям, но там ~ 1200 строк без коментариев + куча специфичных вспомогательных данных.
> Polevi © (25.07.07 17:28) [9]
Я про то же, такую схему франчи используют очень часто.
← →
Vlad Oshin © (2007-07-25 17:47) [11]почитаю книжку..
когда ничего не помогает - надо инструкцию прочитать, согласен :)
тогда такой вопрос, последний
спрТов - "справочник"
спрТов.ИспользоватьРодителя(ВыбТов,0);
спрТов.ВыбратьЭлементы();
Выбираются элементы только данного родителя?
Другие в выборку не попадут?
← →
Vlad Oshin © (2007-07-25 18:12) [12]судя по всему, не попадают.
гораздо быстрее стало.
а так (подсказали )
если ТЗ.НайтиЗначение(спрТов.ТекущийЭлемент(),,)=0
и искать стал, и скорость приличная.
← →
tesseract © (2007-07-25 18:13) [13]
> спрТов.ИспользоватьРодителя(ВыбТов,0);
Да. Просто если 0 его нельзя будет поменять в выборке.
← →
tesseract © (2007-07-25 18:14) [14]
> и искать стал, и скорость приличная.
Только нарузка возрастёт, лучше запросами. Быстрее в разы. Пример в первом томе есть.
← →
Piter © (2007-07-25 18:20) [15]а по английски в 1C программировать нельзя?
Выглядит нелепо...
← →
tesseract © (2007-07-25 18:27) [16]
> а по английски в 1C программировать нельзя?
Можно. Но зачем ?
← →
Piter © (2007-07-25 20:52) [17]tesseract © (25.07.07 18:27) [16]
Можно. Но зачем ?
что значит зачем? Я уже сказал - потому что выглядит нелепо. Хоть что мне говори - пофигу, после классики это выглядит хреново.
← →
Vlad Oshin © (2007-07-26 00:29) [18]
> а по английски в 1C программировать нельзя?
я стал было - начальник сказал не надо так. делай как все. как завелось
← →
Petr V. Abramov © (2007-07-26 01:02) [19]> Vlad Oshin © (26.07.07 00:29) [18]
>> а по английски в 1C программировать нельзя?
>>>я стал было - начальник сказал не надо так. делай как все. как завелось
бухгалтер поймет, в случае чего :))))
Страницы: 1 вся ветка
Текущий архив: 2007.08.26;
Скачать: CL | DM;
Память: 0.49 MB
Время: 0.045 c