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

  • Автор темы Doubleagent
  • Дата начала
D

Doubleagent

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

Дайнеко

Код:
Функиця КолНезаполненных(Табличнаячасть)
Перем Кол;
Кол = 0;
Для каждого СтрокаТаблицы Из Табличнаячасть Цикл
Если НЕ(СтрокаТаблицы.Б = 0) Тогда
Кол = Кол + 1;
КонецЕсли;
КонецЦикла;
Возврат Кол;
КонецФункции;
 
D

Darlock

Код:
Функиця КолНезаполненных(Табличнаячасть)
Перем Кол;
Кол = 0;
Для каждого СтрокаТаблицы Из Табличнаячасть Цикл
Если НЕ(СтрокаТаблицы.Б = 0) Тогда
Кол = Кол + 1;
КонецЕсли;
КонецЦикла;
Возврат Кол;
КонецФункции;

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

Код:
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить("Номенклатура", ТекТовар);
НайденныеСтроки = Состав.НайтиСтроки(ПараметрыОтбора);
 
D

Doubleagent

Большое Спасибо. Все работает=)
 
V

vitfil

Я вот думаю, а чем запрос не прокатывает?
что-то типа такого
select count() from ТабличнаяЧасть where Количество = 0
 
D

Darlock

Можно и запросом, все уперается в здравый смысл. Только запрос в том виде в котором предложили не сработает в 1С.
 
V

vitfil

Darlock, а я разве сказал, что это готовый кусок кода? Я вообще противник предоставления готовых примеров при обучении - исключительно указание направления поисков. А четкие выверенные примеры должны находиться в документации. Но это все - всего лишь мое ИМХО, правда, основанное на определенном опыте.
 
B

Buster

Чтоб не городить код обхода цикла было бы проще мне кажется след. образом
Код:
КоличествоНеЗаполненных = ТабличнаяЧасть.НайтиСтроки(Новый Структура("Количество", 0)).Количество();

И отсюда можно очень легко узнать что нам надо
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!