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

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

Метки:коллекции значений

НайтиЗначение() в ТЗ по двум колонкам. Возможно ли?

Я
   User63
03.08.04 - 12:18
Допустим, у меня есть таблица значений с колонками номенклатура и партия. Можно ли методом НайтиЗначение() получить строку по этим двум параметрам, например,предварительно создав дополнительную колонку и какаим нибудь образом скопировав туда значения этих двух вышеуказанных колонок?
Спасибо.
 
  Рекламное место пустует
   IAm
 
101 - 04.08.04 - 01:09
Надо 83 в базу знаний добавить, может даже отдельной темой
   NS
 
102 - 04.08.04 - 01:11
(101) Вторую тему понял?
   IAm
 
103 - 04.08.04 - 01:16
102 про колонку в журнале? а хули там понимать? Я же код написал.
   NS
 
104 - 04.08.04 - 01:19
какой пост?
   Рупор абсурда
105 - 04.08.04 - 01:19
(100) >>Колонка - номер строки
Временем, которое уйдёт на добавление, заполнение этой колонки, ты, конечно, пренебрег? ...
   NS
 
106 - 04.08.04 - 01:21
Я бы, для начала, убрал бы галочки...
Еще раз - явно поиск неоднокоатный.
   NS
 
107 - 04.08.04 - 01:22
неоднокоатный - неоднократный.
   IAm
 
108 - 04.08.04 - 01:23
= 0
   NS
 
109 - 04.08.04 - 01:25
(108) Это не ответ.
   ShootNICK
 
110 - 04.08.04 - 01:26
если неоднократный - лучше идексирование. а так - бинарный катит.
 
  Рекламное место пустует
   NS
 
111 - 04.08.04 - 01:28
(110) Бинарный - две сортировки не нравятся (одна по двум колонкам, другая по одной), и проставление номера строки.
   ShootNICK
 
112 - 04.08.04 - 01:32
а получить надо именно номер строки? а не некое значение в третье например колонке ? что за бред- узнать в какой строке совпадение? практичность инфы какая то никакая :) номер строки бесполезняк простставлять - лучше уж индексы построиь.
   ShootNICK
 
113 - 04.08.04 - 01:35
в полном хаосе на однократном поиске - первое совпдение и тупо перебором если без сортировки
   IAm
 
114 - 04.08.04 - 01:38
112 Найти значения в табличной части документа, чтобы спозиционироваться на этой строке. К примеру.
   Рупор абсурда
115 - 04.08.04 - 01:39
(113) Мы с IAm'ом быстрей найдём ... :))
   NS
 
116 - 04.08.04 - 01:40
(114)Дима, а нет в ветке у тебя такого решения...
   IAm
 
117 - 04.08.04 - 01:41
115 Кажется человек не понимает, что однократный поиск может повторяться многократно для бесконечного множества таблиц в нашей необъятной вселенной.
   IAm
 
118 - 04.08.04 - 01:41
116 Какого? В какой?
   ShootNICK
 
119 - 04.08.04 - 01:43
114 - так при выгрузке таб.части и колонка создается "номер строки" и остальные значения выгрузить можно
   NS
 
120 - 04.08.04 - 01:43
В этой.
   IAm
 
121 - 04.08.04 - 01:47
119 А в документе всегда строки автоматом нумеруются?
   ShootNICK
 
122 - 04.08.04 - 01:47
вспомним - задача, которая решается за неприемлемое время - либо бездарно запрограммирована,либо ее решение не нужно:) так отваживали теоретиков от решения разнообразных задач :)
   IAm
 
123 - 04.08.04 - 01:47
120 остался первый вопрос
   NS
 
124 - 04.08.04 - 01:48
Причеим нерешенный ;-)
   IAm
 
125 - 04.08.04 - 01:49
Вопрос звучит так
Какого? (перед вопросительным знаком нет троеточия)
   ShootNICK
 
126 - 04.08.04 - 01:50
121 - ладно ладно :) мы таки ищем идеальное решение или промышленное ? :
   IAm
 
127 - 04.08.04 - 01:52
Спокойной ночи, пошел онанировать и ссать.
   IAm
 
128 - 04.08.04 - 01:52
в смысле и спать.
   NS
 
129 - 04.08.04 - 01:52
Кто-то может галки эти поганные убрать?
   ShootNICK
 
130 - 04.08.04 - 01:56
127,129 - стихи какие то :)
129 - какие галки ???
   NS
 
131 - 04.08.04 - 01:57
(130) посмотри ветку с начала.
   Warlock
 
132 - 04.08.04 - 01:59
(131)Перестроить или снести?
   NS
 
133 - 04.08.04 - 02:00
(132) Снести, создать новую ветку, и дать ссылку на эту...
 
  Рекламное место пустует
   ShootNICK
 
134 - 04.08.04 - 02:01
типа "внесено в базу знаний" . ясно
   Warlock
 
135 - 04.08.04 - 02:03
(NS)Создавай...
   NS
 
136 - 04.08.04 - 02:05
(134) Пока нечего вносить в базу знаний.
   Рупор абсурда
137 - 04.08.04 - 02:10
У меня есть одно замечательное знание ..., в самый раз, для базы знаний ...
   NS
 
138 - 04.08.04 - 02:12
(137) А у меня их два!!!
   ShootNICK
 
139 - 04.08.04 - 02:19
а я пожалуй глотну коньячку...
   NS
 
140 - 04.08.04 - 02:50
А я из-за этого дерьма проснулся...
Если ТЗ совсем неотсортирована...
Сложность алгоритма -
Добавление любой колонки (номер строки, сводный реквизит) - эн логарифмов эн.
Пробег - Эн.
Лучшее решение..
ТЗ.ВыбратьСтроки();
пока тЗ.ПолучитьСтроку()=1 цикл
если ТЗ.Номенклатура=номенклатура тогда
  если ТЗ.Партия=партия Тогда
    сообщить(ТЗ.Номерстроки);
    прервать;
  конецесли;
 конецесли;
КонецЦикла;
правильное решение - (2)
   VladZagorsky
141 - 04.08.04 - 06:04
Э... Ндя... Мысли бурлят просто, когда такое читаешь...

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

Делаем дополнительную колонку в таблице (обзовем ее "Индекс").

Дальше:
ТаблЗнач.ВЫбратьСтроки();
Пока ТаблЗнач.ПолучитьСТроку()=1 Цикл
    ТаблЗнач.Индекс=СокрЛП(ТаблЗнач.Номенклатура)+СокрЛП(ТаблЗнач.Партия);
КонецЦикла;

И если тебе нужно найти по этим двум параметрам:

ТекИндекс=СокрЛП(Номенклатура)+СокрЛП(Партия);
ТаблЗнач.НайтиЗначение()...

И определяется однозначно, и не нужно перебором искать, и номер строки таблицы тебе....
   Z1
 
142 - 04.08.04 - 09:40
(141) Неправильный у тебя индекс - индекс надо тщательней продумывать
ситуация 1 товар1 называется "кефир"
          товар2 называется "кефир"
Товар1, Товар2 две строки справочника номенклатура
ситуация 2 ( абсурдная для товара и партий но все равно )
          товар1 называется  "123" партия1 "4"
          товар2 называется  "12"  партия1 "34"
(141) Рупор говорит что на создание индекса тратиться время больше чем на поиск и если поиск единичный то и не к чему вообще создавать индекс, а вместо этого надо написать свою быструю функцию для единичного(одноразового) поиска
   Z1
 
143 - 04.08.04 - 09:50
(Рупор абсурда) Мой вариант поисковой функции
Идея 1 симметрия алгоритма по колонке1 и колонке2
Идея 2 улучшения  том что если нашли сразу то и не надо выгружать ТаблицуЗначений

// Возвращает номер строки где значения совпадают

Функция ПоискОдиночныйПоДвумКолонкам(ТЗ,Значение1,Значение2,Колонка1,Колонка2) 
    Перем ТЗ_;
    Если ПустоеЗначение(Значение1)=1 Тогда Возврат("Глюк1 :)") КонецЕсли; 
    Если ПустоеЗначение(Значение2)=1 Тогда Возврат("Глюк2 :)") КонецЕсли; 
    Ном1=0; 
    ТЗ.НайтиЗначение(Значение1,Ном1,Колонка1); 
    Если Ном1=0 Тогда Возврат(0) КонецЕсли;
    Ном2=0; 
    ТЗ.НайтиЗначение(Значение2,Ном2,Колонка2); 
    Если Ном2=0 Тогда Возврат(0) КонецЕсли;
    Если Ном1 = Ном2 Тогда 
        Возврат(Ном1);
    ИначеЕсли Ном1 > Ном2 Тогда
        Зн2 = ТЗ.ПолучитьЗначение(Ном1,Колонка2);
        Если Зн2 = Значение2 Тогда
            Возврат(Ном1);
        КонецЕсли;
        Ном3 = Ном1 + 1;
    Иначе
        Зн1 = ТЗ.ПолучитьЗначение(Ном2,Колонка1);
        Если Зн1 = Значение1 Тогда
            Возврат(Ном2);
        КонецЕсли;
        Ном3 = Ном2 + 1;
    КонецЕсли;
    Дельта = Ном3;
    СписокКолонок = Колонка1 + "," + Колонка2;
    ТЗ.Выгрузить(ТЗ_,Ном3, ,СписокКолонок );
    Если ТЗ_.КоличествоСтрок() <= 0 Тогда Возврат(0) КонецЕсли;
    Пока 1=1 Цикл 
        Ном1=0; 
        ТЗ_.НайтиЗначение(Значение1,Ном1,Колонка1); 
        Если Ном1=0 Тогда Возврат(0) КонецЕсли;
        Ном2=0; 
        ТЗ_.НайтиЗначение(Значение2,Ном2,Колонка2); 
        Если Ном2=0 Тогда Возврат(0) КонецЕсли;
        Если Ном1 = Ном2 Тогда 
            Возврат(Дельта + Ном1);
        ИначеЕсли Ном1 > Ном2 Тогда
            Зн2 = ТЗ_.ПолучитьЗначение(Ном1,Колонка2);
            Если Зн2 = Значение2 Тогда
                Возврат(Дельта + Ном1);
            КонецЕсли;
            Ном3 = Ном1 + 1;
        Иначе
            Зн1 = ТЗ_.ПолучитьЗначение(Ном2,Колонка1);
            Если Зн1 = Значение1 Тогда
                Возврат(Дельта + Ном2);
            КонецЕсли;
            Ном3 = Ном2 + 1;
        КонецЕсли;
        Дельта = Дельта + Ном3;
        ТЗ_.Выгрузить(ТЗ_,Ном3, , );
        Если ТЗ_.КоличествоСтрок() <= 0 Тогда Возврат(0) КонецЕсли;
    КонецЦикла; 
КонецФункции
   Warlock
 
144 - 04.08.04 - 09:55
(140)NS, спасибо за поддержку. А ведь выше по тексту (2) раскритиковали немерянно(может быть не вдумавшись, да и я не объяснил...). Так что перебор - универсальнее, хотя надо смотреть для конкретных случаев по ситуации(может другой алгоритм будет работать лучше перебора)...
   Громобой
 
145 - 04.08.04 - 10:01
(144) Шутишь? При неоднократном поиске твой метод - г...
Ты кстати наверное по-другому и не делал никогда?
   Warlock
 
146 - 04.08.04 - 10:13
(145)В большинстве случаев результатами запроса являются небольшие объемы данных, и перебор справляется с небольшим количеством очень хорошо. Если объем данных велик, и поиск надо делать много раз, то я не зацикливаюсь на нахождении супероптимального поиска по ТЗ... Я оцениваю ситуацию комплексно(исходя из исходных данных и условий) и, возможно, перестраиваю запрос, меняю алгоритм получения даныых, и т.д. Все зависит от конкретной ситуации. Так вот. Ответ на (145)"Ты кстати наверное по-другому и не делал никогда?" - делал.
Ответ на (0) - универсальное решение(ведь кроме условия поиска других условий не было) - перебор строк.
   VladZagorsky
147 - 04.08.04 - 10:24
(142) Я показал идею. По поводу твоего замечания про

"товар1 называется  "123" партия1 "4"
товар2 называется  "12"  партия1 "34""  

согласен, только в данном случае таких проблем не будет. Это факт.
   User63
148 - 04.08.04 - 10:26
Даа... Тема то актуальной оказалась. С учетом всех всех вариантов, по моему, для меня самый оптимальный вариант (5) с учетом (9).
Спасибо всем.
   Громобой
 
149 - 04.08.04 - 10:28
(146) Везет тебе, у тебя объемы данных маленькие... И задачи такие же...
Кстати, если в ТЗ всего на 10 000 строк 100 раз выполнять поиск твоим методом, то уходит времени в 40-50 раз больше, чем если 1 раз создать поле "индекс" (ты сказал что это хорошая ИДЕЯ, т.е. для тебя это новое) и потом по этому индексу искать.
 
 
   User63
150 - 04.08.04 - 10:29
(147) Между "товар" и "партия", наверное, надо какой-нибудь символ добавить, например "_". Тогда все нормально должно пройти...
   Z1
 
151 - 04.08.04 - 10:34
(150) Не какой то а тот который никогда не встречается в наименовании.
Например РазделительСтрок или Симв(255)
А еще лучше (уже было сказано выше ) использовать ID из справочника вместо названия, кода.
   IAm
 
152 - 04.08.04 - 10:35
144 NS-у снились кошмары
   Громобой
 
153 - 04.08.04 - 10:36
(IAm) Кстати твой вариант в (5) работает так же быстро, как и вариант с созданием индекса (кстати время на создание индекса тратится просто смешное). Но если нужно сравнивать хотя бы 3 параметра, например Склад,Товар,Номенклатура то будет работать хуже. А варианты типа (20)и(24) вообще не выдерживают критики. Время на выгрузку ТЗ тратится неслабое, а если искать нужно несколько раз, то вообще хана (это кстати относится к Рупору тоже).
   IAm
 
154 - 04.08.04 - 10:37
Для множественного поиска ничего красивше индекса нету, для одиночного ничего элегантнее чем в (24) не придумано, и я не понял, куда галки делись.
   Громобой
 
155 - 04.08.04 - 10:38
(151) Я же написал раньше что использовать надо ЗначениеВСтрокуВнутр() либо ЗначениеВСтроку(). Так накладок не будет.
   IAm
 
156 - 04.08.04 - 10:39
153 Ну и ладно
   Громобой
 
157 - 04.08.04 - 10:43
(154) "Для множественного поиска ничего красивше индекса нету" - согласен. Но для одиночного ничего элегантнее твоего (5) нет. (24) - не элегантно, т.к. при большой ТЗ будит ЗНАЧИТЕЛЬНО тормознее, потому что основное  время  займет  ТЗ.Выгрузить(ТЗ_).
   VladZagorsky
158 - 04.08.04 - 10:44
(150) Еще раз повторюсь: я показал идею.

P.S. Никому никогда не давал готовых решений - это расслабляет.
   IAm
 
159 - 04.08.04 - 10:47
157 Если нужно получить номер строки, то решение в 5 не покатит.
ТЗ.Выгрузить(ТЗ_); можно заменить на ТЗ.Выгрузить(ТЗ_,,,"Колонка1,Колонка2");
Время экономит.
   IAm
 
160 - 04.08.04 - 10:49
Умные все стали, на вас не угодишь.
   Z1
 
161 - 04.08.04 - 10:51
(157) ну и что решение (5) даст для ТЗ
1, 1  - 1000 строк ( тысяча одинаковых строк)
1, 2  - 1001-ая строка
при поиске 1, 2
   Громобой
 
162 - 04.08.04 - 10:56
(160) :) В (159) ты прав на 100%.
Значит постановим: в случае многократного поиска ответ (76) - лучший
в случае однократного поиска вариант (24) с учетом (159) - лучший.
ЗЫ. IAm, повесим медали на грудь и разбежимся.
   Громобой
 
163 - 04.08.04 - 11:00
(161) Друг мой, а что даст твое "Не какой то а тот который никогда не встречается в наименовании. Например РазделительСтрок или Симв(255)" если товары и номенклатуры имеют АБСОЛЮТНО одинаковое строковое представление и даже код, но как объекты они разные??? Давай не будем придумывать редковстречающиеся варианты? И вообще, читай (162)
   Z1
 
164 - 04.08.04 - 11:06
(163) Когда споткнешься на таких "редковстечающихся вещах" , потратишь день-два
на поиск их, а еще если при этом у руковоства на столе будут неправильные цифры например по прибыли тогда прочувствуешь что есть редковстречающиеся случаи.
Ситуацию с такой ошибкой в ТЗ очень давно описывал NS.
(162)  143 чуть быстрее работает чем 24
   VladZagorsky
165 - 04.08.04 - 11:07
Хм...  Перечитал все сначала...  Поймал себя на мысле, что похож на персонажа из анегдота:

Из дневника нового русского.
... "Вчера перечитал пейджер... Много думал..."
   Громобой
166 - 04.08.04 - 11:35
(164) Ты заметь,я (5) не писал. А ты на (163) не ответил.
   Den
 
167 - 04.08.04 - 11:51
Самый правильный ответ на (0) в (1). А все остальное - это только те самые размышления, после пейджера
   Громобой
 
168 - 04.08.04 - 11:55
(167) О, еще один циклично-поточный программист...
   Z1
 
169 - 04.08.04 - 12:00
(166) Но post 157 твой и на мой взгляд неправильный см 161.
В 163 я вообще не вижу вопроса ко мне. Сформулируй вопрос поконкретней - отвечу.
   Громобой
170 - 04.08.04 - 12:20
(169) В 163 я говорю что ты дал неправильные указания для построения индекса. Это типа как в 161 ты привел редковстречающийся пример, а я тебе привел ответный пример.
   Z1
 
171 - 04.08.04 - 12:37
(170) По поводу индеска как раз я и утверждал см 142
"индекс надо тщательней продумывать " ( с примером к чему может привести плохой индекс). и см также  151 как один из вариантов индекса.
Ну и чем же (161) редковстречающийся алгоритм 5 на нем не работает хорошо давай я тебе другой пример приведу ( более правдоподобный )
1,1
1,2
1,3
....
1, 1000
1, 1001
Алгоритм из 5 очень плохо будет искать 1, 1001
Ответного тобой примера не видел.
Опять же в 162 ты утверждаешь что для постановки Рупора 76 лучшее решение.
Обоснуй чем 76 лучше 143
   Z1
 
172 - 04.08.04 - 12:40
"Опять же в 162 ты утверждаешь что для постановки Рупора 76 лучшее решение.
Обоснуй чем 76 лучше 143 "
Сорри надо читать так
Опять же в 162 ты утверждаешь что для постановки Рупора 24 лучшее решение.
Обоснуй чем 76 лучше 24
   Громобой
173 - 04.08.04 - 12:47
(172) Замнем для ясности? Пора поесть :)
   Den
 
174 - 04.08.04 - 15:03
(168) Почему это циклично-поточный? Вопрос был "можно ли..." (0), ответ "можно" (1)
   User63
175 - 04.08.04 - 15:05
Обед закончился?
   Громобой
176 - 04.08.04 - 15:27
(175) Ответ "да"
   IAm
 
177 - 04.08.04 - 15:29
176 А обед?
   Громобой
178 - 04.08.04 - 15:30
(177) Хорош. Прошлое совершенное время.
   NS
 
179 - 04.08.04 - 15:34
Для разового поиска - всяко бытрее простой перебор...
Так как добавление любой колонки с заполнением - эн логарифмов эн....
в методе (5) - не узнать номер строки...
И раз уж отсортировал - то лучше бинарный поиск (логарифм вместо эн)
   NS
 
180 - 04.08.04 - 15:35
Для разового поиска - всяко бытрее простой перебор...
Так как добавление любой колонки с заполнением - эн логарифмов эн....
в методе (5) - не узнать номер строки...
И раз уж отсортировал - то лучше бинарный поиск (логарифм вместо эн)
   Громобой
181 - 04.08.04 - 15:45
(180) Оп-п-паааньки... Слушай, сделай одолжение, подумай: есть ТЗ в 100 000 строк (хотя это не важно), в 99 999 строке искомое значение, что быстрее - перебрать все строки, выполняя операцию сравнения (тоже время занимает), или  сделать хотя-бы раз ТЗ.Найти() а дальше перебирать и сравнивать?
   Громобой
182 - 04.08.04 - 15:47
(IAm) Если я написал бы на (2) кг/ам это означало бы что я с ним типа согласен, не так ли?
   Guk
 
183 - 04.08.04 - 15:49
(181) Я не проверял, но быстрее будет, как сказал NS. По-любому. ИМХО...
И вообще, если у человека теперь не светятся синие яйца, это еще не повод с ним спорить...
   Громобой
184 - 04.08.04 - 15:54
(183) Не повод спорить? Даже если он НЕ ПРАВ? Я такие алгоритмы по методу (5) не раз переписывал после людей считающих как (180). Да, кстати, раз уж ты не проверял, то убыстрение в некоторых случаях в 5-7 раз. Я проверял.
   IAm
 
185 - 04.08.04 - 16:01
182 Не знаю. Обычно пишут когда думают что несогласны.
   Guk
 
186 - 04.08.04 - 16:02
(184) Ты проверял? Хорошо, теперь верю тебе. ТЫ ПРАВ! NS НЕ ПРАВ!
А вообще, мне насрать...
   Громобой
187 - 04.08.04 - 16:05
(185) Спасибо. Ты подтвердил мои предположения :) "а" означает автор, "к" креатив, но что же за буквы "г" и "м"?
(186) Ай, молодца!
   Z1
 
188 - 04.08.04 - 16:11
(180) Для разового поиска перебор это просто N.
Все дело в реалиции этого перебора.
Одно дело перебор через интерпретатор 1с и
другое дело тот же самый перебор через метод НайтиЗначение в ТЗ, реализованный
на языке Си++.
   NS
 
