- Как добавить произвольные колонки в динамический список?
- Как в 1С добавлять на форму списка различные колонки
- 1С УФ. Добавление в список колонок с реквизитами
- Добавляем дополнительное поле в документ-список
- Остатки в списке документов
- Неверный путь
- Оптимальное решение
- Обращайте внимание
- Как программно добавить колонку в форму списка 1С
- Программное изменение динамического списка
Как добавить произвольные колонки в динамический список?
В 1С Предприятии 8.2 формы списка объектов конфигурации построены с помощью динамического списка. Например, форма списка справочника Номенклатура содержит основной реквизит типа Динамический список , отображающий основную таблицу Справочник.Номенклатура и динамический список формируется путем запроса к этой таблице.
Однако бывает необходимо добавить произвольные колонки в динамический список. Рассмотрим эту ситуацию на примере отображения актуальной цены в списке справочника Номенклатура .
Эти данные мы можем получить из таблицы регистра сведений Цены.СрезПоследних . Следовательно поле Цена из этой таблицы нам нужно добавить в динамический список Список , который является основным реквизитом формы списка номенклатуры и служит источником данных для таблицы списка.
Создадим форму списка справочника Номенклатура и откроем палитру свойств основного реквизита формы Список . Установим флаг ПроизвольныйЗапрос и в строке Настройка списка нажмем Открыть .
В поле Запрос введем следующий текст запроса:
ВЫБРАТЬ
СправочникНоменклатура.Код,
СправочникНоменклатура.Наименование,
ЦеныСрезПоследних.Цена
ИЗ
Справочник.Номенклатура КАК СправочникНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних КАК ЦеныСрезПоследних
ПО ЦеныСрезПоследних.Номенклатура = СправочникНоменклатура.Ссылка
Теперь перетащим поле Цена из окна реквизитов в окно элементов формы.
В результате мы получим список номенклатуры, выводящийся вместе с ее актуальной ценой.
Демонстрационный пример находится в каталоге 1CITS/EXE/FAQ/ПроизвольнаяКолонкаВДинамическомСписке.dt. Пример выполнен на версии платформы 8.2.9.356.
Источник
Как в 1С добавлять на форму списка различные колонки
Обновим 1С с гарантией сохранности базы
Поможем с 1С 24/7, без выходных
Установим сервисы 1С бесплатно
Оперативно решим любые задачи по 1С
Любой документ в 1с имеет определенную форму. Если нам необходимо ее изменить, например добавить для видимости колонку, то сделать это можно следующим способом:
1) Заходим в документ и в правом верхнем углу нажимаем на кнопку «Еще».
2) В появившемся списке выбираем «Изменить форму».
3) В открывшейся окне настройки формы проверяем проставленные «V» — возможно у нужного поля галочка не стоит.
Если ее нет, то проставляем и нажимаем «Ок» (Для примера добавим в «Тип»).
Также можно расположить колонки в нужно порядке. Для этого повторно заходим в «Настройка формы» (п.1, 2) и воспользуемся синими стрелочками. Нужно выделить строчку, которую нужно переместить и нажимаем на нужную стрелочку («Вверх», «Вниз» в зависимости от того куда его нужно переместить колонку на форме- правее или левее).
Для примера переместим «Тип» сразу за колонкой «Номенклатура».
Если в списке нет нужного реквизита, то можно воспользоваться кнопкой «Добавить поля», но это работает не всегда — там где возможно кнопка будет активна.
Для примера выведем на форму «Вид номенклатуры». Для этого открываем «Настройка формы» (п.1, 2), выбираем строчку «Номенклатура» и нажимаем «Добавить поля».
В появившемся списке ставим галочку возле «Вид номенклатуры» и нажимаем «ОК».
В списке «Настройка формы» появится соответствующая строчка. Нажимаем «ОК».
Источник
1С УФ. Добавление в список колонок с реквизитами
Рассмотрим задачу, когда нужно вывести дополнительные реквизиты и сведения в общем списке элементов. Рассмотрим на примере конфигурации УТ 11, в справочник Номенклатура добавлен дополнительный реквизит Артикул клиента.
Открываем список элементов справочника Номенклатура, выбираем меню Все действия – Изменить форму… (рис. 1):
Рис. 1. Все действия – Изменить форму…
В открывшемся окне Настройка формы у Списка номенклатуры находим поле Ссылка, выделяем его и нажимаем Добавить поля (рис. 2):
Рис. 2. Добавление полей
Далее в открывшемся окне Выберите поля для размещения в форме выбираем нужный дополнительный реквизит Артикул клиента и нажимаем ОК (рис. 3):
Рис. 3. Выбор дополнительного реквизита
Поле Артикул клиента появляется на форме Настройка формы, можно переместить его, нажимая на стрелочки Вверх, Вниз. После выбора позиции нажимаем ОК (рис. 4):
Рис. 4. Дополнительный реквизит в списке полей
В списке Номенклатуры появилась колонка с дополнительным реквизитом Артикул клиента (рис. 5):
Рис. 5. Новая колонка в списке
Можно выгрузить в файл получившийся список, меню Все действия – Вывести список… (рис. 6):
Источник
Добавляем дополнительное поле в документ-список
Остатки в списке документов
Решим следующую задачу: в списке документов «Заказы поставщику» нам необходимо добавить новую колонку «Остаток по заказу», которая будет отображать остаток для документа в регистре накопления «Заказы поставщику» на текущую дату.
Реализовать это нужно в конфигурации «Управление производственным предприятием» версии 1.3.
Неверный путь
Рассмотрим самый «очевидный» путь, он же самый простой. Большинство начинающих программистов делают именно так. У табличного поля формы, которое привязано к реквизиту формы с типом «ДокументСписок» есть событие «ПриВыводеСтроки». В нем напишем Запрос к остаткам по заказу для выводимой строки и полученный результат присвоим ячейке текущей строки в колонке «Остаток». Вот так будет выглядеть код обработчика события «ПриВыводеСтроки»:
Дело сделано! Задача решена! Но! Событие «ПриВыводеСтроки» вызывается для каждой строки отдельно. То есть, если в список выводится 30 строк, то запрос будет формироваться столько же раз! Может есть другой путь?
Оптимальное решение
Другой путь есть. Оптимальное решение кроется в использовании события «ПриПолученииДанных». Это событие вызывается один раз, когда происходит получение порции данных списком документов. В контексте этого события нам доступны данные, которые получила платформа. Поэтому мы можем их обработать одним запросом. Вот программный код обработчика «ПриПолученииДанных» для решения этой задачи:
Результат работы такой же, как и для варианта с использованием события «ПриВыводеСтроки», но есть одно НО.
Обращайте внимание
Самое главное отличие заключается в скорости работы. Вот сравнение времени выполнения для обоих вариантов решения задачи:
При использовании «ПриВыводеСтроки» время формирования списка выполняется дольше практически в четыре раза! Не смотря на это, не рекомендую добавлять подобные поля в список документов, поскольку, в любом случае, это потребует дополнительных ресурсов серверной машины. Лучше используйте отчеты.
Источник
Как программно добавить колонку в форму списка 1С
Как добавить картинку в форму списка мы рассматривали в данном уроке.
Как добавить столбец в форму списка 1С программное рассмотрим на примере добавления столбца инвентарный номер в справочнике основных средств.
В конфигураторе найдем нужный справочник, откроем форму списка в форме списка дважды кликнем по Динамическому списку и проверим наличие флага у свойства Произвольный запрос, как на рисунке ниже.
Кликаем по кнопке открыть около надписи Настройка списка, и перед нами откроется окно редактора запроса
Дорабатываем запрос, получаем в запросе необходимые дополнительные данные, в нашем случае инвентарный номер из регистра ПервоначальныеСведенияОСБухгалтерскийУчет.
Кликаем ОК, теперь в Динамическом списке появился новый реквизит Инвентарный номер, который мы выбрали в запросе.
Установим флаг Использовать всегда и перетянем, зажав левой кнопкой реквизит на форму, как на картинке.
Чтобы поменять заголовок столбца кликнем по нему и в свойстве заголовок напишем нужное название.
Для примера ниже оставлю свой запрос.
Программное изменение динамического списка
В функции ПолучитьТекстЗапроса(), программно формируем нужный запрос и передаем его в Динамический список.
Источник