Разделы сайта
Выбор редакции:
- Инструкция по установке и обновлению Adobe Flash Player
- Ошибка сценария Internet Explorer
- 3 ограничение доступа к документам
- Конвертируем CSV в VCARD
- Создание Web-страниц при помощи программы FrontPage
- Как сохранить документ в фотошопе Как сохранять фотографии в фотошопе ц 6
- Черный экран при загрузке Windows: что делать, если компьютер не включается
- Учётная запись Как узнать название своей учетной записи майкрософт
- Быстрое и полное форматирование: Различия Чем отличается быстрое форматирование от полного
- Как в брандмауэре добавить программу в исключения?
Реклама
Доступ к табличной части документа 1с 8.3. Как получить данные из табличной части документов? Как получить и обойти выделенные строки табличной части |
Для того, чтобы учитывать деньги и товары, в бизнесе широко используют разные таблицы. Почти каждый документ – это таблица. В одной таблице перечислены товары к отгрузке со склада. В другой таблице – обязательства по оплате этих товаров. Поэтому в 1С видное место занимает работа с таблицами. Таблицы в 1С также называют «табличные части». Они есть у справочников, документов и других . Запрос в результате своего выполнения возвращает таблицу, доступ к которой возможно получить двумя разными способами. Первый – более быстрый – выборка, получение строк из нее возможен только по порядку. Второй – выгрузка результата запроса в таблицу значений и далее произвольный доступ к ней.
//Вариант 1 – последовательный доступ к результатам запроса //Вариант 2 – выгрузка в таблицу значений Важная особенность – в таблице, которая получена из результата запроса, все колонки будут строго типизированы. Это значит, что запросив поле Наименование из справочника Номенклатура, Вы получите колонку вида Строка с допустимой длиной не более N символов. Таблица на форме (толстый клиент) Пользователь работает с таблицей, когда она размещена на форме. Базовые принципы работы с формами мы с Вами обсуждали в уроке по и в уроке по Итак, разместим таблицу на форме. Для этого можно перетащить таблицу с панели элементов управления. Аналогично можно выбрать в меню Форма/Вставить элемент управления. Данные могут храниться в конфигурации – тогда нужно выбрать существующую (ранее добавленную) табличную часть того объекта конфигурации, форму которого Вы редактируете. Нажмите кнопку «…» в свойстве Данные. Для того, чтобы увидеть список табличных частей, нужно раскрыть ветку Объект. При выборе табличной части 1С сама добавит колонки у таблицы на форме. Строки введенные пользователем в такую таблицу будут сохраняться автоматически вместе со справочником/документом. В этом же свойстве Данные Вы можете ввести произвольное имя и выбрать тип ТаблицаЗначений. Это значит, что выбрана произвольная таблица значений. Она не добавит автоматически колонки, не будет автоматически сохраняться, но и делать с ней можно все, что угодно. Нажав правой кнопкой на таблице Вы можете добавить колонку. В свойствах колонки можно указать его имя (для обращения в коде 1С), заголовок колонки на форме, связь с реквизитом табличной части (последнее – если выбрана не произвольная таблица, а табличная часть). В свойствах таблицы на форме Вы можете указать – доступно ли пользователю добавлять/удалять строки. Более продвинутая форма – галочка ТолькоПросмотр. Эти свойства удобно использовать для организации таблиц предназначенных для вывода информации, но не редактирования. Чтобы управлять таблицей, нужно вывести на форму командную панель. Выберите пункт меню Форма/Вставить элемент управления/Командная панель. В свойствах командной панели выберите галочку Автозаполнение, чтобы кнопки на панели появились автоматически. Таблица на форме (тонкий/управляемый клиент) На управляемой форме указанные действия выглядят немного по другому. Если Вам нужно разместить на форме табличную часть – раскройте ветку Объект и перетащите одну из табличных частей влево. И все! Если нужно разместить таблицу значений, добавьте новый реквизит формы и в его свойствах укажите тип – таблица значений. Чтобы добавить колонки, используйте меню по правой кнопке мыши на этом реквизите формы, пункт Добавить колонку реквизита. После чего также перетащите таблицу влево. Чтобы у таблицы появилась командная панель, в свойствах таблицы выберите значения в секции Использование – Положение командной панели. Выгрузка таблицы в Excel Любую таблицу 1С, расположенную на форме, можно распечатать или выгрузить в Excel. Для этого щелкните правой кнопкой мыши на свободном месте в таблице и выберите пункт Вывести список. В управляемом (тонком) клиент аналогичные действия можно выполнить с помощью пункта меню Все действия/Вывести список. Главная Для начинающих разработчиков Учимся программироватьКак получить данные из табличной части документов?Для примера, рассмотрим ситуацию, когда требуется получить все номенклатурные позиции, указанные в табличной части Товары документов РеализацияТоваровУслуг . Для этого можно воспользоваться запросом со следующим текстом: ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары В качестве источника указываем табличную часть документов - таблицу Документ.РеализацияТоваровУслуг.Товары . Выходным полем объявляем поле Номенклатура , входящее в состав таблицы источника. Кроме этого, поскольку одна и та же товарная позиция, естественно, могла присутствовать и не один раз в документах, применяем РАЗЛИЧНЫЕ для получения только различных строк в выходной таблице запроса. Для примера создадим обработку СписокТоваров , где выбирается документ РеализацияТоваровУслуг , и нажатием на соответствующую кнопку в окно сообщений выводится список неповторяющихся позиций номенклатуры, содержащейся в табличной части этого документа. Для того, чтобы ограничить выборку номеклатуры только номенклатурой из табличной части конкретного документа используем параметр Ссылка в условии в запросе (ГДЕ... ): ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Ссылка Табличные части существуют у многих объектов в 1С:
Табличные части позволяют хранить неограниченное количество структурированной информации, принадлежащей одному объекту. Рассмотрим некоторые приемы работы с табличными частями. Как обойти табличную частьДля обхода табличной части можно использовать цикл Для каждого Для каждого Строка из ТабличнаяЧасть Цикл Сообщить(Строка. РеквизитТабличнойЧасти) ; КонецЦикла ; На каждой итерации в переменную Строка передается очередная строка табличной части. Значения реквизитов строки можно получить выражением Строка.ИмяРеквизита . Как получить и обойти выделенные строки табличной частиДля вывода информации из табличной части объекта служит элемент формы Табличное поле . Для включения возможности выделения нескольких строк на табличном поле нужно установить значение Множественный у его свойства Режим выделения . Для получения перечня выделенных строк используется следующий код: Для того чтобы обойти выделенные строки используется цикл Для каждого : ВыделенныеСтроки= ЭлементыФормы. ИмяТабличногоПоля. ВыделенныеСтроки; Для каждого Строка из ВыделенныеСтроки Цикл //содержимое цикла КонецЦикла ; Как программно выделить строки табличной части (табличного поля) и снять выделениеЧтобы программно снять выделение строк табличного поля: ЭлементыФормы. ИмяТабличногоПоля. ВыделенныйСтроки. Очистить() ; Чтобы программно выделить все строки табличного поля: Для
каждого ТекущаяСтрока Из
ТабличнаяЧасть Цикл Как очистить табличную частьТабличнаяЧасть. Очистить() ; Как получить текущую строку табличной частиТекущая строка — это срока, в которой у пользователя в данный момент находится курсор. Чтобы ее получить, нужно обратиться к элементу управления на форме, который связан с табличной частью. Для обычных форм код будет выглядеть так: ЭлементыФормы. ИмяТабличногоПоля. ТекущиеДанные; Для управляемых форм: Элементы. ИмяТабличногоПоля. ТекущиеДанные; Как добавить новую строку в табличную частьДобавление новой строки в конец табличной части: НоваяСтрока=
ТабличнаяЧасть.
Добавить()
;
Добавление новой строки в любое место табличной части (последующие строки будут сдвинуты): НоваяСтрока=
ТабличнаяЧасть.
Вставить(Индекс)
НоваяСтрока. Реквизит1 = "Значение" ; Как программно заполнить реквизиты строки табличной частиЕсли нужно программно заполнить реквизиты строки табличной части, которую добавляет пользователь, необходимо использовать обработчик события табличной части ПриНачалеРедактирования . Создаваемая обработчиком процедура имеет три параметра:
Рассмотрим пример. Допустим, нам нужно заполнить реквизит табличной части СчетУчета , в случае, когда добавляется новая строка. При редактировании существующей строки изменять счет учета не нужно. Процедура ТабличнаяЧастьПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование) //Если пользователь редактирует существующую строку, то ничего не делаем
//Если же строка новая, устанавливаем счет учета
|
Читайте: |
---|
Популярное:
Новое
- Ошибка сценария Internet Explorer
- 3 ограничение доступа к документам
- Конвертируем CSV в VCARD
- Создание Web-страниц при помощи программы FrontPage
- Как сохранить документ в фотошопе Как сохранять фотографии в фотошопе ц 6
- Черный экран при загрузке Windows: что делать, если компьютер не включается
- Учётная запись Как узнать название своей учетной записи майкрософт
- Быстрое и полное форматирование: Различия Чем отличается быстрое форматирование от полного
- Как в брандмауэре добавить программу в исключения?
- Публикации Создание точки восстановления