Parus16.ru

Парус №16
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

1с скд соединить строки

1с скд соединить строки

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

СОЕДИНИТЬСТРОКИ (JOINSTRINGS)- агрегатная функция, позволяющая объединять строки в одну строку.

  • Значения, которые нужно объединить в одну строку. Если является массивом, то в строку будут объединяться элементы массива. Если является таблицей значений, то в строку будут объединяться все колонки и строки таблицы;
  • Разделитель элементов. Строка, содержащая текст, который нужно использовать в качестве разделителя между элементами массива и строками таблицы значений. По умолчанию – символ перевода строк;
  • Разделители колонок. Строка, содержащая текст, который нужно использовать в качестве разделителя между колонками таблицы значений. По умолчанию «;».

Отчет вводит данные табличной части Товары документа Реализация товаров и услуг. Необходимо в итогах по документу выводить наименования всех товаров присутствующих в нем.

На закладке Ресурсы, схемы компоновки данных отчета, укажем выражение СоединитьСтроки(Номенклатура, “,”) для ресурса Номенклатура.

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

Нужно сделать строку из полей: поле1+поле2+поле3. Но тип значений в полях не везде «строка»

Рассмотрим все варианты как соединить строку с другими типами:

1 вариант нужно просто преобразовать число в строку в запросе

используйте Представление(Ваше_числовое_поле) — только это все равно не строка т.к. со строкой не сможете далее объединить.

Плохо то, что все равно дальше объединить со строкой не получится. Всегда будет ошибка.

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

И реализовал так:

В запросе вообще не трогаем поля. Для объединения используем раздел вычисляемые поля. Все становится очень просто и понятно.

Вот и все решение. Просто форматируем исходный тип данных в строку, можно даже использовать «Формат» чтобы сделать нужный вид(например убрать разделители как в примере).

СоединитьСтроки — используется в СКД для получения ресурса (объединяет строки в одну строку)

Читайте так же:
Видеокарта ati mobility radeon hd 5470 характеристики

Функция доступна на платформах, начиная с версии 8.2.14.

Для примера рассмотрим задачу, вывести в одной ячейке документ, а в другой всю номенклатуру этого документа в одной ячейке.

В СКД создаем набор данных, и переходим на вкладку «Ресурсы» и создаем необходимые ресурсы с использование функции СоединитьСтроки().

В отчете это будет выглядеть так:

Добрый день!
Спасибо за статью!

Сделал следующим образом: в отчете СКД использовал 2 набора данных «Запрос». В первом присутствуют документы; во втором — данные табличных частей. Соединил наборы по ссылке. Далее сделал, как указано на скрине.
Но в отчет выводится только первая строка табличной части. Подскажите пожалуйста, что я сделал не так?

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

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

Содержание

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

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

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

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

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

Читайте так же:
Блок питания для компьютера своими руками схема

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

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

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

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

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

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

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

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

  1. Создать на форме невидимую командную панель, т.е. убрать флажок «Видимость» в свойствах командной панели.
  2. В свойствах табличного поля убрать флажок «АвтоКонтекстноеМеню».
  3. Из выпадающего списка «КонтекстноеМеню» выбрать только что созданную командную панель.

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

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

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

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

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

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

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

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

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

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

Читайте так же:
Видеокарта gigabyte gt 430

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

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

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

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

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

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

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

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

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

СКД. Вывод полей в отдельной колонке

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

НастройкаСКД

Конструктором настроек формируем таблицу, в строках будет группировка «Номенклатура», в колонках — «Период».

Ресурсы

Для всех прочих полей в ресурсах СКД укажем агрегатную функцию — пусть это будет Сумма.

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

ВычПоле

Добавим вычисляемое поле, назовем его «ДополнительнаяКолонка».

НастройкаСКД_ВычПоле

В колонки таблицы добавим новую группировку по этой колонке.

  • Мы хотим, чтобы поля «НачальныйОстаток», «КонечныйОстаток» не выводилось в итогах
Читайте так же:
Влажность воздуха в серверной

НастройкаСКД_ОтключаемИтоги

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

НастройкаСКД_ПереопределяемПоля

В группировке «ДополнительнаяКолонка» изменим состав выводимых полей следующим образом:

НастройкаСКД_Заголовок.png

