1с заполнить табличное поле на форме

Заполнение табличного поля из таблицы значений 1С

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

Это возможно при помощи такого кода:

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

rating onrating onrating onrating on rating half

Подпишитесь на наш YouTube канал

Связаться с нами можно по телефону:

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.

Услуги и цены можно увидеть по ссылке.

Будем рады помочь Вам!

Свежие записи

Подписывайтесь на наш YouTube канал, чтобы узнать больше о 1С. Там вы найдете множество видео-уроков. Ждем вас!

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

Источник

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

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

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Программное создание табличного поля в обычном приложении

Как-то так, проверил работает:

ТабличноеПоле.ТипЗначения = Новый ОписаниеТипов(«ДокументСписок.РеализацияТоваровУслуг»);
ТабличноеПоле.Верх = 24;
ТабличноеПоле.Лево = 6;
ТабличноеПоле.Ширина = Ширина-40;
ТабличноеПоле.Высота = Высота-50;

Как-то так, проверил работает:

ТабличноеПоле.ТипЗначения = Новый ОписаниеТипов(«ДокументСписок.РеализацияТоваровУслуг»);
ТабличноеПоле.Верх = 24;
ТабличноеПоле.Лево = 6;
ТабличноеПоле.Ширина = Ширина-40;
ТабличноеПоле.Высота = Высота-50;

(4) Kutuzov, немного не понял. Привязать к элементу управления? Вам необходимо назначить какие-то обработчики табличному полю?

(5) Подскажите как использовать отборы в колонке табличного поля, которая была создана программно?

Создаю колонку таким кодом:

В форме элемента справочника Номенклатура

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

Если Лев(Наименование,7) = «Барабан» Тогда
СКК_ДобавитьСтраницуДляБарабанов();
КонецЕсли;
КонецПроцедуры // ПередОткрытием()

Процедура СКК_ДобавитьСтраницуДляБарабанов()
ЭлФ = ЭтаФорма.ЭлементыФормы;
ЭлФПанель = ЭлФ.ОсновнаяПанель;
Страницы = ЭлФПанель.Страницы;
Страницы.Добавить( «ДляБарабанов», «Для Барабанов»);

СтараяСтраница = ЭлФПанель.ТекущаяСтраница;
ЭлФПанель.ТекущаяСтраница = Страницы.ДляБарабанов;

ТабПоле = ЭлФ.Добавить(Тип(«ТабличноеПоле»),»ТЧ_РасходПиломатериалов», Истина, ЭлФПанель );
ТабПоле.ТипЗначения = Новый ОписаниеТипов(«РегистрСведенийСписок.СКК_РасходПиломатериалов»);
ТабПоле.ИзменяетДанные = Истина;
ТабПоле.Доступность = Истина;
ТабПоле.ИзменятьСоставСтрок = Истина;
ТабПоле.ТолькоПросмотр = Ложь;
ТабПоле.Верх = 36;
ТабПоле.Лево = 6;
ТабПоле.Ширина = 586;
ТабПоле.Высота = 139;
ТабПоле.Подсказка = «(СКК) Расход пиломатериалов на крепление барабанов»;
ТабПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ЭлФПанель,ГраницаЭлементаУправления.Низ);
ТабПоле.УстановитьПривязку(ГраницаЭлементаУправления.Лево,ЭлФПанель,ГраницаЭлементаУправления.Лево);
ТабПоле.УстановитьПривязку(ГраницаЭлементаУправления.Право,ЭлФПанель,ГраницаЭлементаУправления.Право);
ТабПоле.СоздатьКолонки();

Колонка = ТабПоле.Колонки.Найти(«Номенклатура»);
Колонка.Видимость = Ложь;

ТабПоле.Значение.Отбор.Номенклатура.Использование = Истина;
ТабПоле.Значение.Отбор.Номенклатура.Значение = Ссылка;
ТабПоле.Значение.Отбор.Номенклатура.ВидСравнения = ВидСравнения.Равно;

КомПанель = ЭлФ.Добавить(Тип(«КоманднаяПанель»),»КоманднаяПанельТЧ_РасходПиломатериалов», Истина, ЭлФПанель );
КомПанель.Вспомогательная = Истина;
КомПанель.Автозаполнение = Истина;
КомПанель.ИсточникДействий = ТабПоле;
КомПанель.Верх = 6;
КомПанель.Лево = 6;
КомПанель.Ширина = 586;
КомПанель.Высота = 25;

ЭлФПанель.ТекущаяСтраница = СтараяСтраница;
КонецПроцедуры

Источник

Программирование в 1С для всех

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

Заполнение табличной части 1С 8.3

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

1 1

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

2 1

Исполнение команды будет выполняться в серверном контексте, поскольку объект Запрос не работает в клиентском контексте на тонком клиенте.

При обходе запроса, я использую метод Добавить табличной части объекта (вообще это метод объекта, который имеет тип ДанныйФормыКоллекция, именно в этот тип преобразуется табличная часть документа-объекта, при создании на сервере). Данный метод является функцией, которая создаёт и возвращает новую строку.

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

