Программирование 1с выбрать строки

Программирование 1с выбрать строки

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

/// Как запросить все строки со значениями всех столбцов /// из таблицы в 1с 8.3, 8.2 &НаСервере Процедура КакЗапроситьВсеСтрокиИВсеСтолбцыИзТаблицыНаСервере() // Если нужно выбрать абсолютно все столбцы // из таблицы - используем звёздочку. Запрос = Новый Запрос( "ВЫБРАТЬ | * |ИЗ | Справочник.Номенклатура" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как запросить все строки со значениями определенных столбцов /// в 1с 8.3, 8.2 &НаСервере Процедура КакЗапроситьВсеСтрокиСЗначениямиОпределенныхСтолбцовНаСервере() // У каждого столбца в таблице есть своё имя. Запрос = Новый Запрос( "ВЫБРАТЬ | Наименование, | Вкус, | Цвет |ИЗ | Справочник.Номенклатура" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как использовать в запросах псевдонимы для столбцов и таблиц /// в 1с 8.3, 8.2 &НаСервере Процедура КакИспользоватьПсевдонимыВЗапросахНаСервере() // Псевдонимы делают текст запроса более лаконичным // и понятным. Запрос = Новый Запрос( "ВЫБРАТЬ | Продукты.Наименование КАК ИмяПродукта, | Продукты.Вкус КАК ВкусПродукта | ИЗ | Справочник.Номенклатура КАК Продукты" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как добавить в результат запроса столбец с определенным /// значением в 1с 8.3, 8.2 &НаСервере Процедура КакДобавитьВРезультатЗапросаСтолбецСОпределеннымЗначениемНаСервере() Запрос = Новый Запрос( "ВЫБРАТЬ | Наименование, | 1000 КАК Цена, | Калорийность |ИЗ | Справочник.Номенклатура" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как убрать дубликаты из результата запроса в 1с 8.3, 8.2 &НаСервере Процедура КакУбратьДубликатыИзРезультатаЗапросаНаСервере() // В справочнике Цвета есть повторящиеся элементы. // Построим запрос так, чтобы в результат попали // только различные цвета. Запрос = Новый Запрос( "ВЫБРАТЬ РАЗЛИЧНЫЕ | Наименование |ИЗ | Справочник.Цвета" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как ограничить количество строк в результате запроса /// в 1с 8.3, 8.2 &НаСервере Процедура КакОграничитьКоличествоСтрокВРезультатеЗапросаНаСервере() // Сделаем выборку первых 5 самых каллорийных продуктов. Запрос = Новый Запрос( "ВЫБРАТЬ ПЕРВЫЕ 5 | Наименование, | Калорийность |ИЗ | Справочник.Номенклатура |УПОРЯДОЧИТЬ ПО | Калорийность УБЫВ" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Как отобрать из таблицы только те строки, /// на чтение которых у пользователя есть права в 1с 8.3, 8.2 &НаСервере Процедура КакВыбратьТолькоРазрешенныеСтрокиНаСервере() // Эта возможность нужна для баз, в которых // включено ограничение прав на уровне записей (RLS). // Например, мы хотим, чтобы конкретный пользователь ни // при каких условиях не смог прочитать документы // другой организации, которые хранятся в этой же базе. // Вот и получается, что на некоторые записи (строки) таблицы // документов ему надо дать права на чтение, а не некоторые нет. // Если данное слово не указать, то в случае, когда запрос // выберет записи, на которые у пользователя нет прав, // запрос отработает с ошибкой. Запрос = Новый Запрос( "ВЫБРАТЬ РАЗРЕШЕННЫЕ | Ссылка | ИЗ | Документ.ПродажаЕды" ); ВыполнитьЗапросИВывестиНаФорму(Запрос); КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере

Основы запросов в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Читайте также:  Язык программирования 1950 годов

Владимир Милькин

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

Источник

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

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

// установить отбор ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.Установить(ЗначениеОтбора);
// отключить отбор ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.Установить(,Ложь);
ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.Использование = Истина; ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.ВидСравнения = ВидСравнения.Равно; ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.Значение = ЗначениеОтбора;

А теперь конкретные примеры:

// выбрать строки с ценой = 100 ЭлементыФормы.Товары.ОтборСтрок.Цена.Установить(100); // выбрать строки с ценой 100 и опр. валютой ЭлементыФормы.Товары.ОтборСтрок.Валюта.Установить(ВалютаУпр); ЭлементыФормы.Товары.ОтборСтрок.Цена.Установить(200); // выбрать строки с ценой >= 100 (неравенство) ЭлементыФормы.Товары.ОтборСтрок.Цена.Использование = Истина; ЭлементыФормы.Товары.ОтборСтрок.Цена.ВидСравнения = ВидСравнения.БольшеИлиРавно; ЭлементыФормы.Товары.ОтборСтрок.Цена.Значение = 100; // выбрать строки с ценой от 100 до 200 (интервал) ЭлементыФормы.Товары.ОтборСтрок.Цена.Использование = Истина; ЭлементыФормы.Товары.ОтборСтрок.Цена.ВидСравнения = ВидСравнения.Интервал; ЭлементыФормы.Товары.ОтборСтрок.Цена.ЗначениеС = 100; ЭлементыФормы.Товары.ОтборСтрок.Цена.ЗначениеПо = 200; // выбрать строки с определенными товарами по списку ЭлементыФормы.Товары.ОтборСтрок.Товар.Использование = Истина; ЭлементыФормы.Товары.ОтборСтрок.Товар.ВидСравнения = ВидСравнения.ВСписке; ЭлементыФормы.Товары.ОтборСтрок.Товар.Значение.Добавить(ПервыйТовар); ЭлементыФормы.Товары.ОтборСтрок.Товар.Значение.Добавить(ВторойТовар);

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

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

Во второй табличной части должна быть колонка — идентификационный признак, связывающий ее с первой табличной частью. Таких колонок может быть несколько (составной ключ). В событии ПриАктивизацииСтроки для первого табличного поля пишем:

ЭлементыФормы.СоставКомплекта.ОтборСтрок.Комплект.Установить(Комплект);

Для управляемых форм используется ФиксированнаяСтруктура :

ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок = Новый ФиксированнаяСтруктура("Поставщик", Поставщик);
ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок = Новый ФиксированнаяСтруктура( "Номенклатура,Поставщик", Номенклатура, Поставщик );
ПараметрыОтбора = Новый Структура(); ПараметрыОтбора.Вставить("Номенклатура", Номенклатура); ПараметрыОтбора.Вставить("Поставщик", Поставщик); ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок = Новый ФиксированнаяСтруктура(ПараметрыОтбора);

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

  • 1С:Предприятие (31)
  • API (29)
  • Bash (43)
  • CLI (99)
  • CMS (139)
  • CSS (50)
  • Frontend (75)
  • HTML (66)
  • JavaScript (150)
  • Laravel (72)
  • Linux (146)
  • MySQL (76)
  • PHP (125)
  • React.js (66)
  • SSH (27)
  • Ubuntu (68)
  • Web-разработка (509)
  • WordPress (73)
  • Yii2 (69)
  • БазаДанных (95)
  • Битрикс (66)
  • Блог (29)
  • Верстка (43)
  • ИнтернетМагаз… (84)
  • КаталогТоваров (87)
  • Класс (30)
  • Клиент (27)
  • Ключ (28)
  • Команда (68)
  • Компонент (60)
  • Конфигурация (62)
  • Корзина (32)
  • ЛокальнаяСеть (28)
  • Модуль (34)
  • Навигация (31)
  • Настройка (140)
  • ПанельУправле… (29)
  • Плагин (33)
  • Пользователь (26)
  • Практика (99)
  • Сервер (74)
  • Событие (27)
  • Теория (105)
  • Установка (66)
  • Файл (47)
  • Форма (58)
  • Фреймворк (192)
  • Функция (36)
  • ШаблонСайта (68)

Источник

ТаблицаЗначений
Метод ВыбратьСтроку()

Метод ВыбратьСтроку() открывает интерактивный диалог выбора строки из таблицы значений. Пользователь может выбрать только одну строку. Если пользователь отказался от выбора, метод возвращает значение Неопределено .

Доступность

Пример использования

Пример кода с использованием метода ВыбратьСтроку() :

//создаем таблицу значений тз = Новый ТаблицаЗначений; тз.Колонки.Добавить("Код"); тз.Колонки.Добавить("Наименование"); тз.Колонки.Добавить("Количество"); //заполняем таблицу значений НоваяСтрока = тз.Добавить(); НоваяСтрока.Код = "001"; НоваяСтрока.Наименование = "Стул деревянный"; НоваяСтрока.Количество = 1; НоваяСтрока = тз.Добавить(); НоваяСтрока.Код = "002"; НоваяСтрока.Наименование = "Стол деревянный"; НоваяСтрока.Количество = 2; //предоставляем пользователю выбор ВыбСтрока = тз.ВыбратьСтроку("Выберите строку. "); Если НЕ ВыбСтрока = Неопределено Тогда Сообщить("Вы выбрали " + ВыбСтрока.Наименование); КонецЕсли; 

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

Источник

Как в запросе 1С выбрать первые несколько строк

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

1С Выбор первых строк в запросе

Для примера я возьму один из запросов который использовал в предыдущих статьях, он просто выбирает все документа Акты списания имеющиеся в базе, как видите в моем случае их не так много, но запрос выполняется 2-3 секунды. А если таких документов будет несколько тысяч то ждать придется намного дольше.

1C Выбрать первые записи

Поэтому для отладки запроса лучше выбирать скажем первые 5 записей. Этого вполне хватить для проверки запроса. Сделать это можно в конструкторе запроса, на вкладке «Дополнительно», в разделе «Выборка записей» отмечаем пункт «Первые» и указываем необходимое количество.

Как в запросе 1С выбрать первые несколько строк

То же самое можно сделать и без конструктора дописав после слова «Выбрать» «Первые 5».

1С Выбор первых строк в запросе

Вот таким образом можно выбрать первые несколько записей в запросе. Конечно скорость выполнение запроса будет во многом зависеть и от технических характеристик сервер/компьютера на котором все это будет выполняться. Но все же если вы проверяете или пишите запрос лучше использовать данное ограничение.

Источник

Оцените статью