Как узнать количество строк в столбце с "ЗначениеЗаполнено" без цикла ОФ
Есть ТабличнаяЧасть.Количество() которая определяет количество строк в таблице. А как без цикла узнать количества заполненных строк в таблице?
Если работать с циклом, то каждое действие вызывает цикл, а это сильно грузит процесс.
Если работать с циклом, то каждое действие вызывает цикл, а это сильно грузит процесс.
Процедура ИндикацияСопоставление(Товары)
ИндикаторСоп = ЭлементыФормы.Индикатор1;
ИндикаторСоп.Значение = 0;
ИндикаторСоп.МаксимальноеЗначение=Товары.Количество();
КоличествоЗаполненыхСтрок=0;
Для Каждого СтрокаТ из Товары Цикл
Если ЗначениеЗаполнено(СтрокаТ.Номенклатура) Тогда
КоличествоЗаполненыхСтрок = Число(КоличествоЗаполненыхСтрок)+1;
КонецЕсли;
КонецЦикла;
ИндикаторСоп.Значение = КоличествоЗаполненыхСтрок;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
Как то так.
Только через ПустуюСсылку можно отобрать как я понял?.
Вызов процедуры делаю через ТоварыПриВыводеСтроки. Через что еще можно вызывать что бы срабатывало при заполнение?
Отбор = Новый Структура("Номенклатура", Справочники.Номенклатура.ПустаяСсылка());
КоличествоПустыхСтрок = Товары.НайтиСтроки(Отбор).Количество();
КоличествоПустыхСтрок = Товары.НайтиСтроки(Отбор).Количество();
Как то так.
Процедура ИндикацияСопоставление(Товары)
ИндикаторСоп = ЭлементыФормы.Индикатор1;
ИндикаторСоп.Значение = 0;
ИндикаторСоп.МаксимальноеЗначение=Товары.Количество();
Отбор = Новый Структура("Номенклатура", Справочники.Номенклатура.ПустаяСсылка());
КоличествоПустыхСтрок = Товары.НайтиСтроки(Отбор).Количество();
КоличествоЗаполненыхСтрок=Товары.Количество()-КоличествоПустыхСтрок;
ИндикаторСоп.Значение = КоличествоЗаполненыхСтрок;
КонецПроцедуры
ПоказатьТолько через ПустуюСсылку можно отобрать как я понял?.
Вызов процедуры делаю через ТоварыПриВыводеСтроки. Через что еще можно вызывать что бы срабатывало при заполнение?
(1)Передать таблицу параметром в запрос и запросом.
ВЫБРАТЬ
ТаблицаДанных.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВТ_ТаблицаДанных
ИЗ
&ТаблицаДанных КАК ТаблицаДанных
;
//////////////////////////////////////////////////////////// //////////////////
ВЫБРАТЬ
КОЛИЧЕСТВО(ВТ_ТаблицаДанных.Номенклатура) КАК Номенклатура
ИЗ
ВТ_ТаблицаДанных КАК ВТ_ТаблицаДанных
ГДЕ
НЕ(ВТ_ТаблицаДанных.Номенклатура ЕСТЬ NULL
ИЛИ ВТ_ТаблицаДанных.Номенклатура = НЕОПРЕДЕЛЕНО
ИЛИ ВТ_ТаблицаДанных.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяССылка))
ВЫБРАТЬ
ТаблицаДанных.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ ВТ_ТаблицаДанных
ИЗ
&ТаблицаДанных КАК ТаблицаДанных
;
////////////////////////////////////////////////////////////
ВЫБРАТЬ
КОЛИЧЕСТВО(ВТ_ТаблицаДанных.Номенклатура) КАК Номенклатура
ИЗ
ВТ_ТаблицаДанных КАК ВТ_ТаблицаДанных
ГДЕ
НЕ(ВТ_ТаблицаДанных.Номенклатура ЕСТЬ NULL
ИЛИ ВТ_ТаблицаДанных.Номенклатура = НЕОПРЕДЕЛЕНО
ИЛИ ВТ_ТаблицаДанных.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяССылка))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот