Получает количество строк табличной части.
Синтаксис
Количество()Примеры платформы
ВсегоСтрок = Состав.Количество();Полное описание, параметры и ограничения
ПланСчетовВидыСубконто.<Имя плана счетов>.Количество (ChartOfAccountsExtDimensionTypes.<Chart of accounts name>.Count)
ПланСчетовВидыСубконто.<Имя плана счетов> (ChartOfAccountsExtDimensionTypes.<Chart of accounts name>)
Количество (Count)
Доступен, начиная с версии 8.0.
Синтаксис:
Количество()
Возвращаемое значение:
Тип: Число.
Описание:
Получает количество строк табличной части.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Пример:
ВсегоСтрок = Состав.Количество();
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Подготовить учебный активный счёт кассы, не создавая остаток
Счёт описывает место отражения учёта. Его создание в памяти не создаёт проводку, наличные деньги или строку плана счетов в базе.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Создайте НОВУЮ пустую файловую базу, корневое имя УчебныйУчет85. В рабочей БП/КА2/УТ/УНФ эти задачи не запускайте. Это технический пример API, не готовый бухгалтерский учёт.
Планы видов характеристик → Добавить: УчебныеАналитики85. Тип значения только Строка 30. Элементы, дополнительные реквизиты, табличные части и предопределённые значения не создавайте.
Планы счетов → Добавить: УчебныеСчета85. ДлинаКода 10, МаскаКода @@@.@@@.@@, ДлинаНаименования 100, ДлинаПорядка 20. АвтоПорядокПоКоду выключен, КонтрольУникальности включён. ВидыСубконто=УчебныеАналитики85, МаксКоличествоСубконто=2.
У плана счетов не создавайте пользовательские реквизиты, табличные части, признаки учёта/субконто, предопределённые счета, формы, команды, макеты и дополнительные индексы. Модули оставьте пустыми. Историю данных и два флага обработки её версий выключите. Расширений нет.
Обновите конфигурацию БД. Создайте серверный обработчик ВыполнитьПример() Экспорт в собственной обработке. Фрагмент вставляйте в тело; запускайте уроки по отдельности.
Объекты создаются только в памяти: Записать/Удалить/Заблокировать не вызываются. Регистров бухгалтерии, проводок и фактических остатков в этом примере нет.
Описание = Метаданные.ПланыСчетов.Найти("УчебныеСчета85");
Если Описание = Неопределено Тогда
ВызватьИсключение "Сначала создайте собственный план УчебныеСчета85";
КонецЕсли;
Если Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
Или Описание.ДлинаПорядка <> 20 Или Описание.МаскаКода <> "@@@.@@@.@@"
Или Описание.АвтоПорядокПоКоду Или Описание.МаксКоличествоСубконто <> 2 Тогда
ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.ВидыСубконто = Неопределено Тогда
ВызватьИсключение "Назначьте собственный план аналитик";
КонецЕсли;
Если Описание.ВидыСубконто.Имя <> "УчебныеАналитики85" Тогда
ВызватьИсключение "Нужны только собственные учебные аналитики";
КонецЕсли;
Менеджер = ПланыСчетов.УчебныеСчета85;
Касса = Менеджер.СоздатьСчет();
Касса.Код = "50";
Касса.Наименование = "Учебная касса";
Касса.Вид = ВидСчета.Активный;
Касса.Забалансовый = Ложь;
Касса.Порядок = "50";
Касса.ДополнительныеСвойства.Вставить("МеткаЗадачи", "Только память");
Сообщить(Касса.ЭтоНовый());
Сообщить(Касса.Ссылка.Пустая());
Сообщить(Касса.Родитель.Пустая());
Сообщить(Касса.Уровень() = 0);
Сообщить(Не Касса.ПометкаУдаления);
Сообщить(Не Касса.Предопределенный);
Сообщить(Касса.ИмяПредопределенныхДанных = "");
Сообщить(Касса.ВидыСубконто.Количество() = 0);
Сообщить(Касса.ДополнительныеСвойства.МеткаЗадачи = "Только память");
Сообщить(Касса.ЭтотОбъект = Касса);
Сообщить(Касса.Модифицированность());
Сообщить(Касса.Метаданные().Имя = "УчебныеСчета85");
Сообщить(Касса.ПроверитьЗаполнение());
Сообщить("Версия незаписанного объекта: " + Касса.ВерсияДанных);
Сообщить("Тип параметров истории: " + Строка(ТипЗнч(Касса.ЗаписьИсторииДанных)));
Сообщить("Режим загрузки обмена: " + Строка(Касса.ОбменДанными.Загрузка));Разбор по шагам
СоздатьСчет возвращает объект. Заполняем Код, Наименование, вид Активный, признак баланса и собственный порядок.
Ссылка пока пустая, объект новый. Отсутствие родителя означает верхний уровень 0.
ВидыСубконто у объекта — строки настроек конкретного счёта; у метаданных — назначенный план видов характеристик. У нового счёта строк нет, хотя максимум равен 2.
Служебная МеткаЗадачи помещена в ДополнительныеСвойства, не в пользовательский реквизит и не в базу.
ПроверитьЗаполнение вызывает соответствующее событие; по подготовке модули пустые. Успех проверки не означает успешную будущую запись.
ВерсияДанных, параметры истории и обмена показываются отдельно. История/обмен этим кодом не выполняются.
Как проверить результат
Тринадцать логических сообщений дают Истина при исходной подготовке.
После выполнения в списке УчебныеСчета85 счёт 50 не появился: объект не записывался. Никакого остатка кассы не рассчитано.
Ожидаемый результат
Подготовлено определение активного счёта в памяти, с явным разграничением счёта, субконто и проводок.
На что обратить внимание
Активный и Забалансовый — разные характеристики счёта, а не сумма и валюта.
Модифицированность описывает объект в памяти, не наличие изменений в сохранённых данных.
Проверка заполнения не проверяет весь будущий учёт, права записи и баланс проводок.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Проверить паспорт ссылки собственного определения счёта без проводок
Определение счёта временно записывается в свою транзакцию. Код, вид, порядок, пустая аналитика и признаки читаются по настоящей ссылке; это не денежные данные.
Где и как запускать
Полный серверный модуль своей НОВОЙ пустой учебной конфигурации по подготовке; платформа 8.5.1.1343. При записи всегда откат, рабочие данные не используются. Здесь не запускался.
Подготовка
Создайте НОВУЮ пустую файловую базу, корневое имя УчебныйУчет85. В рабочей БП/КА2/УТ/УНФ эти задачи не запускайте. Это технический пример API, не готовый бухгалтерский учёт.
Планы видов характеристик → Добавить: УчебныеАналитики85. Тип значения только Строка 30. Элементы, дополнительные реквизиты, табличные части и предопределённые значения не создавайте.
Планы счетов → Добавить: УчебныеСчета85. ДлинаКода 10, МаскаКода @@@.@@@.@@, ДлинаНаименования 100, ДлинаПорядка 20. АвтоПорядокПоКоду выключен, КонтрольУникальности включён. ВидыСубконто=УчебныеАналитики85, МаксКоличествоСубконто=2.
У плана нет пользовательских реквизитов/табличных частей, признаков учёта и предопределённых счетов. История выключена, регистров бухгалтерии, проводок и реальных остатков нет. Это технический опыт типов, не методология учёта.
Опыт с маской @@@.@@@.@@ использует строковые коды. Не переносите его сравнения на иной числовой/немаскированный план. АвтоПорядокПоКоду выключен: Порядок хранится отдельно от кода.
Модули собственных объектов/менеджеров пустые, подписок, расширений и внешних действий нет. Не используйте рабочую базу или её копию с действующими обработчиками.
Код здесь в 1С не запускался. HTML показывает урок: проверены исходники и установленная справка именно 8.5.1.1343, но запись/открытие формы в ваших базах не выполнялись.
Ссылка идентифицирует запись, объект служит для её изменения. Свойства ссылки readonly, ВерсияДанных — непрозрачная строка, не номер версии конфигурации.
Непустая плановая ссылка не подтверждает существование записи; перед чтением данных отсутствующая запись исключается отдельно.
В собственной базе создайте серверный общий модуль УчебныеСсылкиПланов, вставьте ВЕСЬ модуль одного урока. ВыполнитьПример() Экспорт вызывайте из собственной процедуры формы с &НаСервереБезКонтекста. Обновите конфигурацию БД.
Опыт записи допускается только вне чужой транзакции. Внутри своей транзакции создаются исключительно новые собственные записи; при успехе и ошибке выполняется откат. Не заменяйте его фиксацией.
Записанные собственные ссылки запоминаются сразу после записи. После отмены каждая проверяется на ПолучитьОбъект=Неопределено. Никакого удаления по имени, первой строке или всей коллекции нет.
Процедура ВыполнитьПример() Экспорт
Описание = Метаданные.ПланыСчетов.Найти("УчебныеСчета85");
Если Описание = Неопределено Тогда
ВызватьИсключение "Сначала создайте собственный план УчебныеСчета85";
КонецЕсли;
Если Описание.ДлинаКода <> 10 Или Описание.ДлинаНаименования <> 100
Или Описание.ДлинаПорядка <> 20 Или Описание.МаскаКода <> "@@@.@@@.@@"
Или Описание.АвтоПорядокПоКоду Или Описание.МаксКоличествоСубконто <> 2 Тогда
ВызватьИсключение "Настройки учебного плана не соответствуют подготовке";
КонецЕсли;
Если Описание.ВидыСубконто = Неопределено Тогда
ВызватьИсключение "Назначьте собственный план аналитик";
КонецЕсли;
Если Описание.ВидыСубконто.Имя <> "УчебныеАналитики85" Тогда
ВызватьИсключение "Нужны только собственные учебные аналитики";
КонецЕсли;
Менеджер = ПланыСчетов.УчебныеСчета85;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Не запускайте урок внутри чужой транзакции";
КонецЕсли;
СозданныеСсылки = Новый Массив;
НачатьТранзакцию();
Попытка
Найденная = Менеджер.НайтиПоКоду("41.1");
Если Найденная <> Неопределено Тогда
Если Не Найденная.Пустая() Тогда
ВызватьИсключение "Свой код опыта уже занят: не изменяйте существующий счёт";
КонецЕсли;
КонецЕсли;
Счет = Менеджер.СоздатьСчет();
Счет.Код = "41.1";
Счет.Наименование = "Собственное определение счёта";
Счет.Вид = ВидСчета.Активный;
Счет.Забалансовый = Ложь;
Счет.Порядок = "OWN-ORDER-01";
Счет.Записать();
СозданныеСсылки.Добавить(Счет.Ссылка);
Читаемая = Счет.Ссылка;
Сообщить(Читаемая.Код = "41.1");
Сообщить(ТипЗнч(Читаемая.Код) = Тип("Строка"));
Сообщить(Читаемая.Наименование = "Собственное определение счёта");
Сообщить(Читаемая.Ссылка = Читаемая);
Сообщить(Читаемая.Родитель.Пустая());
Сообщить(Читаемая.Вид = ВидСчета.Активный);
Сообщить(Не Читаемая.Забалансовый);
Сообщить(Читаемая.ВидыСубконто.Количество() = 0);
Сообщить(Читаемая.Порядок = "OWN-ORDER-01");
Сообщить(Не Читаемая.ПометкаУдаления);
Сообщить(Не Читаемая.Предопределенный);
Сообщить(Читаемая.ИмяПредопределенныхДанных = "");
Сообщить(ТипЗнч(Читаемая.ВерсияДанных) = Тип("Строка"));
Сообщить("Это определение счёта, не проводка, не сумма и не остаток. Субконто пусты");
ОтменитьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
Сообщить(Не ТранзакцияАктивна());
Для Каждого СозданнаяСсылка Из СозданныеСсылки Цикл
Сообщить(СозданнаяСсылка.ПолучитьОбъект() = Неопределено);
КонецЦикла;
КонецПроцедурыРазбор по шагам
Проверить отсутствие чужой транзакции и занятости собственного кода. Существующий счёт не использовать.
Создать свой новый объект, задать код, имя, активный вид, незабалансовость и отдельный ручной Порядок.
Временно записать только своё определение, запомнить настоящую ссылку.
Проверить все readonly-свойства; ВидыСубконто — специальная табличная часть настроек, здесь пустая.
Отделить свой ручной Порядок от кода, а строку версии от бухгалтерского остатка.
Отменить транзакцию и проверить отсутствие своего записанного определения.
Как проверить результат
Тринадцать сравнений паспорта Истина.
Нет регистров бухгалтерии, проводок и вычисления денежных остатков.
После отката своего счёта нет, транзакция закрыта.
Ожидаемый результат
Все двенадцать свойств ссылки счёта разобраны на собственном определении с откатом.
На что обратить внимание
Прикладной Тип существует только после создания указанных собственных метаданных. В функциональный Новый массив передаёт аргументы конструктора.
Свойства ссылки не присваиваются. Для изменения копии используется именно новый объект, который возвращает Скопировать.
Уровень пустой ссылки вызывает исключение; иерархические методы используются только у записанных собственных объектов внутри транзакции.
Откат БД не отменяет внешние действия обработчиков. Поэтому конфигурация пустая, модули/подписки без сети, печати, файлов и почты.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.