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

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

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

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

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

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

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

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

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

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

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

1с табличное поле добавить строку 1с. Смотреть фото 1с табличное поле добавить строку 1с. Смотреть картинку 1с табличное поле добавить строку 1с. Картинка про 1с табличное поле добавить строку 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, меня после закрытия Формы, не интересуют, то данные последней хотелось-бы использовать в дальнейшем, пока открыта обработка. В настоящее время при закрытии Формы Табличные части очищаются. В дальнейшем, в новом сеансе работы с обработкой эти данные не нужны. Насколько я понимаю Функции сохранения Данных Табличной части обработки не существует. Табличную часть в обработке решил использовать из-за возможности сохранить структуру Данных. Как мне сохранить эти данные для использования в других окнах?
Может у Вас есть видео по данному вопросу?

Источник

Примеры работы с табличным полем в 1С 8

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

Содержание

Как отобразить данные в элементе управления ТабличноеПоле?

Примеры реализации данного метода вы можете посмотреть здесь и тут.

Как при разворачивании формы на весь экран сделать, чтобы табличное поле изменяло свой размер?

Если вставить на форму элемент управления табличное поле, тогда автоматически формируются необходимые привязки для этого табличного поля. Бывает, что привязки сбрасываются из-за каких-то наших действий. Из-за того табличное поле перестает масштабироваться или растягиваться по форме. Поэтому привязки табличного поля необходимо настроить.

Нажмём на табличном поле правой кнопкой мыши и выберем пункт меню «Установить привязки…». В открывшейся форме мы увидим настройки привязок табличного поля. Чтобы облегчить себе труд и быть уверенными в правильности привязок, создайте новую форму и скопируйте Ваше табличное поле со старой формы в новую. На новой форме, нажмём на табличном поле правой кнопкой мыши и выберем пункт меню «Установить привязки…»

Как видим на новой форме привязки автоматически настроились так, чтобы табличное поле масштабировалось или растягивалось по форме. Запомним эти привязки, чтобы использовать для нашего табличного поля на старой форме. Нажмём на табличном поле старой формы правой кнопкой мыши и выберем пункт меню «Установить привязки…». Установим привязки аналогично тому, что мы увидели на новой форме. Готово!

Как программно установить видимость колонки табличного поля?

Где, «Период» — колонка табличного поля «ЭлементыФормы.РегистрСведенийСписок».

Как программно активизировать строку табличного поля с типом значения РегистрСведенийСписок?

В 1С:Предприятии 8 для активизации строки конкретного табличного поля следует выполнить установку свойства ТекущаяСтрока соответствующего элемента управления. Этому свойству присваивается значение, идентифицирующее строку, которую необходимо активизировать. Тип значения зависит от типа данных, с которыми связано табличное поле.

Например, для списка справочника это будет ссылка на элемент справочника, а для табличной части — строка табличной части. Если тип значения РегистрСведенийСписок, тогда свойству ТекущаяСтрока присваивается значение типа — РегистрСведенийКлючЗаписи. Пример:

Отбор должен однозначно идентифицировать запись в табличном поле. Чтобы узнать как в регистре сведений обеспечить уникальность каждой записи посмотрите тут.

Как создать контекстное меню для табличного поля?

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

Как в табличном поле с типом значения справочник, отображать только группы?

Откроем свойства табличного поля и найдем свойство «ПросмотрГруппИЭлементов». В выпадающем списке выберем «Группы». Готово!

Как изменить значение ячейки табличного поля?

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

Как сделать текущим значение колонки табличного поля и присвоить этой колонке тип?

Предположим, что колонке «СубконтоДоходовБУ3» нужно присвоить тип «СправочникСсылка.ПодразделенияОрганизаций».

Как в табличном поле установить флажок элементом управления для колонки?

Как программно создать колонку табличного поля с элементом управления «Флажок»?

Свойство «РежимРедактирования» определяет режим редактирования ячейки табличного поля, если его не установить в «РежимРедактированияКолонки.Непосредственно» придется дополнительно кликать мышью, чтобы изменить флажок.

Свойство «ЭлементУправления» содержит элемент управления в данном случае флажок, через это свойство можно «достучаться» к свойствам и событиям флажка.
Свойство «ПрозрачныйФон» является свойством элементом управления флажка.

Кроме того, чтобы отображался только флажок без текста ДаНет необходимо в обработчике события табличного поля «ПриВыводеСтроки» написать следующее:

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

Табличное поле имеет событие «Выбор». В обработчике этого события напишите:

Здесь можно посмотреть пример реализации данного метода.

Как узнать существует ли колонка табличного поля?

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

Как из табличного поля получить значение ячейки, если известно имя колонки?

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

Как активизировать ячейку табличного поля?

Пример обработки вы можете скачать по ссылке.

Источник

v8: Как в табличное поле добавить строку из справочника?

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

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

Поэтому, чтобы не городить огород, на примере ВидыДеятельности и задам вопрос:

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

Теперь в ПолеОсновнойВидДеятельности можно выбирать элементы из СправочникСсылка.ВидыДеятельностиКонтрагентов.

При этом в Табличном поле ВидыДеятельности в имеющихся строках выбирается основной вид деятельности (подсвечивая шрифт жирным) в уже добавленных.

Возникла необходимость добавлять элементы (подобно действию кнопки добавить), путем выбора значения в ПолеОсновнойВидДеятельности.

Т.е. при отсутствии элемента, он автоматически добавляется в табличное поле ВидыДеятельности.

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

И тут у меня полный тупняк.

Вот какая…. Получается:

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *