ОБСУЖДЕНИЕ

Количество строк с нулевым значением

7 ответов 5,8 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Здравствуйте Уважаемые!
Вопрос такого плана, в ТЧ1 есть две колонки (а,б – значение число). В колонку «б» забиваем (не все строки) оценки и делим на количество заполненных. Подскажите пожалуйста как получить сумму не заполненных(1) строк в колонке «б» .
КолП = Табличнаячасть1.Количество();
срд = Табличнаячасть1.Итог("Экзамены");
Дис3С = срд /(КолП - сумманезаполненых(1)) ;
 
Код:
Функиця КолНезаполненных(Табличнаячасть)
Перем Кол;
Кол = 0;
Для каждого СтрокаТаблицы Из Табличнаячасть Цикл
Если НЕ(СтрокаТаблицы.Б = 0) Тогда
Кол = Кол + 1;
КонецЕсли;
КонецЦикла;
Возврат Кол;
КонецФункции;
 
Код:
Функиця КолНезаполненных(Табличнаячасть)
Перем Кол;
Кол = 0;
Для каждого СтрокаТаблицы Из Табличнаячасть Цикл
Если НЕ(СтрокаТаблицы.Б = 0) Тогда
Кол = Кол + 1;
КонецЕсли;
КонецЦикла;
Возврат Кол;
КонецФункции;

Как вариант можно в цикле обойти всю таблицу. Можно попробовать следующий вариант:

Код:
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Номенклатура", ТекТовар);
НайденныеСтроки = Состав.НайтиСтроки(ПараметрыОтбора);
 
Большое Спасибо. Все работает=)
 
Я вот думаю, а чем запрос не прокатывает?
что-то типа такого
select count() from ТабличнаяЧасть where Количество = 0
 
Можно и запросом, все уперается в здравый смысл. Только запрос в том виде в котором предложили не сработает в 1С.
 
Darlock, а я разве сказал, что это готовый кусок кода? Я вообще противник предоставления готовых примеров при обучении - исключительно указание направления поисков. А четкие выверенные примеры должны находиться в документации. Но это все - всего лишь мое ИМХО, правда, основанное на определенном опыте.
 
Чтоб не городить код обхода цикла было бы проще мне кажется след. образом
Код:
КоличествоНеЗаполненных = ТабличнаяЧасть.НайтиСтроки(Новый Структура("Количество", 0)).Количество();

И отсюда можно очень легко узнать что нам надо