Как получить целую часть числа и управлять табличной частью в 1С
Чтобы узнать, как получить целую часть числа и работать с табличной частью в 1С, применяйте функцию Цел() и методы Объект.ИмяТабличнойЧасти. Цел(12.9) вернет 12, отбрасывая дробную часть. ТЧ управляется методами Добавить(), Очистить() и циклом Для Каждого.
Оглавление
Извлечение целой части числа
Во встроенном языке 1С для получения целой части используется функция Цел(Число). Она просто отбрасывает дробную часть без математического округления.
Примеры:
Цел(12.9)вернет12.Цел(-12.9)вернет-12.
Если вам нужно не отбросить дробную часть, а математически округлить число до целого, используйте функцию Окр(Число, 0). Например, Окр(12.6, 0) вернет 13.
Функция ЦЕЛ(Число) также доступна в языке запросов 1С (в Консоли запросов или при формировании отчетов) и работает по тому же принципу.
Программное управление табличной частью
Табличная часть (ТЧ) в коде представляет собой коллекцию строк. Для обращения к ней из модуля формы документа или справочника используется префикс Объект.. Пример: Объект.ИмяТабличнойЧасти (например, Объект.Товары).
Обращение к несуществующему имени табличной части (опечатка в Объект.Товары вместо Объект.ТоварныеНаборы) приведет к ошибке «Поле объекта не обнаружено» и прервет выполнение кода.
Если вы пишете код не в модуле формы, а в модуле самого объекта (документа или справочника), префикс Объект. не нужен. Нужно писать напрямую: Товары.Добавить().
Добавление строки
Добавление новой строки в ТЧ выполняется методом Добавить(). Он возвращает ссылку на созданную строку, которой сразу можно задавать значения.
НоваяСтрока = Объект.Товары.Добавить();
НоваяСтрока.Количество = 5;
Перебор строк
Перебор всех строк ТЧ осуществляется циклом Для Каждого ... Из ....
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
// Действия со строкой
КонецЦикла;
Удаление строки
Для удаления конкретной строки из ТЧ используется метод Удалить(Строка).
Объект.Товары.Удалить(СтрокаТЧ);
Случайный вызов Объект.ИмяТабличнойЧасти.Очистить() в коде без предварительного сохранения данных или подтверждения пользователя удалит все строки табличной части при выполнении процедуры.
Полная очистка
Полная очистка табличной части от всех строк выполняется методом Очистить().
Объект.Товары.Очистить();
Настройки для пользователей интерфейса
Если вы обычный пользователь интерфейса 1С (бухгалтер, менеджер) и не пишете код, работа с этими элементами происходит иначе.
«Целая часть» числа настраивается в параметрах вывода отчета или через формат ячейки: меню «Еще» -> «Формат» -> «Число» -> «Целое».
Табличная часть заполняется вручную через кнопки «Добавить» или «Подобрать» на панели инструментов.
Частые ошибки
- Путаница между отбрасыванием и округлением. Использование
Цел(12.9)вместоОкр(12.9, 0)даст12вместо ожидаемых13. - Забытый префикс
Объект.. При написании кода в модуле формы обращение к ТЧ просто по имениТоварывызовет ошибку, так как требуетсяОбъект.Товары. - Потеря данных при очистке. Использование метода
Очистить()без условий и подтверждений стирает всю табличную часть безвозвратно.
FAQ
Как округлить число до целого в 1С?
Используйте функцию Окр(Число, 0). Например, Окр(12.6, 0) вернет 13. Функция Цел() только отбрасывает дробную часть.
Работает ли функция целой части в запросах 1С?
Да, функция ЦЕЛ(Число) доступна в языке запросов 1С, например, в Консоли запросов или при формировании отчетов.
Нужен ли префикс Объект. при работе с ТЧ в модуле объекта?
Нет. Если код пишется в модуле самого объекта (документа или справочника), префикс не нужен, нужно писать напрямую: Товары.Добавить().