Зададим заголовок группировке в условном оформлении:

НастройкаСКД_СвоиИтоги1

В результате наш отчет будет выглядеть вот так:

  • Мы хотим, чтобы поле «КоличествоДокументовПродажи» не выводилось в группировках, а вот в итогах пусть будет

НастройкаСКД_ПереопределяемПоля2

Изменим состав выводимых полей в группировке «НомерПериода»:

НастройкаСКД_ПереопределяемПоля3

А в группировке «ДополнительнаяКолонка» — вот так:

НастройкаСКД_СвоиИтоги2

Получим на выходе вот такой отчет:

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

1с сортировка табличной части управляемые формы

1с сортировка табличной части управляемые формы

Управляемая форма. Настройка сортировки в форме списка по произвольной колонке

Настройка сортировки в форме списка по произвольной колонке.

Сортировка строк табличной части

.Сортировать(«Дата Возр»);
Код 1C v 8.х

Сортировать( , )
Параметры:
(обязательный)
Тип: Строка.
Список имен колонок, разделенных запятыми, по которым производится сортировка таблицы. После каждого имени колонки через пробел может быть указано направление сортировки. Направление определяется: «Убыв» («Desc») — упорядочивать по убыванию; «Возр» («Asc») — упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Порядок указания имен колонок таблицы определяет порядок сортировки. Это означает, что сначала таблица сортируется по колонке, указанной первой. Затем группы строк с одинаковым значением в этой колонке сортируются по колонке, которая указана второй, и так далее.
(необязательный)

Тип: СравнениеЗначений.
Объект для сравнения элементов. Если объект сравнения не задан, сравнение выполняется по следующим правилам:
элементы, чьи типы не совпадают, сравниваются по коду типа;
элементы простых типов сравниваются по значению;
элементы остальных типов сравниваются по строковому представлению.

Описание:
Сортирует табличную часть в соответствии с указанными правилами сортировки.

1с сортировка табличной части управляемые формы

Похожие FAQ

Еще в этой же категории

Заполнение списка значений в элементе поле выбора на форме 9
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип — Произвольный, Использование — Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Форма

Читайте так же:
Гугл карта владивостока с улицами и домами

Программное создание таблицы значений с условным оформлением 6
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Форма

Как активизировать, перевести фокус на необходимый элемент на форме? 6
//Текущему Элементу формы присваиваем элемент котровый необходимо активизировать ЭтаФорма.ТекущийЭлемент = ЭлементыФормы.ТабличноеПоле; Форма

Программное добавление элементов на форму 6
ЭлементыФормы (Controls) . Добавить (Add) — Добавляет элемент управления на форму. Синтаксис: Добавить( Тип , Имя , Видимость , ПоместитьНа ) Параметры: Тип (обязательный) Тип: Тип. Тип добавляемого элемента управления: Индикатор; П Поле выбора

Как ограничить список выбора? 5
Ограничим список элементов, установив отбор в открываемой форме //Пример 1 Процедура СтатьяПДРНачалоВыбора(Элемент, СтандартнаяОбработка) ФормаВыбора = Справочники.ПрочиеДоходыИРасходы.ПолучитьФормуВыбора(, Элемент); ЭлементОтбораВидПДР = Форма Посмотреть все в категории Работа с Формой (Диалог) и её элементами

1С просто и понятно

Нажмите, чтобы связаться со мной:

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

Использование данного метода вернет вам ошибку: «Неверное имя колонки 1с».

1с сортировка табличной части управляемые формы

Табличная часть 1С

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

ТабЧасть=Товары.Выгрузить(); // создаем временную таблицу
ТабЧасть.Колонки.Добавить(«Артикул»); // добавляем в нее нужную колонку

Для каждого Стр из ТабЧасть цикл
Стр.Артикул=Стр.Номенклатура.Артикул; // переписываем информацию из расчетной колонки во временную таблицу
КонецЦикла;

ТабЧасть.Сортировать(«Артикул»); // Сортируем временную таблицу по нужной колонке
Товары.Загрузить(ТабЧасть); // Загружаем временную таблицу в табличную часть

Надеюсь, эта статья была вам полезна. Если у вас остались вопросы вы можете задать их в комментариях.)

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector