1с таблица формы количество строк

количество строк таблицы формы

в подвале некоторой колонки установить путь к данным подвала как путь к некоторому реквизиту формы
вычислить количество строк по отбору
присвоить вычисленное значение некоторому реквизиту формы

если проще, то установите 7.7

на партнерке как то были обсуждения такие всм по отлову события поиска.
а так можете сделать через активацию строки.
например вам нужна сумма после установки поиска по какому то значению динамического списка.
в данном случае «список» это у меня динамический список формы.

&НаКлиенте
Процедура СписокПриАктивизацииСтроки(Элемент)
таб = тест();
СуммаДокументов = 0; ИтогоСуммаДокументов =0;
Для каждого стр из таб Цикл
ИтогоСуммаДокументов = ИтогоСуммаДокументов + стр.СуммаДокумента;

КонецЦикла;
СуммаДокументов = ИтогоСуммаДокументов;

&НаСервере
Функция тест()

Схема = Элементы.Список.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
Настройки = Элементы.Список.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема,Настройки. Тип(«ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений»));

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

возврат Результат;
КонецФункции

вот щас проверил тока что на тестовой базе у себя. не решение но может поможет.

Источник

Как посчитать количество строк в выводимой печатной форме

В документе, например, «Перемещение товаров» есть макет Торг-13, в макете есть шапка, подвал, и строки табличной части документа. Как посчитать сколько строк на странице занимает шапка и подвал, и сколько всего строк выводиться на страницу.

Я делаю внешнюю печатную форму Торг-13 и нужно посчитать выводимое количество строк.

(1) NatalyaVP, синтаксис помошник

ТабличныйДокумент (SpreadsheetDocument)
ТабличныйДокумент (SpreadsheetDocument)
Свойства:

АвтоМасштаб (FitToPage)
ВерхнийКолонтитул (Header)
ВстроенныеТаблицы (EmbeddedTables)
Вывод (Output)
ВыделенныеОбласти (SelectedAreas)
ВысотаСтраницы (PageHeight)
ВысотаТаблицы (TableHeight)
Защита (Protection)
ИмяПринтера (PrinterName)
ИспользуемоеИмяФайла (UsedFileName)
ИтогиСнизу (TotalsBelow)
ИтогиСправа (TotalsRight)
КлючПараметровПечати (PrintParametersKey)
КлючСохраненияПоложенияОкна (WindowOptionsKey)
КодЯзыкаМакета (TemplateLanguageCode)
КоличествоЭкземпляров (Copies)
МасштабПечати (PrintScale)
НаправлениеПерехода (StepDirection)
НижнийКолонтитул (Footer)
Области (Areas)
ОбластьПечати (PrintArea)
ОриентацияСтраницы (PageOrientation)
ОтображатьГруппировки (ShowGroups)
ОтображатьЗаголовки (ShowHeaders)
ОтображатьСетку (ShowGrid)
Параметры (Parameters)
ПовторятьПриПечатиКолонки (RepeatOnColumnPrint)
ПовторятьПриПечатиСтроки (RepeatOnRowPrint)
ПолеСверху (TopMargin)
ПолеСлева (LeftMargin)
ПолеСнизу (BottomMargin)
ПолеСправа (RightMargin)
РазборПоКопиям (Collate)
РазмерКолонтитулаСверху (HeaderSize)
РазмерКолонтитулаСнизу (FooterSize)
РазмерСтраницы (PageSize)
Рисунки (Drawings)
СохранятьСвойстваОтображения (SaveViewProperties)
ТекущаяОбласть (CurrentArea)
ТолькоПросмотр (ReadOnly)
ТочностьПечати (PrintAccuracy)
ФиксацияСверху (FixedTop)
ФиксацияСлева (FixedLeft)
ФиксированныйФон (FixedBackground)
ФоноваяКартинка (BackgroundPicture)
ЧерноБелаяПечать (BlackAndWhite)
ЧерноБелыйПросмотр (BlackAndWhiteView)
ШиринаСтраницы (PageWidth)
ШиринаТаблицы (TableWidth)
ЭкземпляровНаСтранице (PerPage)