Очистка табличной части документа 1С 8.3

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

После выполнения этого метода вся табличная часть будет очищена.

Текущая строка табличной части 1С 8.3

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

3 1

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

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

4 1

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

5 1

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

Ещё пример: я создал команду, которая должна увеличивать количество в текущий строке табличной части в два раза и пересчитывать сумму. Эта команда размещена в командной панели таблицы и имеет следующий код:

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

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

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

В этом коде мы используем метод НайтиПоИдентификатору переменной Объект.СписокТоваров, которая имеет типа ДанныйФормыКоллекция, этот метод получает элемент коллекции по указанному идентификатору. Если этот элемент найден, то мы можем с ними работать, причем данные на форме изменяться автоматически.

Обход табличной части 1С

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

Остальные статьи по теме конфигурирования в 1С:

Более подробно и основательно конфигурирование в 1С дается в моей книге:

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

1 %D0%B2 %D0%B6%D0%B5%D0%BB%D1%82%D0%BE%D0%BC %D1%86%D0%B2%D0%B5%D1%82%D0%B5 3D %D0%BC%D0%B0%D0%BB%D0%B5%D0%BD%D1%8C%D0%BA%D0%B0%D1%8F

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

Промо-код на скидку в 15% — 48PVXHeYu

Источник

Программное заполнение табличного поля данными из справочника

Я пытаюсь заполнить табличное поле данными из таблицы, но в результате оно остается пустым.
Я действую так:
1)Создал реквизит формы «ВсяНоменклатура» (название реквизита без ковычек).
2)В модуле формы ввожу след. код

Версия 8.0
В чем моя ошибка?

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

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

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

Заполнение параметров табличного документа
Добрый день. Есть такая проблемка. Есть документ «Анкета», регистр сведений «данные анкеты», ПВХ.

Автозаполнение Табличного Поля
Доброго времени суток! Подскажите как присвоить табличному полю значение реквизита справочника (1С.

Брррррррр. Не совсем понятно, т.е. совсем не понятно

вот это еще понятно

Когда печатал в сообщении, ошибся. У меня в модуле, конечно, без ковычек, т.е. вот так (первый пост на всякий случай исправил).

Необходимо, чтобы в одном и том же табличном поле можно было просматривать данные нескольких справочников (выбор по переключателю).

Хм, в описании метода говорится,

В этих справочниках разное количество столбцов (т.е. реквизитов). А разве для изменения числа колонок в ТабличномПоле не надо вызывать метод СоздатьКолонки()?

Табличное поле изначально связано с реквизитом «ТабличноеПоле1» (тип «ТаблицаЗначений»). Реквизит «ВсяНоменклатура» имеет тип «СправочникСсылка.Услуги».

Т.е. должно получиться так:

СтрокаТабЧасти = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные;
СтрокаТабЧасти.ВсяНоменклатура = СправочникСсылка.Услуги;

А код из моего первого поста разве не нужен? Изначально реквизит табличного поля это «ТабличноеПоле1», а не «ВсяНоменклатура».

Я недавно начал работать с 1С, поэтому очень прошу объяснить мне приведенный выше код.

СтрокаТабЧасти = ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные; /*Здесь, как я понял, мы присваиваем переменной СтрокаТабЧасти объект, содержащий данные текущей строки*/

СтрокаТабЧасти.ВсяНоменклатура = СправочникСсылка.Услуги; /* А здесь не совсем понятно. Можете объяснить, что делает эта комманда*/

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

НужнаяСсылка = Справочники.Услуги.НайтиПоКоду(«00001»);//возвращает ссылку на элемент справочника Услуги с кодом «00001»
СтрокаТабЧасти.ВсяНоменклатура = НужнаяСсылка;

Это не совсем то, что мне нужно. Как я понял данный код сначала получает ссылку на строку, соответствующую критерию. А вот что дальше происходит? Ведь у ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные нет свойства ВсяНоменклатура или ТабличноеПоле1, а есть только

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

ТабличноеПоле1.Колонки.Очистить();
ТабличноеПоле1.Колонки.Добавить(«Код»,,»Код»,);
ТабличноеПоле1.Колонки.Добавить(«Наименование»,,»Наименовани е»,);
ТабличноеПоле1.Колонки.Добавить(«КраткоеОписание»,,»КраткоеО писание»,);
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
ссылка=Справочники.Услуги.НайтиПоКоду(«00001»);
Строка=ТабличноеПоле1.Добавить();
Строка.Код=ссылка.Код;
Строка.Наименование=ссылка.Наименование;
Строка.КраткоеОписание=ссылка.КраткоеОписание;
ЭлементыФормы.ТабличноеПоле1.ТекущаяСтрока=Строка;

Где «КраткоеОписание» есть реквизит справочника «Услуги» (к сожалению не смог найти способ программного определения реквизитов, но так как в моем случае это не принципиально, то можно обойтись и без этого, хотя, если кто-нибудь сей замечательный способ подскажет, буду рад ).

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

Источник

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