Запрос в 1С с нуля. Часть 1. Универсальный запрос "звёздочка".
Данный материал упрощён для улучшения понимания - это скорее "жизненный" конспект. Если планируете сдавать экзамен (в институте) обратитесь к литературе. Она указана ниже.
Универсальный запрос "звёздочка", с его помощью сразу видны реквизиты с их значениями - это основная идея ...
Изучать запросы лучше используя консоль запросов 1с 8.3 (управляемые формы).
Она представляет собой небольшой файл ".epf", например "КонсольЗапросов.epf".
Скачать её можно перейдя (*1) по ссылке "Консоль запросов 1С".
1) Запускаем из 1С: БП, нажимаем наверху справа "три черточки" (Сервис и настройки),
2) далее: "Файл" \ "Открыть".
Путем выполнения запроса выбираются и считываются из информационной базы только конкретные (нужные) данные, к тому же они могут быть еще и обработаны (например, сгруппированы и т.п.).
Это приведёт к ускорению, если есть отдельный мощный сервер и "слабый" клиент (компьютер пользователя), и уменьшит нагрузку на (компьютерную) сеть при большой базе данных и если много одновременно работающих пользователей.
Условная схема, как в основном поступает информация:
Отчет << Запрос << Регистр << Документ << Справочник
Простейший текст запроса:
// универсального "звёздочка"
ВЫБРАТЬ {какие столбцы} // если "*", то все
ИЗ {от куда} // Регистр (Документ или Справочник)
3) Напишем его в консоли запросов:
>Параметры запроса
>Текст запроса
ВЫБРАТЬ * ИЗ Справочник.Номенклатура
>Результат запроса
4) Нажимаем [Выполнить]
Результат выполнения этого запроса:
Рисунок 1. (см. ниже Таблицу 1 там увеличено)
Что очень удобно для оценки, т.к. сразу видны реквизиты с их значениями.
А при написании кода программы, нужно уже указывать конкретный(-ые) столбец(-ы).
Например, если хотим узнать какой код у наименования номенклатуры:
&НаСервере
Процедура КодыНоменклатурыСервере()
Запрос1 = Новый Запрос;
Запрос1.Текст = "
| ВЫБРАТЬ
| Код, Наименование
| ИЗ
| Справочник.Номенклатура";
РезультатЗапроса = Запрос1.Выполнить();
СтрокаВыборки = РезультатЗапроса.Выбрать();
Пока СтрокаВыборки.Следующий() Цикл
Сообщить (СтрокаВыборки.Код + " " + СтрокаВыборки.Наименование);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура КодыНоменклатуры(Команда)
КодыНоменклатурыСервере();
КонецПроцедуры
Текст запроса желательно писать человекочитаемым (в ручную) и понимать (потом).
Рисунок 2. Упрощённая схема движения (текста) запроса до файла (и обратно - в обратном направлении - результата запроса).
Клиент-серверная архитектура | |||||||
У пользователей на ПК | |||||||
Маршру тизатор (веб сервер) |
-«-- | Программа клиент 1С № 1 | < | Клиентские приложения | |||
толстый клиент; | |||||||
-«-- | Программа клиент 1С № 2 | конфигуратор. | |||||
* * * | тонкий клиент; | ||||||
« | Программа клиент 1С № n-1 | « | мобильный клиент; (на с\т) | ||||
веб-клиент; | |||||||
-«-- | Программа клиент 1С № n | ||||||
|
|||||||
--»- | сервер 1с | --»- | СУБД | --»- | Файл(ы) с данными | ||
Кластер | MS SQL server | ||||||
серверов 1С: | PostgereSQL | ||||||
Предприятия 8 | Oracle Database | ||||||
IBM DB2 | |||||||
На диске(ах) сервера(ов) в серверной (комнате) |
Система управления базами данных (СУБД) — это набор инструментов, которые позволяют удобно управлять базами данных (взаимосвязанными таблицами): удалять, добавлять, фильтровать и находить элементы, менять их структуру и создавать резервные копии (весь 1С был написан в свое время под "стандарт" MS SQL server, в т.ч. и платформа 8.3).
При работе с файловой базой, кроме 1С и файла вроде этого не видно, но оно есть. Просто эмулируется самой 1С, поэтому и скорости еще те. Что б хоть как то "увеличить" скорость cчитывания данных, они для этого придумали "Регистры", при этом еще больше снизив скорость записи.
Если на ПК ОЗУ <16Gb, то это издевательстово над собой и "железом". У процессора частота должна быть больше 3ГГц + авторазгона) и желательно (>=) 4 ядра (если Windows 11\10).
(Желательно уменьшить использования файла подкачки. Например, увеличив ОЗУ, а не наоборот).
Соблюдать Правило "половинки" (не для "мощного" сервера):
Не забываем смотреть на ресурсы машины (загруженность потоков ядер, свободного места в памяти и на диске, загруженности "канала" сети), т.е. 50% должно быть свободно !
Если больше, определяем "проблему", пытаемся рассмотреть варианты оптимизации, иначе придется думать чтоб ее "разделить" (и перенести) или апгрейде (улучшении "железа", если оно слабое, а может и о покупке нового отдельного сервера).
Использовать по возможности большее количество дисков-SSD (еще лучше М2, если есть такой разъем), но меньшего размера (>= 256Gb) и не забывать
делать резервные копии на другой диск!
Справочники в 1С хранят (условно) постоянную информацию.
Документы в 1С хранят (”движущуюся”) информацию, которая может измениться со временем.
Кроме документа, она ещё (может) поступает в регитр(ы) 1С.
Чтобы посмотреть всю эту ”движуху”, перейдём в Конфигуратор,
в Дереве метаданных дважды нажмём на Документе, найдём
вкладку ”Движение”, там будут перечислены Регистры,
смотрим те что с [v].
И наоборот, если в Дереве метаданных нажать на Регистр:
На вкладке регистраторы, будут перечислены Документы, см. с [v].
(Еще интересная вкладка: Данные)
Обратите внимание сколько всего должно быть, если захотите добавить конфетку (товар) программно!
Так это Справочник, а в Документе еще и про "связанные" с ним Регистры.
Таблица 1. То же, но покрупнее (и повёрнуто на 90 градусов):
Запрос: Справочник.Номенклатура (Записей в результате: 7) | ||
Ссылка | Ассорти (конфеты) | Барбарис (конфеты) |
ВерсияДанных | AAAAAQAAAAA= | AAAAAQAAAAE= |
ПометкаУдаления | Нет | Нет |
Родитель | ||
ЭтоГруппа | Нет | Нет |
Код | 00-00000001 | 00-00000002 |
Наименование | Ассорти (конфеты) | Барбарис (конфеты) |
Артикул | ||
ВидНоменклатуры | Товары | Товары |
ЕдиницаИзмерения | шт | кг |
НаименованиеПолное | Ассорти (конфеты) | Барбарис (конфеты) |
Комментарий | ||
Услуга | Нет | Нет |
НоменклатурнаяГруппа | ||
СтранаПроисхождения | ||
НомерГТД | ||
СтатьяЗатрат | ||
ОсновнаяСпецификацияНоменклатуры | ||
Производитель | ||
Импортер | ||
КодТНВЭД | ||
КодОКВЭД2 | ||
КодОКВЭД | ||
КодОКП | ||
КодОКПД2 | ||
УдалитьСтавкаНДС | 18% | 18% |
ПродукцияМаркируемаяДляГИСМ | Нет | Нет |
ПериодичностьУслуги | ||
КодРаздел7ДекларацииНДС | ||
Операции0 | ||
ПодконтрольнаяПродукцияВЕТИС | Нет | Нет |
ВидСтавкиНДС | Общая | Общая |
ТабачнаяПродукция | Нет | Нет |
ОбувнаяПродукция | Нет | Нет |
ЛегкаяПромышленность | Нет | Нет |
МолочнаяПродукцияПодконтрольнаяВЕТИС | Нет | Нет |
Шины | Нет | Нет |
Духи | Нет | Нет |
Велосипеды | Нет | Нет |
КреслаКоляски | Нет | Нет |
Фотоаппараты | Нет | Нет |
СредствоИндивидуальнойЗащиты | Нет | Нет |
КодНоменклатурнойКлассификацииККТ | ||
ПрослеживаемыйТовар | Нет | Нет |
ВесПоСертификатуТовара | ||
АльтернативныйТабак | Нет | Нет |
УпакованнаяВода | Нет | Нет |
МолочнаяПродукцияБезВЕТИС | Нет | Нет |
Описание | ||
КодВидаТРУ | ||
Антисептики | Нет | Нет |
БАДы | Нет | Нет |
НикотиносодержащаяПродукция | Нет | Нет |
Пиво | Нет | Нет |
ПрослеживаемыйКомплект | Нет | Нет |
БезалкогольноеПиво | Нет | Нет |
СоковаяПродукция | Нет | Нет |
Зерно | Нет | Нет |
ПродуктыПереработкиЗерна | Нет | Нет |
ПризнакПредметаРасчета | ||
МорепродуктыПодконтрольныеВЕТИС | Нет | Нет |
ЗерноВЕТИС | Нет | Нет |
ПродуктыПереработкиЗернаВЕТИС | Нет | Нет |
ПодконтрольнаяПродукцияСАТУРН | Нет | Нет |
ДополнительныеРеквизиты | ||
ИсторияВидаСтавкиНДС | ||
ИсторияПрослеживаемогоТовара | ||
Предопределенный | Нет | Нет |
ИмяПредопределенныхДанных |
1) Литература для дальнейшего изучения:
1.1) Язык запросов 1С Предприятие 8 , 2021г, 376 страниц, 4 больших главы, для 1С 8.3.3.715.
Чтобы считывать данные из базы (SQL). Для начинающих разработчиков.
1.2) "1С:Программирование для начинающих ..." М. Радченко (страницы 544-569).
Эта книга попроще, на тот случай, если предыдущая не понравилась.
2) Можно посмотреть видео в интернете:
2.1) "Запросы в 1с за 3 часа". Часть 1 и Часть 2.
Целиком все в двух частях.
2.2) "Курс программирования 1С 8.3: обучение с нуля" Школа 1С - видеоуроки (с 21).
Объем поменьше и разделен на отдельные уроки.
3) Информация:
3.1) Краткая история фирмы «1С» с 1991 г.
3.2) Выбор Microsoft SQL Server в качестве сервера баз данных для продуктов фирмы "1С" от 25 мая 1998 г.