ВставитьОбласть (InsertArea)
Вывести (Put)
ВывестиВертикальныйРазделительСтраниц (PutVerticalPageBreak)
ВывестиГоризонтальныйРазделительСтраниц (PutHorizontalPageBreak)
ЗакончитьАвтогруппировкуКолонок (EndColumnAutoGrouping)
ЗакончитьАвтогруппировкуСтрок (EndRowAutoGrouping)
ЗакончитьГруппуКолонок (EndColumnGroup)
ЗакончитьГруппуСтрок (EndRowGroup)
Записать (Write)
КоличествоСтраниц (PageCount)
КоличествоУровнейГруппировокКолонок (ColumnGroupLevelCount)
КоличествоУровнейГруппировокСтрок (RowGroupsLevelCount)
НайтиЗначение (FindValue)
НайтиТекст (FindText)
Напечатать (Print)
НачатьАвтогруппировкуКолонок (StartColumnAutoGrouping)
НачатьАвтогруппировкуСтрок (StartRowAutoGrouping)
НачатьГруппуКолонок (StartColumnGroup)
НачатьГруппуСтрок (StartRowGroup)
Область (Area)
Очистить (Clear)
Показать (Show)
ПоказатьУровеньГруппировокКолонок (ShowColumnGroupLevel)
ПоказатьУровеньГруппировокСтрок (ShowRowGroupLevel)
ПолучитьОбласть (GetArea)
Присоединить (Join)
ПроверитьВывод (CheckPut)
ПроверитьПрисоединение (CheckAttachment)
Прочитать (Read)
Скрыть (Hide)
УдалитьОбласть (DeleteArea)

Используется для доступа к свойствам и методам табличного документа в целом. При помощи этого объекта возможно управление общими характеристиками табличного документа, получение его областей, а также присоединение к табличному документу других табличных документов, группировка строк и колонок табличного документа.
Для табличного документа системой устанавливается язык по умолчанию.

Источник

1с динамический список количество строк

Как известно, в последних версиях конфигураций 1С, работающих в режиме управляемого приложения, широко используется объект ДинамическийСписок. В частности, динамические списки используются для вывода списков справочников, документов и т.п.

Иногда возникает задача полностью обойти весь динамический список и провести с его строками какие-то операции. Но тут возникает проблема: динамический список нигде не хранится целиком (на то он и динамический). Строки динамического списка подгружаются постепенно, порциями. Таким образом, у динамического списка нет итератора, с помощью которого можно было бы его обойти целиком, итоговое количество строк также неизвестно.

Решить эту проблему можно выполнив запрос, аналогичный тому, который выполняется динамическим списком. Но в этом случае, в дополнение к тексту запроса, нужно еще получить и учесть все отборы, сортировки и прочие параметры, которые установил пользователь.

К счастью, начиная с версии платформы 1С:Предприятие 8.3.6.1977, доступен более простой способ.

&НаСервере
Функция ДинамическийСписокВТаблицуЗначений ( )

//Возвращаем полученную таблицу значений
Возврат Результат ;

Вот и все. Кстати, еще один плюс данного метода в том, что он работает довольно быстро, даже если строк в динамическом списке много.

Как подсчитать итоги динамического списка (медленный вариант при большом объеме данных)

Поделиться ссылкой:

Похожее

1С 8.3 : Подсчет итогов динамического списка (медленный вариант при большом объеме данных) : 3 комментария

Если НЕ ЭлементыФормы.ДействияФормы.Кнопки.ВыводитьИтоги.Пометка Тогда
ЭлементыФормы.ДокументСписок.Колонки.СуммаДокумента.ТекстПодвала = “”;
Возврат;
КонецЕсли;

Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ДокументСписок);
Результат = Построитель.Результат.Выгрузить(); //отобранные строки типа РезультатЗапроса