189 - 04.08.04 - 16:21
Кто спорит - смотрим (140) и предыдущий диалог...
Есть ТЗ, неотсортированная, нужно найти любую строку, с данной партией, и товаром - и сообщить НОМЕР СТРОКИ в изначальной таблице...
Мной предложен способ - если кто-то считает, что можно разовый поиск сделать быстрее - предлагайте свой вариант.
стр=0;
ТЗ.ВыбратьСтроки(); 
пока тЗ.ПолучитьСтроку()=1 цикл 
если ТЗ.Номенклатура=номенклатура тогда
 если ТЗ.Партия=партия Тогда 
   стр=ТЗ.Номерстроки; 
   прервать; 
 конецесли; 
конецесли; 
КонецЦикла; 
если стр=0 тогда
  сообщить("не нашли");
Иначе
  сообщить(стр);
КонецЕсли;
можно подготовить тестовый пример - ТЗ на 10000 строк, в первой и второй колонке случайное целое число из диапазона 1..100
   IAm
 
190 - 04.08.04 - 16:22
187
"м" - молодец
"г" - очень хороший, лучше не бывает
   Z1
 
191 - 04.08.04 - 16:42
(189) Осталось найди судью или судей. Создать несколько эталонных ТЗ и проверить алгоритмы
(189),  (24), (143)
для постановки задачи обозначеной в (189).
   Тор
 
192 - 04.08.04 - 16:45
Варлок задолбал ветку в базу знаний добавлять
   Тор
 
193 - 04.08.04 - 16:46
Варлок задолбал ветку в базу знаний добавлять
   Warlock
 
194 - 04.08.04 - 16:48
(Тор)Что-то имешь против?! Говори!
   Z1
 
195 - 04.08.04 - 16:48
(all) Интересно а по какому принципу ставят галки для базы знаний?
Некоторые посты без галок весьма ценЫ (например 188 не потому что мой ) а их не будет в базе знаний - обидно. Такие ветки или целиком все или ничего (ИМХО)
   Тор
 
196 - 04.08.04 - 16:49
(194) Отдай свою звезду IAm! Посыпь голову пеплом.
   NS
 
197 - 04.08.04 - 16:52
(191) И что победителю?
Как обычно, 500$?
   Warlock
 
198 - 04.08.04 - 16:52
(Z1)Субъективно. Зависит от инженера знаний.
"Такие ветки или целиком все или ничего" - флеймят тут всякие...
(Тор)Наезжать каждый может... Бочки катить много ума не надо! И хватит IAm'ом прикрываться. Ты так судишь меня, а ведь я уверен, что все мои посты ты не читал.
   Громобой
199 - 04.08.04 - 16:56
Для маленьких ТЗ (до 1000 строк) для нахождения строки по неограниченному количеству условий хорошо работает такая функция:
Функция НайтиСтрокуТЗ(ТЗ,Спис)  
  Н1=0;  
    ТЗ2=СоздатьОбъект("ТаблицаЗначений");
    ТЗ.Выгрузить(ТЗ2);
    ТЗ2.НоваяКолонка("Н","Число");
    ТЗ2.Заполнить(1,,,"Н");
    
    Для П=1 по Спис.РазмерСписка() цикл
        Кол="";
        Зн=Спис.ПолучитьЗначение(П,Кол);
        Нстр=0;
        Если ТЗ2.НайтиЗначение(Зн,Нстр,Кол)=1 тогда
            ТЗ2.Выгрузить(ТЗ2,Нстр);
        Иначе
            Возврат;
        КонецЕсли;               
        Если П=Спис.РазмерСписка() тогда
            Н1=ТЗ.КоличествоСтрок()-ТЗ2.КоличествоСтрок()+1;
        КонецЕсли;    
    КонецЦикла;                   
   Возврат Н1;
КонецФункции

где Спис - список значений с условиями, например:
    Спис=СоздатьОбъект("СписокЗначений");
    Спис.ДобавитьЗначение(ВыбСклад,"Склад"); 
    Спис.ДобавитьЗначение(ВыбТМЦ,"ТМЦ"); 
   Спис.ДобавитьЗначение(ВыбНоменклатура,"Номенклатура");
Строковое представление в списке такое как название столбца в ТЗ
   Тор
 
200 - 04.08.04 - 17:01
(Варлок) Не будем спорить. Ты гениален.

  1  2  3   

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