1с выделенныестроки не работает

Обновлено: 07.07.2024

Особенности использования метода ДанныеСтроки()

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

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

Поясним использование данного метода на следующем примере. Пусть существует форма подбора номенклатуры, на которой расположено табличное поле, отображающее справочник номенклатуры. Требуется осуществлять подбор номенклатуры из данного табличного поля, причем, подбирать можно только те строки, у которых не установлена пометка удаления. Для упрощения примера будем осуществлять подбор только при помощи механизма перетаскивания. Для этого у табличного поля, отображающего справочник номенклатуры, необходимо установить свойство "РазрешитьНачалоПеретаскивания", а также установить режим множественного выделения строк, используя свойство "РежимВыделения". Далее, при обработке события «НачалоПеретаскивания» необходимо проверить в массиве перетаскиваемых строк (он передается через свойство «Значение» параметра "ПараметрыПеретаскивания" в обработчике события) наличие строк, помеченных на удаление и если такие строки существуют, то удалить их из массива. Пример обработчика события приведен ниже :

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

Более подробно ознакомиться с особенностями реализации перетаскивания в формах можно в разделе "Особенности реализации перетаскивания в формах".

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

Итак, допустим, перед нами стоит задача: сделать удобное групповое изменение реквизитов справочников и документов в своей собственной конфигурации.

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

Приступим!

1. Допустим, что мы уже создали конфигурацию на управляемых формах в платформе 8.3.

2. Создаем (или перетаскиваем из примера в этой публикации) общий модуль "ГрупповоеИзменениеОбъектовКлиент" (в свойствах модуля поставить флажок напротив "Клиент"):


3. Перетаскиваем обработку из моей демо-конфигурации в свою. Т.е. открываете два окна конфигуратора, в моей базе хватаете мышью обработку "ГрупповоеИзменениеРеквизитов" и перетаскиваете ее в свою базу. См. рис.


4. Открываем форму списка любого справочника или документа. В моем случае это будет "Контрагенты".
В числе колонок списка обязательно должно быть поле с именем "Ссылка", которое содержит ссылку на объект справочника или документа. Если у вас Список типа "Динамический список" с произвольным запросом , убедитесь, что в числе выбираемых полей есть поле "Ссылка". В обычном же динамическом списке это поле будет присутствовать.


5. Теперь нам нужно добавить команду для того, чтобы пользователь мог производить изменение реквизитов.
На вкладке команды создаем новую команду и процедуру (выполняемую на клиенте). Содержание процедуры такое:

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


6. Чтобы эту команду пользователь мог вызывать из контекстного меню списка, нам надо это меню добавить.


И теперь мы хватаем мышью нашу команду и перетаскиваем в контекстное меню, чтобы получилось как ниже на рисунке:


Вот и все. Сохраняем и обновляем конфигурацию.

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

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

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


Копирование выделенных строк из отчета (чтобы потом добавить в ТЧ документа) 1с 8.3
Добрый день! Помогите кто может, бьюсь безрезультатно.. Есть отчет ДниРождения, нужно выделить.

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


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

Вывести значения всех выделенных строк в DataGridView
Доброго времени суток. У меня никак не получается вывести необходимые значения всех выделенных.

Scratchsv, Спасибо

Добавлено через 3 минуты
Scratchsv,
: Ошибка при вызове метода контекста (НайтиПоИдентификатору)
НСтроки = объект.ПланированиеВыработки.НайтиПоИдентификатору(Строка).Н омерСтроки;
по причине:
Несоответствие типов (параметр номер '1')

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

Добавлено через 4 часа 52 минуты
Поподробнее: есть в конфигураторе документ "ПланированиеВыработкиПоРесурсам", у документа есть ТЧ, реквизиты у ТЧ след: Сотрудник(тип справочник ФизическиеЛица), Часы(тип Число), Комментарии(тип Строка), и в форме этого документа мною созданы кнопки "Заполнить"(при нажатии он загружает в ТЧ документа список сотрудников из справочника ФизическиеЛица) и кнопка "УстановкаЗначения", эта кнопка устанавливает значения для выделенных строк,т.е после того как список сотрудников загружен в ТЧ(часы и комментарии остаются не заполненные), надо чтоб пользователь выделил строки(может быть несколько строк), и должна открываться общая форма, для того чтобы установить значения(общая форма называется "ВыборПроизвольногоЗначения", у него единственный реквизит: Значения, тип: Произвольный, есть кнопки "ПодтвердитьВыбор"(для того чтобы при нажатии кнопки "ОК" подтвертился выбор) и "ОтменитьВыбор"(для отмены установки значения)

Читайте также: