Перейти до вмісту

Запити 1С

Матеріал з K2 ERP Wiki


SEO title: Запити 1С — мова запитів, вибірки, регістри, довідники, оптимізація та міграція в K2 ERP SEO description: Запити 1С: що це таке, як працює мова запитів 1С, вибірки з довідників, документів і регістрів, параметри, з’єднання, групування, тимчасові таблиці, продуктивність, типові помилки, приклади запитів і використання запитів під час міграції з 1С у K2 ERP. SEO keywords: запити 1С, мова запитів 1С, query 1С, вибрати 1С, де 1С, згрупувати 1С, з'єднання 1С, регістри 1С, довідники 1С, документи 1С, тимчасові таблиці 1С, оптимізація запитів 1С, SQL 1С, міграція з 1С, інтеграція з 1С, заміна 1С, K2 ERP, українська ERP, санкції 1С, санкції BAS, цифрова незалежність Alternative to:


Запити 1С — це механізм платформи , який використовується для отримання, відбору, об’єднання, групування, сортування й аналізу даних із довідників, документів, регістрів, планів рахунків, табличних частин та інших об’єктів інформаційної бази. Запити застосовуються у звітах, обробках, друкованих формах, інтеграціях, міграціях, перевірках даних, пошуку помилок і побудові управлінської аналітики.

У практиці переходу з на K2 ERP запити мають особливе значення, тому що саме через них часто вивантажують довідники, документи, залишки, проводки, регістри, ціни, серії, курси валют, касові операції, податкові накладні, фізичних осіб, табелі та собівартість для подальшого аналізу, очищення і перенесення.

Головне. Запит — це інструмент для отримання потрібних даних із бази: вибрати товари, знайти непроведені документи, отримати залишки, згрупувати продажі, перевірити дублікати, підготувати дані для міграції або сформувати звіт.

Важливо про 1С і BAS. та частина продуктів BAS мають санкційні, юридичні й кібербезпекові ризики в Україні. Окремі продукти і BAS внесені до відкритих переліків програмного забезпечення, забороненого до використання для окремих категорій організацій. Тому використання запитів у проєктах міграції варто розглядати як інструмент виходу зі старої системи, а не як розвиток залежності від неї.

Підхід K2 ERP. Під час переходу з запити потрібно використовувати для контрольованого отримання даних: довідників, документів, регістрів, залишків, оборотів, статусів, зв’язків, дублікатів, помилок і контрольних звірок перед завантаженням у K2 ERP.

Вступ

У майже всі дані зберігаються в об’єктах:

  • довідниках;
  • документах;
  • регістрах;
  • планах рахунків;
  • планах видів характеристик;
  • табличних частинах;
  • константах;
  • переліченнях;
  • бухгалтерських регістрах;
  • регістрах накопичення;
  • регістрах відомостей.

Щоб отримати ці дані у потрібному вигляді, використовуються запити.

Запит може відповісти на практичні питання:

  • які товари є в довіднику;
  • які документи проведені;
  • які документи непроведені;
  • які контрагенти мають дублікати;
  • які товари мають залишки;
  • які серії прострочені;
  • які ціни актуальні;
  • які каси мають залишки;
  • які фізичні особи мають відкриті підзвітні суми;
  • які документи треба перенести в K2 ERP;
  • які дані неякісні або неповні.

Що таке запит у 1С

Запит у — це текстова інструкція мовою запитів 1С, яка описує, які дані потрібно отримати з інформаційної бази.

Запит може:

  • вибрати поля;
  • відфільтрувати записи;
  • з’єднати кілька таблиць;
  • згрупувати дані;
  • порахувати підсумки;
  • відсортувати результат;
  • використати параметри;
  • створити тимчасову таблицю;
  • отримати залишки або обороти регістрів;
  • підготувати дані для звіту або обробки.

Простий приклад запиту:

ВЫБРАТЬ
    Номенклатура.Ссылка КАК Номенклатура,
    Номенклатура.Артикул КАК Артикул,
    Номенклатура.Наименование КАК Наименование
ИЗ
    Справочник.Номенклатура КАК Номенклатура

Цей запит вибирає номенклатуру, артикул і найменування з довідника номенклатури.

Простими словами. Запит — це спосіб сказати системі: “дай мені ось ці дані, з такими умовами, у такому вигляді”.

Мова запитів 1С

Мова запитів схожа на SQL, але має свої особливості.

У ній використовуються конструкції:

  • ВЫБРАТЬ;
  • ИЗ;
  • ГДЕ;
  • СГРУППИРОВАТЬ ПО;
  • УПОРЯДОЧИТЬ ПО;
  • ЛЕВОЕ СОЕДИНЕНИЕ;
  • ВНУТРЕННЕЕ СОЕДИНЕНИЕ;
  • ИТОГИ;
  • ПОМЕСТИТЬ;
  • ОБЪЕДИНИТЬ;
  • ВЫБОР КОГДА;
  • ЕСТЬ NULL;
  • МЕЖДУ;
  • В ИЕРАРХИИ.

Хоча синтаксис часто російськомовний, результат запиту може використовуватися в українській локалізації, звітах, обробках або міграційних файлах.

Запит і SQL

Запити не є звичайним SQL у чистому вигляді.

Вони працюють через платформу , яка перетворює запит у запити до бази даних.

Ознака SQL Запит 1С
Працює напряму з таблицями БД Так Не завжди, часто через метадані 1С
Знає об’єкти конфігурації Ні Так
Може звертатися до довідників і документів Через фізичні таблиці Через об’єктну модель 1С
Має специфічні віртуальні таблиці Залежить від СУБД Так, наприклад залишки й обороти регістрів
Використовується в звітах і обробках Так Так

Де використовуються запити 1С

Запити використовуються в багатьох місцях:

  • звітах;
  • зовнішніх обробках;
  • друкованих формах;
  • інтеграціях;
  • обмінах;
  • регламентних завданнях;
  • перевірках даних;
  • міграційних обробках;
  • пошуку дублікатів;
  • контролі залишків;
  • розрахунку аналітики;
  • формуванні файлів XML, CSV, JSON;
  • підготовці даних для BI.

Основна структура запиту

Базова структура запиту:

ВЫБРАТЬ
    Поле1,
    Поле2,
    Поле3
ИЗ
    Таблица КАК Псевдоним
ГДЕ
    Условие

Приклад:

ВЫБРАТЬ
    Контрагенты.Ссылка КАК Контрагент,
    Контрагенты.Код КАК Код,
    Контрагенты.Наименование КАК Наименование
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    НЕ Контрагенты.ПометкаУдаления

Цей запит вибирає контрагентів, які не помічені на видалення.

Вибірка з довідника

Довідники — часте джерело даних.

Приклад вибірки номенклатури:

ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Код КАК Код,
    Номенклатура.Артикул КАК Артикул,
    Номенклатура.Наименование КАК Наименование,
    Номенклатура.Родитель КАК Группа
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    НЕ Номенклатура.ПометкаУдаления

Такий запит може використовуватися для експорту товарів у K2 ERP.

Вибірка з документа

Документи можна вибирати за датою, проведенням, контрагентом, організацією та іншими реквізитами.

Приклад вибірки реалізацій:

ВЫБРАТЬ
    Реализация.Ссылка КАК Документ,
    Реализация.Дата КАК Дата,
    Реализация.Номер КАК Номер,
    Реализация.Контрагент КАК Контрагент,
    Реализация.СуммаДокумента КАК Сумма
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
    Реализация.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
    И Реализация.Проведен

Тут використовуються параметри `&ДатаНачала` і `&ДатаКонца`.

Вибірка з табличної частини документа

Багато документів мають табличні частини.

Наприклад, реалізація має рядки товарів.

ВЫБРАТЬ
    Реализация.Ссылка КАК Документ,
    Реализация.Дата КАК Дата,
    Реализация.Номер КАК Номер,
    Товары.Номенклатура КАК Номенклатура,
    Товары.Количество КАК Количество,
    Товары.Цена КАК Цена,
    Товары.Сумма КАК Сумма
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК Товары
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализация
        ПО Товары.Ссылка = Реализация.Ссылка
ГДЕ
    Реализация.Проведен

Такий запит потрібен, якщо треба вивантажити не тільки заголовки документів, а й рядки товарів.

Параметри запиту

Параметри дозволяють передавати значення в запит із коду.

Приклад:

ВЫБРАТЬ
    Реализация.Ссылка,
    Реализация.Дата,
    Реализация.Номер
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
    Реализация.Дата >= &ДатаНачала
    И Реализация.Дата <= &ДатаКонца

У коді 1С параметри можуть задаватися так:

Запрос = Новый Запрос;
Запрос.Текст = ТекстЗапроса;
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
Результат = Запрос.Выполнить();

Параметри корисні для:

  • періодів;
  • організацій;
  • складів;
  • контрагентів;
  • типів цін;
  • валют;
  • статусів;
  • міграційних фільтрів.

Умова ГДЕ

Конструкція `ГДЕ` використовується для фільтрації.

Приклад:

ГДЕ
    Документ.Проведен
    И НЕ Документ.ПометкаУдаления
    И Документ.Дата >= &ДатаНачала

Типові умови:

  • дата документа;
  • проведення;
  • помітка видалення;
  • організація;
  • склад;
  • контрагент;
  • валюта;
  • статус;
  • сума;
  • тип документа.

Сортування

Для сортування використовується `УПОРЯДОЧИТЬ ПО`.

Приклад:

ВЫБРАТЬ
    Документ.Дата,
    Документ.Номер,
    Документ.Контрагент
ИЗ
    Документ.РеализацияТоваровУслуг КАК Документ
УПОРЯДОЧИТЬ ПО
    Документ.Дата,
    Документ.Номер

Сортування корисне для звітів, вивантажень і перевірок.

Групування

Групування використовується для підсумків.

Приклад продажів по контрагентах:

ВЫБРАТЬ
    Реализация.Контрагент КАК Контрагент,
    СУММА(Реализация.СуммаДокумента) КАК СуммаПродаж
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
    Реализация.Проведен
    И Реализация.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
СГРУППИРОВАТЬ ПО
    Реализация.Контрагент

Результат:

Контрагент Сума продажів
ТОВ “Клієнт” 120 000 грн
ТОВ “Ромашка” 80 000 грн

Агрегатні функції

У запитах можна використовувати агрегатні функції.

Найпоширеніші:

Функція Що робить Приклад
СУММА Підсумовує значення СУММА(Сумма)
КОЛИЧЕСТВО Рахує кількість записів КОЛИЧЕСТВО(Ссылка)
МИНИМУМ Знаходить мінімальне значення МИНИМУМ(Дата)
МАКСИМУМ Знаходить максимальне значення МАКСИМУМ(Дата)
СРЕДНЕЕ Рахує середнє значення СРЕДНЕЕ(Цена)

З’єднання таблиць

Запити часто поєднують кілька таблиць.

Наприклад, потрібно отримати документи реалізації і дані контрагента.

ВЫБРАТЬ
    Реализация.Номер КАК Номер,
    Реализация.Дата КАК Дата,
    Реализация.Контрагент КАК Контрагент,
    Контрагенты.Код КАК КодКонтрагента,
    Контрагенты.Наименование КАК НазваниеКонтрагента
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
        ПО Реализация.Контрагент = Контрагенты.Ссылка

Ліве з’єднання

`ЛЕВОЕ СОЕДИНЕНИЕ` повертає всі записи з лівої таблиці, навіть якщо у правій таблиці відповідника немає.

Це корисно для пошуку проблем.

Наприклад, знайти документи, у яких контрагент не знайдений або пошкоджений:

ВЫБРАТЬ
    Реализация.Ссылка,
    Реализация.Контрагент,
    Контрагенты.Ссылка КАК НайденныйКонтрагент
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
        ПО Реализация.Контрагент = Контрагенты.Ссылка
ГДЕ
    Контрагенты.Ссылка ЕСТЬ NULL

Внутрішнє з’єднання

`ВНУТРЕННЕЕ СОЕДИНЕНИЕ` повертає тільки ті записи, які мають відповідність в обох таблицях.

Наприклад, отримати тільки реалізації з рядками товарів:

ВЫБРАТЬ
    Реализация.Ссылка,
    Товары.Номенклатура,
    Товары.Количество
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
        ПО Реализация.Ссылка = Товары.Ссылка

Умовний вираз ВЫБОР КОГДА

У запитах можна використовувати умовну логіку.

Приклад:

ВЫБРАТЬ
    Документ.Ссылка,
    Документ.СуммаДокумента,
    ВЫБОР
        КОГДА Документ.СуммаДокумента > 100000
            ТОГДА "Великий документ"
        ИНАЧЕ "Звичайний документ"
    КОНЕЦ КАК Категория
ИЗ
    Документ.РеализацияТоваровУслуг КАК Документ

Це корисно для звітів і попередньої класифікації даних.

Тимчасові таблиці

Тимчасові таблиці використовуються для складних запитів.

Спочатку дані можна помістити в тимчасову таблицю:

ВЫБРАТЬ
    Реализация.Контрагент КАК Контрагент,
    СУММА(Реализация.СуммаДокумента) КАК СуммаПродаж
ПОМЕСТИТЬ ПродажиПоКонтрагентам
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
    Реализация.Проведен
СГРУППИРОВАТЬ ПО
    Реализация.Контрагент;

Потім використати її далі:

ВЫБРАТЬ
    ПродажиПоКонтрагентам.Контрагент,
    ПродажиПоКонтрагентам.СуммаПродаж
ИЗ
    ПродажиПоКонтрагентам
ГДЕ
    ПродажиПоКонтрагентам.СуммаПродаж > 100000

Тимчасові таблиці допомагають:

  • розбити складну логіку;
  • покращити читабельність;
  • підготувати проміжні результати;
  • оптимізувати великі вибірки;
  • формувати міграційні набори даних.

Запити до регістрів накопичення

Регістри накопичення часто використовуються для залишків і оборотів.

Наприклад, залишки товарів можуть зберігатися в регістрі накопичення.

Приклад звернення до віртуальної таблиці залишків:

ВЫБРАТЬ
    Остатки.Номенклатура КАК Номенклатура,
    Остатки.Склад КАК Склад,
    Остатки.КоличествоОстаток КАК Количество
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков) КАК Остатки

Такий запит корисний для формування стартових залишків у K2 ERP.

Запити до оборотів

Обороти показують рухи за період.

Приклад:

ВЫБРАТЬ
    Обороты.Номенклатура,
    Обороты.Склад,
    Обороты.КоличествоПриход,
    Обороты.КоличествоРасход
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Обороты(&ДатаНачала, &ДатаКонца) КАК Обороты

Обороти потрібні для:

  • аналізу руху товарів;
  • перевірки складських операцій;
  • контролю міграції;
  • побудови звітів;
  • порівняння старої і нової системи.

Запити до регістрів бухгалтерії

Бухгалтерські дані часто отримуються з регістрів бухгалтерії.

Приклад вибірки проводок:

ВЫБРАТЬ
    ХозрасчетныйОбороты.СчетДт,
    ХозрасчетныйОбороты.СчетКт,
    ХозрасчетныйОбороты.СуммаОборот
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &ДатаКонца) КАК ХозрасчетныйОбороты

Такі запити використовуються для:

  • оборотно-сальдових звірок;
  • міграції бухгалтерських залишків;
  • перевірки собівартості;
  • аналізу каси;
  • перевірки валютних залишків;
  • звірки фінансових результатів.

Запит для пошуку непроведених документів

Приклад:

ВЫБРАТЬ
    Реализация.Ссылка КАК Документ,
    Реализация.Дата КАК Дата,
    Реализация.Номер КАК Номер,
    Реализация.Контрагент КАК Контрагент
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
    НЕ Реализация.Проведен
    И НЕ Реализация.ПометкаУдаления

Такий запит допомагає перед міграцією знайти документи, які є в базі, але не впливають на облік.

Запит для пошуку документів з поміткою видалення

ВЫБРАТЬ
    Документ.Ссылка,
    Документ.Дата,
    Документ.Номер
ИЗ
    Документ.РеализацияТоваровУслуг КАК Документ
ГДЕ
    Документ.ПометкаУдаления

Документи з поміткою видалення зазвичай не переносять без окремого рішення.

Запит для пошуку дублікатів контрагентів

Приклад пошуку дублів за ЄДРПОУ:

ВЫБРАТЬ
    Контрагенты.КодПоЕДРПОУ КАК ЕДРПОУ,
    КОЛИЧЕСТВО(Контрагенты.Ссылка) КАК Количество
ИЗ
    Справочник.Контрагенты КАК Контрагенты
ГДЕ
    Контрагенты.КодПоЕДРПОУ <> ""
    И НЕ Контрагенты.ПометкаУдаления
СГРУППИРОВАТЬ ПО
    Контрагенты.КодПоЕДРПОУ
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(Контрагенты.Ссылка) > 1

Такий запит допомагає очистити довідники перед перенесенням у K2 ERP.

Запит для пошуку дублікатів фізичних осіб

Приклад за ІПН:

ВЫБРАТЬ
    ФизическиеЛица.ИНН КАК ИНН,
    КОЛИЧЕСТВО(ФизическиеЛица.Ссылка) КАК Количество
ИЗ
    Справочник.ФизическиеЛица КАК ФизическиеЛица
ГДЕ
    ФизическиеЛица.ИНН <> ""
    И НЕ ФизическиеЛица.ПометкаУдаления
СГРУППИРОВАТЬ ПО
    ФизическиеЛица.ИНН
ИМЕЮЩИЕ
    КОЛИЧЕСТВО(ФизическиеЛица.Ссылка) > 1

Перед міграцією фізичних осіб такі перевірки особливо важливі через персональні дані.

Запит для актуальних цін номенклатури

Приклад залежить від конфігурації, але загальна ідея така:

ВЫБРАТЬ
    Цены.Номенклатура,
    Цены.ТипЦен,
    Цены.Цена,
    Цены.Валюта
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаЦен) КАК Цены

Такий запит може використовуватися для перенесення актуальних цін у K2 ERP.

Запит для курсів валют

ВЫБРАТЬ
    Курсы.Валюта,
    Курсы.Период КАК Дата,
    Курсы.Курс,
    Курсы.Кратность
ИЗ
    РегистрСведений.КурсыВалют КАК Курсы
ГДЕ
    Курсы.Период МЕЖДУ &ДатаНачала И &ДатаКонца

Перед міграцією важливо переносити не тільки курс, а й кратність.

Запит для залишків каси

Приклад логіки:

ВЫБРАТЬ
    Остатки.Касса,
    Остатки.Валюта,
    Остатки.СуммаОстаток
ИЗ
    РегистрНакопления.ДенежныеСредства.Остатки(&ДатаОстатков) КАК Остатки
ГДЕ
    Остатки.Касса <> ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка)

Назви регістрів можуть відрізнятися в різних конфігураціях.

Запит для табеля робочого часу

Приклад для отримання рядків табеля:

ВЫБРАТЬ
    Табель.Ссылка КАК Документ,
    Табель.ПериодРегистрации КАК Период,
    Работники.Сотрудник КАК Сотрудник,
    Работники.ВидВремени КАК ВидВремени,
    Работники.Часов КАК Часов
ИЗ
    Документ.ТабельУчетаРабочегоВремени.Работники КАК Работники
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТабельУчетаРабочегоВремени КАК Табель
        ПО Работники.Ссылка = Табель.Ссылка
ГДЕ
    Табель.ПериодРегистрации = &Период

У конкретній конфігурації назви табличних частин можуть відрізнятися.

Запит для собівартості залишків

Приклад логіки:

ВЫБРАТЬ
    Остатки.Номенклатура,
    Остатки.Склад,
    Остатки.КоличествоОстаток,
    Остатки.СтоимостьОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков) КАК Остатки
ГДЕ
    Остатки.КоличествоОстаток <> 0

Якщо собівартість ведеться в іншому регістрі, потрібен окремий запит або з’єднання кількох регістрів.

Запити і міграція з 1С

Запити є одним із головних інструментів під час міграції з у K2 ERP.

Через запити можна отримати:

  • довідники;
  • документи;
  • табличні частини;
  • залишки;
  • обороти;
  • проводки;
  • ціни;
  • курси валют;
  • серії;
  • характеристики;
  • касові залишки;
  • фізичних осіб;
  • табелі;
  • собівартість;
  • статуси документів;
  • помилки;
  • дублікати;
  • контрольні звіти.

Запити для інвентаризації даних

Перед міграцією потрібно зрозуміти, що є в базі.

Приклад контрольної таблиці:

Об’єкт Запит перевіряє Навіщо
Номенклатура Кількість активних товарів Оцінити обсяг каталогу
Контрагенти Дублі за ЄДРПОУ Очистити довідник
Документи Проведені й непроведені Визначити правила перенесення
Залишки Кількість і вартість Підготувати стартові залишки
Ціни Актуальні типи цін Перенести прайси
Каса Залишки по касах Підготувати фінансовий старт

Запити для очищення даних

Запити допомагають знайти:

  • дублікати;
  • порожні поля;
  • неактуальні записи;
  • помічені на видалення об’єкти;
  • непроведені документи;
  • документи без рядків;
  • товари без артикулів;
  • контрагентів без ЄДРПОУ;
  • фізичних осіб без ІПН;
  • ціни без валюти;
  • курси з нульовим значенням;
  • серії без терміну придатності;
  • залишки з мінусовою кількістю.

Запити для контрольних звірок

Після вивантаження даних потрібно звіряти результати.

Приклади контрольних звірок:

Дані Що звіряти
Номенклатура Кількість активних позицій
Контрагенти Кількість активних і архівних
Документи Кількість проведених за період
Залишки Кількість і сума
Собівартість Вартість залишків
Каса Залишки по касах
Валюта Курси й валютні залишки

Запити і експорт у файли

Результати запитів часто вивантажуються у файли:

Приклад CSV-структури для вивантаження номенклатури:

code;article;name;group;active
000001;USB-C-1M-BLK;Кабель USB Type-C 1 м чорний;Кабелі;true
000002;CHARGER-20W;Зарядний пристрій 20W;Зарядні пристрої;true

Запити і XML

Запити можуть бути джерелом даних для формування XML.

Наприклад:

<Номенклатура>
    <Товар>
        <Код>000001</Код>
        <Артикул>USB-C-1M-BLK</Артикул>
        <Назва>Кабель USB Type-C 1 м чорний</Назва>
    </Товар>
</Номенклатура>

Такий XML може використовуватися для обміну з K2 ERP, сайтом, WMS або іншою системою.

Запити і JSON

Для сучасних інтеграцій результат запиту може перетворюватися в JSON.

Приклад:

{
  "products": [
    {
      "code": "000001",
      "article": "USB-C-1M-BLK",
      "name": "Кабель USB Type-C 1 м чорний"
    }
  ]
}

JSON зручний для API, вебсервісів і інтеграцій.

Запити і продуктивність

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

Причини:

  • вибірка занадто великого обсягу даних;
  • немає фільтра по даті;
  • зайві з’єднання;
  • складні обчислення в умовах;
  • неправильне використання віртуальних таблиць;
  • відбір після з’єднання замість відбору до з’єднання;
  • вибірка зайвих полів;
  • не використовуються параметри;
  • запит виконується в циклі багато разів.

Як оптимізувати запити

Базові правила:

  • обмежувати період;
  • вибирати тільки потрібні поля;
  • не тягнути зайві табличні частини;
  • використовувати параметри;
  • робити попередні відбори;
  • використовувати тимчасові таблиці;
  • уникати запитів у циклі;
  • перевіряти план виконання, якщо можливо;
  • тестувати на копії бази;
  • окремо перевіряти великі регістри.

Важливо. Запит, який добре працює на тестовій базі з 1 000 документів, може зависати на робочій базі з мільйонами записів. Для міграції потрібно тестувати запити на реальному або близькому до реального обсязі даних.

Типові помилки запитів 1С

Найчастіші помилки:

  • неправильна назва об’єкта;
  • неправильна назва реквізиту;
  • звернення до неіснуючої табличної частини;
  • відсутній параметр;
  • помилка типу параметра;
  • неправильне з’єднання;
  • дублювання рядків через табличні частини;
  • неправильне групування;
  • не врахована помітка видалення;
  • не враховане проведення документа;
  • не врахований період;
  • не врахована організація;
  • не врахована валюта;
  • не врахована характеристика або серія;
  • запит повертає більше даних, ніж очікувалось.

Помилка: не враховано проведення

Поширена помилка — брати всі документи без перевірки проведення.

Погано:

ВЫБРАТЬ
    Реализация.Ссылка,
    Реализация.СуммаДокумента
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация

Краще:

ВЫБРАТЬ
    Реализация.Ссылка,
    Реализация.СуммаДокумента
ИЗ
    Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
    Реализация.Проведен
    И НЕ Реализация.ПометкаУдаления

Для міграції це критично, бо непроведені документи можуть бути чернетками.

Помилка: не враховано табличні частини

Якщо вибирати тільки заголовок документа, можна втратити рядки.

Наприклад, документ реалізації без табличної частини не дає повної картини:

  • які товари продано;
  • скільки;
  • за якою ціною;
  • з яким ПДВ;
  • з якою характеристикою;
  • з якою серією.

Для міграції документів потрібно вивантажувати і заголовки, і табличні частини.

Помилка: дублювання рядків

З’єднання з кількома табличними частинами може створити дублікати.

Наприклад, якщо документ має табличну частину “Товари” і “Послуги”, неправильне з’єднання може розмножити рядки.

Такі помилки особливо небезпечні при вивантаженні сум, бо підсумки можуть бути завищені.

Помилка: не враховано організацію

У багатофірмових базах обов’язково потрібно враховувати організацію.

Погано:

ГДЕ
    Документ.Дата МЕЖДУ &ДатаНачала И &ДатаКонца

Краще:

ГДЕ
    Документ.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
    И Документ.Организация = &Организация

Інакше дані різних юридичних осіб можуть змішатися.

Помилка: не враховано характеристики і серії

Для складського обліку важливо не втратити деталізацію.

Наприклад, залишок по товару може бути правильний загалом, але неправильний по серіях.

Тому в запитах на залишки потрібно враховувати:

  • номенклатуру;
  • характеристику;
  • серію;
  • склад;
  • партію;
  • організацію;
  • кількість;
  • вартість.

Запити і безпека

Запити можуть відкривати доступ до чутливих даних.

Наприклад:

  • персональні дані;
  • зарплата;
  • собівартість;
  • закупівельні ціни;
  • маржа;
  • банківські реквізити;
  • паспортні дані;
  • податкові дані.

Під час міграції потрібно контролювати:

  • хто запускає запити;
  • куди вивантажуються файли;
  • хто має доступ до результатів;
  • чи є персональні дані у файлах;
  • чи потрібно маскування;
  • чи видаляються тимчасові файли після перенесення.

Запити і права доступу

Не кожен користувач має виконувати довільні запити.

Ризики:

  • перегляд закритої інформації;
  • масове вивантаження даних;
  • випадкове розкриття персональних даних;
  • доступ до собівартості;
  • доступ до зарплати;
  • неконтрольований експорт.

У K2 ERP аналогічні інструменти запитів, звітів або API також мають бути обмежені правами доступу.

Запити і логіювання

Для міграційних запитів бажано вести лог:

  • хто запускав запит;
  • коли запускав;
  • який період;
  • які параметри;
  • скільки рядків отримано;
  • у який файл вивантажено;
  • чи були помилки;
  • яка контрольна сума;
  • хто завантажив дані в K2 ERP.

Це допомагає аудитувати міграцію.

Запити і K2 ERP

У K2 ERP результати запитів можуть використовуватися як джерело для:

  • імпорту довідників;
  • імпорту документів;
  • імпорту залишків;
  • імпорту цін;
  • імпорту курсів валют;
  • імпорту касових залишків;
  • імпорту фізичних осіб;
  • імпорту табеля;
  • імпорту собівартості;
  • контрольних звірок;
  • BI-аналітики;
  • архівування старої історії.

Приклад міграційного сценарію через запити

Типовий сценарій:

  1. Запит вибирає активну номенклатуру.
  2. Результат вивантажується в CSV.
  3. Дані очищаються від дублів.
  4. Артикули нормалізуються.
  5. Запит вибирає залишки на дату переходу.
  6. Запит вибирає ціни на дату переходу.
  7. Запит вибирає серії й характеристики.
  8. Дані завантажуються в K2 ERP.
  9. Контрольний запит звіряє кількість і суму.
  10. Результат фіксується в протоколі міграції.

Приклад контрольного протоколу

Дані Запит Рядків у 1С Рядків у K2 ERP Різниця
Номенклатура Активні товари 12 500 12 500 0
Контрагенти Активні контрагенти 4 200 4 180 20 архівних не перенесено
Залишки Залишки на 01.06.2026 8 700 8 700 0
Ціни Актуальні ціни 25 000 25 000 0

Як не треба робити

Погані підходи:

  • запускати запити без розуміння структури бази;
  • брати всі документи без фільтра проведення;
  • не враховувати помітку видалення;
  • не враховувати організацію;
  • не вивантажувати табличні частини;
  • не перевіряти дублікати;
  • не робити контрольні звірки;
  • вивантажувати персональні дані без обмежень;
  • запускати важкі запити на робочій базі в робочий час;
  • не документувати міграційні запити;
  • переносити результат запиту без перевірки бухгалтерією або власником процесу.