на 5000 документах работало идеально, но потом жесть…((((
щас гляну как отработает Ваш код на 6741 документов.

даже пробовал через кнопку.

Кнопка.Пометка = НЕ Кнопка.Пометка;
ОбновлениеОтображения();

медленный вариант при большом объеме данных!
Это примерно сколько должно быть документов в форме списка?
на каком количестве он уже замедляем работу?

Реализовано в версии 8.3.6.1977.

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

Данные динамического списка могут понадобиться вам для того, чтобы распечатать их в нестандартном, «специфическом» виде. Или для того, чтобы выполнить с ними те или иные действия. Например, послать письмо всем контрагентам, которых вы отобрали в списке по некоторым признакам.

Кроме этого существует целый ряд задач, в которых пользователь, помимо списка элементов, хочет видеть ещё и итоговые данные, связанные с этим списком. Например, отобрав товары некоторой товарной группы и некоторого поставщика, он тут же хочет увидеть общее количество таких товаров в базе.

Динамический список сам по себе не может предоставить вам такую информацию. Задача динамического списка — обеспечить быстрый просмотр больших объёмов данных. Поэтому он считывает данные порциями, требуемыми для отображения на одном-двух экранах. И «ничего не знает», например, об общем количестве данных, которые ему предстоит считать.

В общем случае для того, чтобы получить дополнительную информацию, которую хочет пользователь, вам нужно выполнить запрос к базе данных. В точности повторяющий тот, который используется в динамическом списке.

Раньше вы могли это сделать. Но далеко не всегда это было просто. Ведь кроме текста исходного запроса, по которому работает динамический список, вам нужно было знать все отборы, сортировки и др. параметры, которые пользователь интерактивно установил в таблице, отображающей данные.

Теперь эта задача решается просто. У таблицы динамического списка появились два новых метода:

Таким образом, вы получаете и саму схему компоновки данных, и, главное, все её настройки, благодаря которым пользователь видит список именно таким. Вам остаётся только лишь программно скомпоновать макет и вывести его в коллекцию значений (для программной обработки) или в табличный документ (для отображения):

1

В результате вы получите структуру (или отчет), содержащую колонки и строки, выводимые в таблицу динамического списка.

Важным моментом является то, что схема и настройки, которые вы получаете от таблицы динамического списка, учитывают, в том числе, видимость колонок и применённый поиск. Так как настройки получаются отдельно, вы можете для своих целей изменить состав полей и получить, например, все колонки списка, а не только те, которые видны пользователю.

При выводе в табличный документ есть ещё один приятный момент. В общем, внешний вид отчета будет соответствовать внешнему виду таблицы динамического списка в момент получения схемы и настроек. В том числе и условному оформлению таблицы. Какие-то дополнительные действия понадобятся вам только в том случае, если вы захотите перенести в отчёт ещё и условное оформление формы.

Источник

1с таблица формы количество строк

empty

Таблица значений

Создание таблицы значений

Таблица значений часто применяется при программировании на 1С, потому что имеет множество полезных возможностей и работает очень быстро. Таблица значений создается в памяти и не сохраняется в базе данных, т.е. это временный набор данных.

Добавление строк в таблицу значений


Перебор строк таблицы значений


Сортировка таблицы значений


Поиск в таблице значений


Итоги и группировка таблицы значений

//часто требуется группировать строки и подсчитывать итоги по группам,
//в этом случае применяется метод Свернуть

Удаление строк и колонок из таблицы значений

ВНИМАНИЕ
Часто требуется удалить строки, удовлетворяющие определенному условию.
Так как при удалении строки из таблицы значений следующая строка становится текущей,
то указанная ниже программа может удалить НЕ ВСЕ необходимые строки.

В этом случае я рекомендую использовать следующий прием:

А вот еще один правильный алгоритм, предложенный Wlad:

Замечание(Туц). Предыдущий вариант не совсем правильный. Случай, когда последняя строка попадает под условие и в условии идёт обращение к строке таблицы, приводит к ошибке. Т.е. происходит попытка чтения для строки 0.

И ещё вариант, предложенный Туц:

Замечание (vligm). А я использую такой алгоритм (это, собственно говоря, шаблон):

Таблица значений как элемент диалога

Таблица значений может использоваться в экранных формах как элемент диалога с пользователем.

Методы УстановитьЗначение и ПолучитьЗначение

Эти методы позволяют обращаться к данным в таблице значений для чтения и записи.
Они могут пригодиться в особых случаях при написании универсальных программ (мастеры отчетов и т.д.).

Источник

Работаем с таблицей значений программно

ТаблицаЗначений — это программный объект встроенного языка, позволяющий строить произвольные наборы данных в памяти компьютера, отображать их в табличном виде, а также программно и интерактивно манипулировать ими (добавлять, редактировать, удалять и сортировать).

Таблицы состоят из строк и колонок. Строки располагаются вниз по вертикали, а колонки — вправо по горизонтали. Строки и колонки имеют индексы, по которым к ним можно обращаться напрямую (начинаются с 0). Кроме этого, к колонкам можно обращаться по идентификатору.

Пересечения строк и колонок образуют ячейки, в которых содержатся значения. Тип значения определяется типом значения колонки.p142

Таблица значений является полностью динамическим объектом, т.е. Вы можете манипулировать не только строками таблицы, добавляя и удаляя их, но и колонками.

Создание таблицы значений

Как и большинство объектов встроенного языка, новая таблица значений может быть создана с помощью оператора Новый :

Колонки таблицы значений

Прежде чем начать работу с таблицей значений, необходимо создать структуру колонок. Каждая колонка характеризуется следующими свойствами:

Для того, чтобы определить наличие колонки с нужным именем используется метод Найти():

Перебор колонок выполняется следующим образом:

Для удаления колонки используется метод Удалить():

Свойства колонки таблицы значений

Имя Тип Описание
Имя Строка символьный идентификатор колонки, по которому к ней можно обращаться из кода
Заголовок Строка строковое представление колонки на форме
ТипЗначения ОписаниеТипов свойство органичивает пространство доступных значений, которые можно указать в данной колонке
Ширина Число ширина колонки на форме (выражается в количестве символов)

Методы коллекции колонок таблицы значений

Вставить() Вставляет новую колонку в указанную позицию коллекции
Добавить() Добавляет новую колонку в конец коллекции
Количество() Возвращает количество колонок в коллекции
Найти() Ищет колонку в коллекции по имени
Очистить() Удаляет все колонки из коллекции
Сдвинуть() Сдвигает колонку влево или вправо
Удалить() Удаляет колонку из коллекции

Строки таблицы значений

С колонками разобрались. Давайте теперь разберемся со строками. Строки таблицы значений можно программно добавлять и удалять, перемещать и сортировать, а также выполнять операции поиска и отбора.

Добавление и удаление строк

И только теперь мы можем заполнить строку данными. Для этого обращаемся к ячейкам строки, указывая идентификаторы колонок через точку:

Обратите внимание, что каждая СтрокаТаблицыЗначений ссылается на таблицу значений с помощью метода Владелец():

Перебор строк таблицы значений

Поиск строк

В отличие от платформы 1С:Предприятие 7.7 в 8-ке расширен функционал работы с таблицей значений. Поиск можно выполнять не только по значению в колонке (в этом случае будет возвращена первая найденная строка), но и по набору свойств (в этом случае возвращается массив строк):

Все методы таблицы значений:

Вставить() Вставляет строку на указанное место
ВыбратьСтроку() Позволяет интерактивно выбрать строку в диалоговом окне
ВыгрузитьКолонку() Выгружает значения ячеек указанной колонки в массив значений
Добавить() Добавлет новую строку в таблицу значений
ЗагрузитьКолонку() Загружает значения в ячейки указанной колонки из массива
ЗаполнитьЗначения() Заполняет ячейки указанных колонок определенным значением
Индекс() Возвращает индекс строки таблицы значений
Итог() Возвращает просуммированный итог по колонке таблицы значений
Количество() Возвращает количество строк в таблице значений
Найти() Выполняет поиск строки по значению
НайтиСтроки() Выполняет поиск строк по указанным параметрам
Очистить() Очищает строки таблицы значений
Получить() Возвращает строку по ее индексу
Свернуть() Выполняет сжатие строк и колонок таблицы значений
Сдвинуть() Сдвигает строку вверх или вниз по таблице
Скопировать() Создает новую таблицу значений копированием текущей
СкопироватьКолонки() Создает новую пустую таблицу значений путем копирования колонок текущей таблицы
Сортировать() Выполняет сортировку строк таблицы значений по указанным колонкам
Удалить() Удаляет строку таблицы значений

Иерархию свойств и типов значений, связанных с таблицей значений, схематически можно представить в виде дерева:

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с таблица значений на форме номер строки
  • 1с счета фактуры на аванс автоматическое выставление