1с табличная часть нет вывести список

Содержание
  1. Где найти стандартную команду «Вывести список»
  2. Решение
  3. Вывод списка по табличной части. Версия 2. (8.1)
  4. Скачать файлы
  5. Специальные предложения
  6. Список значений в строке табличной части
  7. Лайфхаки 1С. Настройка списков (Часть 3)
  8. 1. Дату можно не вбивать полностью
  9. 2. Функция «вывести список» — начальная сортировка
  10. 3. Быстрый отбор
  11. 4. Сортировка данных
  12. 5. Изменить форму
  13. 6. Подборка документов по признаку
  14. 7. Группировка
  15. 8. Изменить форму внутри документа
  16. Работа с табличной частью объектов в 1С
  17. Как обойти табличную часть
  18. Как получить и обойти выделенные строки табличной части
  19. Как программно выделить строки табличной части (табличного поля) и снять выделение
  20. Как очистить табличную часть
  21. Как получить текущую строку табличной части
  22. Как добавить новую строку в табличную часть
  23. Как программно заполнить реквизиты строки табличной части
  24. Работа с табличной частью объектов в 1С : 13 комментариев

Где найти стандартную команду «Вывести список»

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Решение

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

Я допилила, чтобы дерево выводилась, т.к. в обработке просто выводилась таблица.
Сейчас у меня дерево выходит, но без иерархии(((((
Понимаю, что где-то что-то упустила, но не могу найти где и что.

P.S.: Было бы всё так просто, сюда бы не написала.

Добавлено через 1 час 47 минут
Проблему решила. Всем спасибо!

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

Читайте также:  Чем отмыть застарелый жир с тарелок

Добавлено через 16 минут
вот что то похожее но не работает что то не так

Добавлено через 16 минут
Оо да это работае. вопрос закрыт решился если вот так ещё дописать Результат = ПостроительЗапроса.Результат; // отобранные строки типа РезультатЗапроса
строка = Результат.Выбрать();
Пока строка.Следующий() Цикл

Для каждой строки найти слова, которые не имеют ни одного из букв: «l», «k», «r», «s» i «j»
Задано символьные строки. Строка состоит из нескольких слов (наборов символов), которые разделяются.

Нажатие кнопки alt вызывает команду «дублировать» или «копировать». Как это исправить?
Доброго времени суток! У меня такая проблема: при нажатии клавиши alt выполняется команда.

Источник

Вывод списка по табличной части. Версия 2. (8.1)

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

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

Основной проблемой был разбор методики расчета количества колонок при выводе нелинейных таблиц, а также, неочевидная работа с объектом «ОформлениеСтроки».

Создана по запросу в http://forum.infostart.ru/forum14/topic70079/

Скачать файлы

Специальные предложения

на одном форуме мне написали: ТабличнаяЧасть.НайтиСтроки( ), это не катит потому что,

ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить(«Покупатель», ЭлементыФормы.Информация.ОтборСтрок.Покупатель);

так вообще не чего не находит, а вот если делаем так:
ПараметрыОтбора.Вставить(«Покупатель», ЭлементыФормы.Информация.ОтборСтрок.Покупатель.Значение);
так находит но только если одно значение, а если в списке и к примеру два или условие будет не равно тоже уже не че не получится. Как зацепиться за ту таблицу что выводиться при нажатии в пользовательском «вывести список» со всеми отборами, программно?

(3) Сергей, какое отношение это имеет к моей статье? Есть форум — туда и спрашивайте. Ставлю минус за офтоп.

А по существу — запрос к табличной части позволит фильтровать и списками, и «содержит». А еще лучше не просто Запрос, а ПостроительЗапроса — туда довольно просто перетянуть отборы из формы.

Источник

Список значений в строке табличной части

(3)Вы совершенно правы. Храните бинарные данные в реквизите ТЗ — обрабатываете из сами.

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

На скрине пример такого использования.

(5)Пример кода к скрину

А вот так извлекаю

(7) Совсем не понятно) Вы уже в эти реквизиты выгружаете какие то значения ?
Но мне надо чтобы пользователь нажал на реквизит тч в строке, вылезло окно списка значении, куда он внёс сколько ему угодно своих произвольных дат, нажал ок и они там остались навсегда. При следующем открытии документа, он бы смог открыть посмотреть отредактировать их.

(17)Штатно никак, но вы можете программно извлечь список из хранилища и затем при помощи Список.ВыбратьЭлемент( , ) — организовать выбор.

Но может вы хотите в том числе редактировать список — добавлять или удалять элементы из него?

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

При таком способе редактирование ячейки содержащий «временный» список из хранилища в текущей строке, теоретически, будет выполнятся естественным образом — в ячейке таблицы.

Сам же реквизит содержащий хранилище показывать на форме не нужно.

Попробуйте так. Платформа позволяет такие извраты.

Источник

Лайфхаки 1С. Настройка списков (Часть 3)

Ссылки на предыдущие статьи

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

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

Начнем по порядку.

1. Дату можно не вбивать полностью

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

2. Функция «вывести список» — начальная сортировка

Нажимаем кнопку «Ещё» и находим опцию «Вывести список». Нажимаем на этот пункт и перед нами открывается панель настройки. Эта панель позволяет галочками указать, какие данные нужно сохранить в результирующем списке, который мы, например, хотим вывести на печать.

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

3. Быстрый отбор

Если нам нужно получить данные по какому-то контрагенту, то можно использовать простой способ сортировки. Достаточно кликнуть правой кнопкой по наименованию партнера или контрагента и выбрать опцию «Найти». В результате, система предложит вам сводную таблицу со всеми данными, отвечающими поставленному запросу. Это называется быстрый отбор. Очень полезная на практике функция. Кстати говоря. результат отбора будет висеть над всей таблицей как закладка. Его можно закрыть крестиком.

4. Сортировка данных

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

Обратите внимание, что колонки имеют шапки с названиями, которые можно кликать. Кликайте по нужному столбцу и произойдет сортировка в установленном порядке. Это очень удобно, когда нужно выполнить сортировку по одному из параметров.

5. Изменить форму

Если перейти во вкладку «ещё», то там вы увидите закладку изменить форму. Появляется форма настройки.

Тут можно поубирать галочками лишние пункты или добавить что-то новое. Благодаря этому можно сделать список более компактным. Здесь же можно изменить стиль и форму отображения объектов.

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

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

6. Подборка документов по признаку

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

Настроить эту функцию очень просто. Переходите во вкладку «ещё», выбирайте настройку списков. Тут выбираем вкладку отбор, как показано на картинке выше и в итоге получаем отсортированные данные, где подобраны все неподписанные документы.

7. Группировка

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

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

8. Изменить форму внутри документа

Менять можно не только общий список, но и конкретный документ. Перейдем в уже известный нам раздел, там выберем «изменение формы».

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

Источник

Работа с табличной частью объектов в 1С

Табличные части существуют у многих объектов в 1С:

  • Справочники
  • Документы
  • Отчеты и обработки
  • Планы счетов
  • Планы видов характеристик
  • Планы видов расчета
  • Бизнес-процессы и задачи

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

Рассмотрим некоторые приемы работы с табличными частями.

Как обойти табличную часть

Для обхода табличной части можно использовать цикл Для каждого

Для каждого Строка из ТабличнаяЧасть Цикл

Сообщить ( Строка . РеквизитТабличнойЧасти ) ;

На каждой итерации в переменную Строка передается очередная строка табличной части. Значения реквизитов строки можно получить выражением Строка.ИмяРеквизита.

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

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

Для получения перечня выделенных строк используется следующий код:

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

ВыделенныеСтроки = ЭлементыФормы . ИмяТабличногоПоля . ВыделенныеСтроки ;

Для каждого Строка из ВыделенныеСтроки Цикл

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

Чтобы программно снять выделение строк табличного поля:

Чтобы программно выделить все строки табличного поля:

Как очистить табличную часть

Как получить текущую строку табличной части

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

Для обычных форм код будет выглядеть так:

Для управляемых форм:

Как добавить новую строку в табличную часть

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

Добавление новой строки в любое место табличной части (последующие строки будут сдвинуты):

НоваяСтрока = ТабличнаяЧасть . Вставить ( Индекс )
//Индекс — номер добавляемой строки. Нумерация строк начинается с нуля.

НоваяСтрока . Реквизит 1 = «Значение» ;

Как программно заполнить реквизиты строки табличной части

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

Создаваемая обработчиком процедура имеет три параметра:

  • Элемент — содержит элемент управления ТабличноеПоле.
  • НоваяСтрока — булево. Содержит значение Истина, если добавляется новая строка табличной части, и Ложь, если пользователь начал редактировать уже существующую строку.
  • Копирование — булево. Содержит значение Истина, если пользователь копирует строку, и Ложь в остальных случаях.

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

Процедура ТабличнаяЧастьПриНачалеРедактирования ( Элемент , НоваяСтрока , Копирование )

//Если пользователь редактирует существующую строку, то ничего не делаем
Если НЕ НоваяСтрока Тогда
Возврат ;
КонецЕсли ;

//Если же строка новая, устанавливаем счет учета
ТекСтрока = Элемент . ТекущиеДанные ; //Получили текущую строку табличной части
ТекСтрока . СчетУчета = ПланыСчетов . Хозрасчетый . НужныйСчетУчета ;
КонецПроцедуры

Работа с табличной частью объектов в 1С : 13 комментариев

Приветствую!
Только начал изучать 1С.
Кое что уже знаю, но мало и опыта практически ноль.
Создал свою конфигурацию, пока только для тестов.
В данной конфигурации есть документ, назовем его «Заявка».
В данной заявке, есть табличная часть, в которой есть реквизит «Стоимость».
Получается, что таких документов много и мне нужно сложить все реквизиты «Стоимость» из всех документов «Заявка».
Вопрос.
Как мне это сделать?
Предполагаю, что нужно использовать функцию с экспортом, в которой будет цикл «Для Каждого ……»
Но как это оформить, пока не могу понять…

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

Я бы порекомендовал сделать запрос к табличной части документа (именно к табличной части, а не к документу). Выбрать там ваш столбец Стоимость и другие столбцы, если нужно. И применить функцию СУММА к этому столбцу. Подробнее и с примерами смотрите в статье Группировки в запросах 1С http://chel1c.ru/querry_group/

Спасибо!
Буду пробовать.

А может это подойдет?

Табличная часть (Tabular section)
Итог (Total)
Синтаксис:

Тип: Число; Строка.
Индекс либо имя колонки, по которой подсчитывается итог.
Возвращаемое значение:

Тип: Число; Неопределено.

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

Сервер, толстый клиент, внешнее соединение.
Пример:

Это подошло бы, если бы нужно было суммировать колонку в одном документе. А Юрию нужно суммировать колонку Стоимость всех документов.

Добрый день!
Достаточно ли будет обратиться в модуле формы к текущей строке табличной части или в модуле менеджера тоже нужно будет что-то прописать?

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

Здравствуйте!
Опишу вкратце ситуацию:
Из документа вызывается команда печати штрихкодов и в обработку печати передается, как я понимаю, весь контекст документа и печатаются этикетки для всех строк документа. Возможно ли в обработке печати получить информацию только о выделенных строках из этого контекста ? Прилагаю код модуля команды ПечатьЭтикеток.
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

//Создаём новую коллекцию печатных форм
КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(«ПечатьЭтикеток»);
//Добавляем в коллекцию сформированный табличный документ
КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабДокумент;
//Устанавливаем параметры печати (при необходимости)
КоллекцияПечатныхФорм[0].Экземпляров = 1;
КоллекцияПечатныхФорм[0].СинонимМакета = «ПечатьЭтикеток»; //Так будет выглядеть имя файла при сохранении в файл из формы «Печать документов»
//Вывод через стандартную процедуру БСП
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, Неопределено, Неопределено);КонецПроцедуры

ТабДокумент.АвтоМасштаб = истина ;
ТабДокумент.ОтображатьСетку = Ложь;
ТабДокумент.ТолькоПросмотр = Истина;
ТабДокумент.ОтображатьЗаголовки = Ложь;

Макет = ДокСсылка.ПолучитьОбъект().ПолучитьМакет(«Этикетка»);
Для каждого Стр Из ДокСсылка.Картриджи Цикл
//Если Лев(Стр.СерийныйНомер,2) «30» Тогда
// Продолжить;
//КонецЕсли;
ОбластьМакета = Макет.ПолучитьОбласть(«ШПК»);

ЧтоТо = Стр.СерийныйНомер;
ПервыйМодуль.ВывестиШтрихкодДокументаВОбластьМакета(ВнешняяКомпонента,ОбластьМакета,ЧтоТо) ;

ОбластьМакета.Параметры.Клиент = ДокСсылка.Партнер;
ОбластьМакета.Параметры.Орг = «СК ПОТОК тел.78-06-78»;//Константы.пмОрганизацияДляСервиса.Получить();
ОбластьМакета.Параметры.КЖ = СокрЛП(Стр.Картридж.Артикул);
ОбластьМакета.Параметры.СерийныйНомер = Стр.СерийныйНомер;

ТабДокумент.Вывести(ОбластьМакета);
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЦикла;

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

Значит я на клиенте должен сформировать таблицу выделенных строк и уже ее передавать в обработку печати ?

Да, логика такая. Только учтите, что таблица значений не передается с клиента на сервер.
Выделенный строки табличного поля на форме — это массив строк. Надо попробовать, передастся ли он. Если да, хорошо. Если нет — надо думать, как его передать.

Доброго времени суток!
Создаю обработку на обычных формах, в которой имеется несколько Табличных частей. Они в свою очередь находят отображение в Форме обработки. И если данные первых 3, меня после закрытия Формы, не интересуют, то данные последней хотелось-бы использовать в дальнейшем, пока открыта обработка. В настоящее время при закрытии Формы Табличные части очищаются. В дальнейшем, в новом сеансе работы с обработкой эти данные не нужны. Насколько я понимаю Функции сохранения Данных Табличной части обработки не существует. Табличную часть в обработке решил использовать из-за возможности сохранить структуру Данных. Как мне сохранить эти данные для использования в других окнах?
Может у Вас есть видео по данному вопросу?

Источник

Оцените статью
Наименование Файл Версия Размер