Найгірший сценарій. Компанія пише один великий запит, вивантажує “усе з 1С”, не перевіряє проведення, дублікати, табличні частини, залишки, собівартість і персональні дані, а потім завантажує цей хаос у K2 ERP.

Як правильно працювати із запитами перед міграцією

Правильний порядок:

  1. Визначити, які дані потрібні.
  2. Описати джерела даних у .
  3. Перевірити назви довідників, документів і регістрів.
  4. Написати окремі запити для кожного набору даних.
  5. Додати фільтри по даті, організації, проведенню і статусу.
  6. Перевірити табличні частини.
  7. Перевірити характеристики, серії, партії.
  8. Перевірити дублікати.
  9. Перевірити помічені на видалення записи.
  10. Тестувати запити на копії бази.
  11. Порівняти результат із типовими звітами .
  12. Вивантажити дані у контрольований формат.
  13. Завантажити тестово в K2 ERP.
  14. Звірити кількість, суми, залишки й контрольні показники.
  15. Зафіксувати запити і результати в протоколі міграції.

Запити і цифрова незалежність

Запити можуть бути корисним інструментом для виходу зі старої системи.

Вони дозволяють:

  • отримати свої дані;
  • проаналізувати якість даних;
  • знайти дублікати;
  • підготувати міграцію;
  • сформувати залишки;
  • вивантажити історію;
  • перевірити контрольні суми;
  • перейти на українську ERP;
  • зменшити залежність від і BAS.

Цифрова незалежність. Запити у проєкті переходу — це інструмент вилучення, очищення і перевірки даних перед перенесенням у сучасну українську ERP-платформу.

Коротко

Питання Відповідь
Що таке запити ? Це механізм отримання даних із довідників, документів, регістрів та інших об’єктів бази.
Чим мова запитів 1С схожа на SQL? Вона має вибірки, умови, групування, з’єднання і сортування, але працює через об’єктну модель 1С.
Для чого використовуються запити? Для звітів, обробок, інтеграцій, експорту, перевірок даних і міграції.
Що важливо враховувати в міграційних запитах? Проведення, помітку видалення, період, організацію, табличні частини, регістри, характеристики, серії та контрольні звірки.
Яка головна помилка? Вивантажувати дані без перевірки якості, зв’язків, дублів і відповідності типовим звітам.
Чи можна через запити підготувати дані для K2 ERP? Так. Запити часто використовуються для вивантаження довідників, документів, залишків, цін, курсів, каси, табеля і собівартості.
Чи є санкційні ризики у і BAS? Так. Окремі продукти і BAS внесені до переліків забороненого програмного забезпечення для окремих категорій організацій в Україні.

Висновок

Запити — це один із найважливіших технічних інструментів роботи з даними старої системи. Вони дозволяють отримувати довідники, документи, табличні частини, залишки, обороти, проводки, ціни, курси валют, касові операції, фізичних осіб, табелі, собівартість і контрольні показники.

Під час переходу на K2 ERP запити потрібно використовувати уважно.

Потрібно:

  • знати структуру конфігурації;
  • не брати зайві дані;
  • враховувати проведення;
  • враховувати помітку видалення;
  • враховувати організації;
  • вивантажувати табличні частини;
  • перевіряти регістри;
  • контролювати дублікати;
  • захищати персональні й комерційні дані;
  • робити контрольні звірки;
  • документувати міграційні запити.

Правильний підхід. Запити потрібно розглядати не як випадкові технічні вибірки, а як контрольований інструмент аналізу, очищення, експорту і звірки даних перед переходом у K2 ERP.

З урахуванням санкційних, юридичних і кібербезпекових ризиків та BAS, використання запитів у старій системі має бути частиною ширшої стратегії контрольованого виходу з , переходу на українське програмне забезпечення, цифрову незалежність і сучасну ERP-архітектуру.

K2 ERP у цьому процесі може стати новою платформою для контрольованого обліку, якісних довідників, документів, інтеграцій, API, BI-аналітики, прав доступу, логіювання і подальшого розвитку автоматизації бізнесу.

Див. також

Зовнішні посилання