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

1С получить идентификатор строки табличной части
Табличное поле предоставляет свойства ТекущиеДанные и ТекущаяСтрока . Отличие между этими свойствами состоит в том, что свойство ТекущиеДанные содержит значения считанных данных текущей строки табличного поля, а свойство ТекущаяСтрока содержит значение, идентифицирующее строку.
Следует отметить, что свойство ТекущиеДанные содержит коллекцию значений текущей строки, соответствующую коллекции колонок отображаемого динамического списка, при этом если нужного поля нет в текущих данных, то его можно добавить в коллекцию полей списка используя метод Добавить() коллекции колонок списка.
Свойство ТекущиеДанные предназначено для получения значений колонок текущей строки, а свойство ТекущаяСтрока для получения и установки текущей строки табличного поля.
Следует понимать, что для объектных данных (Справочник, Документ и т.д.) в качестве значения свойства ТекущаяСтрока используется ссылка на объект базы данных. Соответственно при обращении к свойствам этого значения будет выполняться считывание объекта базы данных.
Типичной ошибкой является обращение к данным строки с использованием свойства ТекущаяСтрока . В этом случае будет выполняться считывание данных объекта из базы данных, что может существенно снизить производительность работы табличного поля. Например, приведенный ниже фрагмент текста программы является неэффективным:
Рекомендуется для обращения к данным объекта использовать свойство ТекущиеДанные . Правильный фрагмент приведен ниже:
Если есть идентификатор текущей строки (т.е. свойство ТекущаяСтрока ), можно получить ТекущиеДанные . И наоборот:
Выполняет поиск элемента списка значений по идентификатору.
Имя параметра | Тип | Описание |
---|---|---|
Идентификатор | Число | Идентификатор элемента списка значений. |
Жирным шрифтом выделены обязательные параметры |
1С получить идентификатор строки табличной части
Пример использования
Пример кода с использованием метода НайтиПоИдентификатору() :
Промокоды на Займер на скидки
УдалитьДанныеИзСоответствия ( ДанныеСтроки . НомерСтроки );
КонецПроцедуры
Индекс = – 1 ;
Для Каждого Строка Из Объект . ПрикрепленныеФайлы Цикл
Индекс = Макс ( Индекс , Строка . ПолучитьИдентификатор ());
КонецЦикла;
КонецПроцедуры
Для Каждого Строка Из Объект . ПрикрепленныеФайлы Цикл
ИндексТекущейСтроки = Строка . ПолучитьИдентификатор ();
Если Не Соответствие [ ИндексТекущейСтроки ] = Неопределено Тогда
// Записать файл
ТекущийОбъект . ПрикрепленныеФайлы [ Строка . НомерСтроки – 1 ]. Файл = Соответствие [ ИндексТекущейСтроки ];
// Удаление соответствия
Соответствие . Удалить ( ИндексТекущейСтроки );
КонецЕсли;
КонецЦикла;
Хранилище = Новый ХранилищеЗначения ( Соответствие );
КонецПроцедуры
Соответствие = Хранилище . Получить ();
Соответствие . Вставить ( Индекс , Новый ХранилищеЗначения ( Файл ));
Хранилище = Новый ХранилищеЗначения ( Соответствие );
ЗначениеВРеквизитФормы ( СправочникОбъект , «Объект» );
КонецПроцедуры
&НаСервере
Процедура УдалитьДанныеИзСоответствия ( ТекущаяСтрока );
ИндексТекущейСтроки = Объект . ПрикрепленныеФайлы [ ТекущаяСтрока – 1 ]. ПолучитьИдентификатор ();
Соответствие = Хранилище . Получить ();
Соответствие . Удалить ( ИндексТекущейСтроки );
Хранилище = Новый ХранилищеЗначения ( Соответствие );
КонецПроцедуры .
Такое двойное сканирование удобно использовать для быстрой проверки того, что все колонки таб части формы имеют связь с реквизитами таб части объекта.

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

1C Значение по Умолчанию Реквизита Табличной Части
В этой статье будет постепенно публиковаться набор кратких шпаргалок по использованию методов языка и спосбов разработки на платформе 1С:8.2 (часть из них применима и к 8.1, но об этом упоминаться не будет).
Вопрос Как сделать так, чтобы автоматически рассчитывалась сумма (Сумма = Количество*Цена) при изменении Цены или Количества в форме документа.
Ответ В свойствах элементов формы «Количество» и «Цена» прописывается вызов события «ПриИзменении».
В модуле формы, процедура «при изменении»:
где Элементы.Материалы.ТекущиеДанные — обращение к коллекции элементов формы*, используя свойство «Элементы» объекта «УправляемаяФорма» (все свойства и методы объекта встроенного языка «УправляемаяФорма» доступны нам тут, т.к. мы находимся в Модуле Формы)
Вопрос Что означает галочка «Клиент» в свойствах общих модулей.
Ответ Она означает, что экземпляры этого модуля будут скомпилированы в контексте тонкого клиента и в контексте веб-клиента.
Вопрос о динамическом создании форм и программном обращении к ним.
ОтветЕсли основная форма объекта не создана и не назначена в конфигураторе, то она будет создаваться автоматически при каждом обращении к ней — как интерактивном (вызов пользователем из меню списка документов, например), так и программном. Пример программного обращения к форме:
Основные формы можно подменять формами собственной разработки, созданными в кострукторе форм.
Вопрос о событиях форм.
Ответ Существует два вида событий форм:
- Назначаемые в формах (имя процедуры создается и назначается элементу формы, набор этих событий фиксирован для каждого элемента формы, но название может быть произвольным). Назначить событие можно не только стандартным путем в свойствах элемента формы, но и программно, с помощью метода УстановитьДействие()
- Фиксированные — с предопределенными назначением и названием
Вопрос Что означает флажок «Корреспонденция» в регистре бухгалтерии
Ответ Флажок «Корреспонденция» говорит о том, что создаваемый регистр бухгалтерии поддерживает корреспонденции, т.е. каждая запись регистра имеет дебетовую и кредитовую часть, что позволит получать информацию не только об остатках и оборотах по счетам, но и корреспонденциях между счетами.
Вопрос Почему открытие некоторых окон блокирует другие окна.
Ответ Так происходит, когда в свойствах формы свойство «РежимОткрытияОкна» установлено в значение «Блокировать окно владельца». Если изменить на значение «Независимый», то окно будет открываться, не блокируя другие окна (см. раздел «Использование» в свойствах формы).
При этом будут удалены все записи регистрации изменений конфигурации Узла2, относящиеся к Узлу2, передача изменений конфигурации будет возможна теперь только от Узла2 к Узлу1. Записи регистрации изменения данных удалены не будут, т.к. передача данных будет по-прежнему возможна между этими узлами.
Добавить реквизит табличной части программно
- свои реквизиты;
- значения данных, сконфигурированные таким образом, что они не могут быть потом независимо от этого документа изменены на другие;
- данные регистров, записи которых подчинены регистраторам.
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы