Новости экономики и финансов. Курсы валют, ситуация на биржах, акции, котировки, аналитика: 💫 💫 💫 💫 💫 💫 читайте на сайте

1C Значение по Умолчанию Реквизита Табличной Части • Пример использования

В этой статье будет постепенно публиковаться набор кратких шпаргалок по использованию методов языка и спосбов разработки на платформе 1С 8.

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Автор подскажите, я смогу с помощью данного расширения вывести в ТЧ товары документа Реализация товаров и услуг, доп реквизит из серии номенклатуры. 1с 8.3 табличная часть документа Обращайтесь в форму связи

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

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

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

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

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

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

Рекомендуется для обращения к данным объекта использовать свойство ТекущиеДанные . Правильный фрагмент приведен ниже:

Если есть идентификатор текущей строки (т.е. свойство ТекущаяСтрока ), можно получить ТекущиеДанные . И наоборот:

Выполняет поиск элемента списка значений по идентификатору.

Имя параметра Тип Описание
Идентификатор Число Идентификатор элемента списка значений.
Жирным шрифтом выделены обязательные параметры
1C Значение по Умолчанию Реквизита Табличной Части
В свойствах командной панели выберите галочку Автозаполнение, чтобы кнопки на панели появились автоматически.

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

Пример использования

Пример кода с использованием метода НайтиПоИдентификатору() :

Какую часть дохода тратите на еду?
До 50%Больше 50%

УдалитьДанныеИзСоответствия ( ДанныеСтроки . НомерСтроки );
КонецПроцедуры

Индекс = – 1 ;
Для Каждого Строка Из Объект . ПрикрепленныеФайлы Цикл
Индекс = Макс ( Индекс , Строка . ПолучитьИдентификатор ());
КонецЦикла;
КонецПроцедуры

Для Каждого Строка Из Объект . ПрикрепленныеФайлы Цикл
ИндексТекущейСтроки = Строка . ПолучитьИдентификатор ();
Если Не Соответствие [ ИндексТекущейСтроки ] = Неопределено Тогда
// Записать файл
ТекущийОбъект . ПрикрепленныеФайлы [ Строка . НомерСтроки – 1 ]. Файл = Соответствие [ ИндексТекущейСтроки ];
// Удаление соответствия
Соответствие . Удалить ( ИндексТекущейСтроки );
КонецЕсли;
КонецЦикла;

Хранилище = Новый ХранилищеЗначения ( Соответствие );
КонецПроцедуры

Соответствие = Хранилище . Получить ();
Соответствие . Вставить ( Индекс , Новый ХранилищеЗначения ( Файл ));
Хранилище = Новый ХранилищеЗначения ( Соответствие );

ЗначениеВРеквизитФормы ( СправочникОбъект , «Объект» );
КонецПроцедуры

&НаСервере
Процедура УдалитьДанныеИзСоответствия ( ТекущаяСтрока );
ИндексТекущейСтроки = Объект . ПрикрепленныеФайлы [ ТекущаяСтрока – 1 ]. ПолучитьИдентификатор ();

Соответствие = Хранилище . Получить ();
Соответствие . Удалить ( ИндексТекущейСтроки );
Хранилище = Новый ХранилищеЗначения ( Соответствие );
КонецПроцедуры .

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

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

Варианты получения свойства Текущие данные 1С

В общем случае к свойству ТекущиеДанные можно обратиться через элемент формы к которому оно относится.

Горящие товары с бесплатной доставкой
 «AliExpress Россия» работает отдельно от глобального «AliExpress» принадлежащего Alibaba. Он не зависит от мировых банковских систем и не попал под санкционный список со стороны США и Великобритании. Из Китая соответственно тоже можно заказывать ничего не опасаясь.

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

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

1С условное оформление строки табличной части –

Работа со свойством текущие данные 1С

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

Вся информация, представленная в статье, относится только к управляемому приложению.

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

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

    Как видно на картинке, в текущих данных представлены реквизиты Номенклатура и Сумма, добавленные в таблицу и реквизит Количество с установленным флагом Использовать всегда.

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

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

Мнение эксперта
1С:Эксперт по технологическим вопросам
Задавайте мне вопросы, и я помогу разобраться!
Этот цикл позволяет просмотреть имена а так же типы всех реквизитов формы, в том числе такие реквизиты как надписи, командные панели и тд. Шпаргалка по программированию для системы 1С: Предприятие v8 — 1C-h Обращайтесь в форму связи

1C Значение по Умолчанию Реквизита Табличной Части

В этой статье будет постепенно публиковаться набор кратких шпаргалок по использованию методов языка и спосбов разработки на платформе 1С:8.2 (часть из них применима и к 8.1, но об этом упоминаться не будет).

Вопрос Как сделать так, чтобы автоматически рассчитывалась сумма (Сумма = Количество*Цена) при изменении Цены или Количества в форме документа.
Ответ В свойствах элементов формы «Количество» и «Цена» прописывается вызов события «ПриИзменении».
В модуле формы, процедура «при изменении»:

где Элементы.Материалы.ТекущиеДанные — обращение к коллекции элементов формы*, используя свойство «Элементы» объекта «УправляемаяФорма» (все свойства и методы объекта встроенного языка «УправляемаяФорма» доступны нам тут, т.к. мы находимся в Модуле Формы)

Вопрос Что означает галочка «Клиент» в свойствах общих модулей.
Ответ Она означает, что экземпляры этого модуля будут скомпилированы в контексте тонкого клиента и в контексте веб-клиента.

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

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

Вопрос о событиях форм.
Ответ Существует два вида событий форм:

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

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

Вопрос Почему открытие некоторых окон блокирует другие окна.
Ответ Так происходит, когда в свойствах формы свойство «РежимОткрытияОкна» установлено в значение «Блокировать окно владельца». Если изменить на значение «Независимый», то окно будет открываться, не блокируя другие окна (см. раздел «Использование» в свойствах формы).

При этом будут удалены все записи регистрации изменений конфигурации Узла2, относящиеся к Узлу2, передача изменений конфигурации будет возможна теперь только от Узла2 к Узлу1. Записи регистрации изменения данных удалены не будут, т.к. передача данных будет по-прежнему возможна между этими узлами.

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

  • свои реквизиты;
  • значения данных, сконфигурированные таким образом, что они не могут быть потом независимо от этого документа изменены на другие;
  • данные регистров, записи которых подчинены регистраторам.

💥Принимайте участие в опросе и получайте бесплатную консультацию

Related posts

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

*