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

Запити 1С

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

як ілюстрація:

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
Остатки.Касса <> ЗНАЧЕНИЕ(Справочник.Кассы.ПустаяСсылка)

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

КОГДА Документ.СуммаДокумента > 100000
Документ.Дата,

як ілюстрація, залишок по товару має змогу бути правильний загалом, але неправильний по серіях.; Остатки.КоличествоОстаток КАК Количество

ВЫБРАТЬ

Приклад:

Номенклатура.Родитель КАК Группа

Сортування

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

УПОРЯДОЧИТЬ ПО И Документ.Организация = &Организация Типові умови: Приклад звернення до віртуальної таблиці залишків: Цены.Номенклатура, РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков) КАК Остатки ВЫБРАТЬ
Реализация.Номер
У конкретній конфігурації назви табличних частин можуть відрізнятися.; # Завантажити тестово в [[K2 ERP]].; Документ.РеализацияТоваровУслуг КАК Реализация
ВЫБРАТЬ
ИЗ
<syntaxhighlight lang="sql">
 Документ.РеализацияТоваровУслуг КАК Реализация
[[Категорія:Міграція з 1С]]
<syntaxhighlight lang="xml">
== Запит для актуальних цін номенклатури ==

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

== Як правильно працювати із запитами перед міграцією ==
 Контрагенты.Наименование КАК Наименование
Під час міграції потрібно контролювати:
ГДЕ
ГДЕ
!; Це сприяє аудитувати міграцію.; | Так.; Різниця
!; Остатки.КоличествоОстаток,
000002;CHARGER-20W;Зарядний пристрій 20W;Зарядні пристрої;true
ГДЕ
== Запити і продуктивність ==
 ПО Реализация.Контрагент = Контрагенты.Ссылка
Параметри дозволяють передавати значення в запит із коду.; SQL
 Реализация.Ссылка КАК Документ,
ВЫБРАТЬ
 ФизическиеЛица.ИНН <> ""
<syntaxhighlight lang="sql">
<syntaxhighlight lang="sql">
 Контрагенты.Ссылка КАК НайденныйКонтрагент
 ВЫБОР
 Реализация.Контрагент;
 Документ.Номер,
ВЫБРАТЬ
{| class="wikitable" style="width:100%;"
[[Категорія:JSON]]
'''Простими словами.''' Запит [[1С]]  це спосіб сказати системі: “дай мені ось ці інформаційні дані, з такими умовами, у такому вигляді”.; # інформаційні дані завантажуються в [[K2 ERP]].;

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

Товары.Номенклатура КАК Номенклатура,
* отримати свої інформаційні дані;
* проаналізувати якість даних;
* знайти дублікати;
* підготувати міграцію;
* сформувати залишки;
* вивантажити історію;
* перевірити контрольні суми;
* перейти на українську [[ERP]];
* зменшити залежність від [[1С]] і [[BAS]].;[[Категорія:K2 ERP]]
 ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
Запити використовуються в багатьох місцях:
 РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &ДатаКонца) КАК ХозрасчетныйОбороты
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
ГДЕ
 Реализация.Номер КАК Номер,
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">

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

ИЗ
 Реализация.Ссылка,
ИЗ
|-
| ТОВ “замовник”
| 120 000 грн
|-
| ТОВ “Ромашка”
| 80 000 грн
|}

 ПО Товары.Ссылка = Реализация.Ссылка

Поширена помилка  брати всі документи без перевірки проведення.; Мова запитів [[1С]] схожа на [[SQL]], але має свої особливості.; ИЗ
 Обороты.КоличествоПриход,
'''Головне.''' Запит [[1С]]  це інструмент для отримання потрібних даних із бази: вибрати товари, знайти непроведені документи, отримати залишки, згрупувати продажі та реалізація, перевірити дублікати, підготувати інформаційні дані для міграції або сформувати звіт.; Документ.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
Реализация.Контрагент КАК Контрагент,
  • персональні інформаційні дані;
  • зарплата;
  • собівартість;
  • закупівельні ціни;
  • маржа;
  • банківські реквізити;
  • паспортні інформаційні дані;
  • податкові інформаційні дані.; Реализация.Дата МЕЖДУ &ДатаНачала И &ДатаКонца

ВЫБРАТЬ

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

Вступ

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

Ризики:

  • імпорту довідників;
  • імпорту документів;
  • імпорту залишків;
  • імпорту цін;
  • імпорту курсів валют;
  • імпорту касових залишків;
  • імпорту фізичних осіб;
  • імпорту табеля;
  • імпорту собівартості;
  • контрольних звірок;
  • BI-аналітики;
  • архівування старої історії.; Окремі продукти і BAS внесені до відкритих переліків програмного забезпечення, забороненого до використання для окремих категорій організацій.; Приклад пошуку дублів за ЄДРПОУ:

Запити не є собою звичайним SQL у чистому вигляді.; | Це механізм отримання даних із довідників, документів, регістрів та інших об’єктів бази.; |-

Чи можна через запити підготувати інформаційні дані для K2 ERP?; # Описати джерела даних у .; # Контрольний запит звіряє кількість і суму.; ГДЕ

</syntaxhighlight>

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

</syntaxhighlight>

Документ.РеализацияТоваровУслуг КАК Реализация
Документ.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
; Найчастіші помилки:
Условие

ВЫБРАТЬ

НЕ Номенклатура.ПометкаУдаления
Документ.РеализацияТоваровУслуг КАК Реализация

СГРУППИРОВАТЬ ПО як ілюстрація, документ реалізації без табличної частини не дає повної картини:

Документ.Проведен

ВЫБРАТЬ

Справочник.ФизическиеЛица КАК ФизическиеЛица
ХозрасчетныйОбороты.СчетДт,
Конструкція `ГДЕ` застосовують, коли потрібно для фільтрації.; Для міграції потрібно тестувати запити на реальному або близькому до реального обсязі даних.;[[Категорія:Автоматизація бізнесу]]

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

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

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

Цены.Валюта

<Номенклатура>

}

Якщо вибирати тільки заголовок документа, можна втратити рядки.; Обороты.Номенклатура, Погані підходи:

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

Що істотно враховувати в міграційних запитах?; Табель.Ссылка КАК Документ,

ГДЕ </syntaxhighlight>

КОНЕЦ КАК Категория

ГДЕ

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

ИЗ

ИЗ

  • періодів;
  • організацій;
  • складів;
  • контрагентів;
  • типів цін;
  • валют;
  • статусів;
  • міграційних фільтрів.;== Тимчасові таблиці ==
Документ.РеализацияТоваровУслуг КАК Документ
КОЛИЧЕСТВО(ФизическиеЛица.Ссылка) КАК Количество

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

; # Артикули нормалізуються.; Реализация.Контрагент КАК Контрагент,

</syntaxhighlight>

; Функція

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

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

ГДЕ Потрібно: </syntaxhighlight> ВЫБРАТЬ

СУММА(Реализация.СуммаДокумента) КАК СуммаПродаж

Запит і SQL

Работники.Сотрудник КАК Сотрудник,

{{SEO

Документ.Ссылка,

ВЫБРАТЬ

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

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

</syntaxhighlight>

Реализация.Дата КАК Дата,

Приклад:

Товары.Количество

ИЗ

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

Багато документів мають табличні частини.;<Артикул>USB-C-1M-BLK</Артикул> Приклад логіки:

Реализация.Проведен

</syntaxhighlight> ГДЕ Такий запит має змогу використовуватися для експорту товарів у K2 ERP.; Контрагент ИЗ

Реализация.СуммаДокумента
Остатки.СуммаОстаток

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

</syntaxhighlight>

И НЕ Реализация.ПометкаУдаления

Запити можуть бути джерелом даних для формування XML.; Приклад CSV-структури для вивантаження номенклатури:

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

Такий запит сприяє очистити довідники перед перенесенням у K2 ERP.; Реализация.Дата,

]

У запитах можна використовувати агрегатні функції.; # Перевірити табличні частини.; | Вона має вибірки, умови, групування, з’єднання і сортування, але функціонує через об’єктну модель 1С.; Рядків у 1С

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

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

Див.; додатково

ПО Реализация.Контрагент = Контрагенты.Ссылка

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

<syntaxhighlight lang="sql">

 И НЕ Контрагенты.ПометкаУдаления

Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);

  • вибірка занадто великого обсягу даних;
  • немає фільтра по даті;
  • зайві з’єднання;
  • складні обчислення в умовах;
  • неправильне використання віртуальних таблиць;
  • відбір після з’єднання замість відбору до з’єднання;
  • вибірка зайвих полів;
  • не використовуються параметри;
  • запит виконується в циклі багато разів.;</syntaxhighlight>
<Код>000001</Код>
  • знати структуру конфігурації;
  • не брати зайві інформаційні дані;
  • враховувати проведення;
  • враховувати помітку видалення;
  • враховувати організації;
  • вивантажувати табличні частини;
  • перевіряти регістри;
  • контролювати дублікати;
  • захищати персональні й комерційні інформаційні дані;
  • робити контрольні звірки;
  • документувати міграційні запити.; Сортування корисне для звітів, вивантажень і перевірок.; | Для звітів, обробок, інтеграцій, експорту, перевірок даних і міграції.; |}
{
У запитах можна використовувати умовну логіку.;
 "products": [
Краще:

 Документ.ТабельУчетаРабочегоВремени.Работники КАК Работники

[[Категорія:Довідники 1С]]

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

ВЫБРАТЬ

<syntaxhighlight lang="sql">
Документ.РеализацияТоваровУслуг КАК Документ
Поле2,
- функціонує напряму з таблицями БД Так Не завжди, часто через метадані 1С
Знає об’єкти конфігурації Ні Так
має змогу звертатися до довідників і документів Через фізичні таблиці Через об’єктну модель 1С
Має специфічні віртуальні таблиці Залежить від СУБД Так, як ілюстрація залишки й обороти регістрів
застосовується в звітах і обробках Так Так

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

ИЗ

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

| Чим мова запитів 1С схожа на SQL?; ВЫБРАТЬ

 Реализация.Дата КАК Дата,
== Запит для залишків каси ==
|-
| Номенклатура
| Кількість активних позицій
|-
| Контрагенти
| Кількість активних і архівних
|-
| Документи
| Кількість проведених за період
|-
| Залишки
| Кількість і сума
|-
| Собівартість
| Вартість залишків
|-
| Каса
| Залишки по касах
|-
| Валюта
| Курси й валютні залишки
|}

[[Категорія:Заміна BAS]]

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

<syntaxhighlight lang="sql">

[[Категорія:Деколонізація обліку]]

 Контрагенты.Ссылка КАК Контрагент,

 НЕ Контрагенты.ПометкаУдаления

ИМЕЮЩИЕ

 Работники.Часов КАК Часов

 Остатки.Валюта,

ИЗ
ГДЕ
[[Категорія:Мова запитів 1С]]
ВЫБРАТЬ

 РегистрСведений.КурсыВалют КАК Курсы

 И НЕ Реализация.ПометкаУдаления
== Помилка: не враховано табличні частини ==
 Обороты.складський облік,
Бухгалтерські інформаційні дані часто отримуються з регістрів бухгалтерії.; # інформаційні дані очищаються від дублів.; # Тестувати запити на копії бази.; Вони дозволяють отримувати довідники, документи, табличні частини, залишки, обороти, проводки, ціни, курси валют, касові операції, фізичних осіб, табелі, собівартість і контрольні показники.; ИЗ

'''[[K2 ERP]]''' у цьому процесі має змогу стати новою платформою для контрольованого обліку, якісних довідників, документів, інтеграцій, [[API]], [[BI]]-аналітики, прав доступу, логіювання і подальшого розвитку автоматизації бізнесу.; Реализация.Контрагент,
 Документ.РеализацияТоваровУслуг КАК Реализация
 Реализация.СуммаДокумента КАК Сумма
 Реализация.Проведен
 ИНАЧЕ "Звичайний документ"
|-
| Номенклатура
| Активні товари
| 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]].; # Додати фільтри по даті, організації, проведенню і статусу.; Під час переходу на [[K2 ERP]] запити потрібно використовувати уважно.; це механізм платформи [[1С]].; Запит має змогу:

 Документ.РеализацияТоваровУслуг КАК Реализация

* ВЫБРАТЬ;
* ИЗ;
* ГДЕ;
* СГРУППИРОВАТЬ ПО;
* УПОРЯДОЧИТЬ ПО;
* ЛЕВОЕ СОЕДИНЕНИЕ;
* ВНУТРЕННЕЕ СОЕДИНЕНИЕ;
* ИТОГИ;
* ПОМЕСТИТЬ;
* ОБЪЕДИНИТЬ;
* ВЫБОР КОГДА;
* ЕСТЬ NULL;
* МЕЖДУ;
* В ИЕРАРХИИ.;== Вибірка з документа ==
[[Категорія:SQL]]
 ПродажиПоКонтрагентам

Хоча синтаксис часто російськомовний, результат запиту має змогу використовуватися в українській локалізації, звітах, обробках або міграційних файлах.; # Вивантажити інформаційні дані у контрольований формат.; Запити можуть бути корисним інструментом для виходу зі старої системи.;</syntaxhighlight> ВЫБРАТЬ

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

Документ.Номер
Документ.Контрагент

</syntaxhighlight>

ВЫБРАТЬ
Для сортування застосовується `УПОРЯДОЧИТЬ ПО`.; Що робить

Не кожен користувач системи має виконувати довільні запити.; Окремі продукти і BAS внесені до переліків забороненого програмного забезпечення для окремих категорій організацій в Україні.; Для міграції це критично, бо непроведені документи можуть бути чернетками.; # Перевірити помічені на видалення записи.; Поле1,

ВЫБРАТЬ

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

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

000001;USB-C-1M-BLK;Кабель USB Type-C 1 м чорний;Кабелі;true

  • номенклатуру;
  • характеристику;
  • серію;
  • складський облік;
  • партію;
  • організацію;
  • кількість;
  • вартість.; істотно про 1С і BAS. та частина продуктів BAS мають санкційні, юридичні й кібербезпекові ризики в Україні.; # Написати окремі запити для кожного набору даних.;
    == Запити до оборотів ==
    
  • хто запускав запит;
  • коли запускав;
  • який період;
  • які параметри;
  • скільки рядків отримано;
  • у який файл вивантажено;
  • чи були помилки;
  • яка контрольна сума;
  • хто завантажив інформаційні дані в K2 ERP.; СУММА(Реализация.СуммаДокумента) КАК СуммаПродаж

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

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

Документ.Ссылка,

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

ИЗ

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

 Контрагенты.Ссылка ЕСТЬ NULL

!; {| class="wikitable" style="width:100%;"
 Поле3
Приклади контрольних звірок:

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

ИЗ

КОЛИЧЕСТВО(Контрагенты.Ссылка) КАК Количество

!; ИЗ

  1. Запит вибирає активну номенклатуру.; # Порівняти результат із типовими звітами .; Контрагенты.Код КАК Код,
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализация
Номенклатура.Наименование КАК Наименование

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

Краще:

Реализация.Ссылка,

ИЗ

Остатки.Касса,

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

Товары.Сумма КАК Сумма
Контрагенты.КодПоЕДРПОУ КАК ЕДРПОУ,
Контрагенты.КодПоЕДРПОУ <> ""

ИМЕЮЩИЕ

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

РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаЦен) КАК Цены

ГДЕ

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

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

як ілюстрація, якщо документ має табличну частину “Товари” і “Послуги”, неправильне з’єднання має змогу розмножити рядки.; # Запит вибирає серії й характеристики.; Сума продажів

 Остатки.Номенклатура КАК Номенклатура,
 И Реализация.Проведен
ВЫБРАТЬ
{{DISPLAYTITLE:Запити 1С}}
== Запити і XML ==
 Работники.ВидВремени КАК ВидВремени,
 Реализация.СуммаДокумента

ВЫБРАТЬ

 Остатки.КоличествоОстаток <> 0

Для міграції документів потрібно вивантажувати і заголовки, і табличні частини.; # Перевірити дублікати.; | Проведення, помітку видалення, період, організацію, табличні частини, регістри, характеристики, серії та контрольні звірки.; Приклад:
ИЗ
__TOC__
 Товары.Цена КАК Цена,
Такий запит корисний для формування стартових залишків у [[K2 ERP]].; ВЫБРАТЬ
!; Остатки.Номенклатура,
[[Категорія:Обробки 1С]]
 Реализация.Контрагент КАК Контрагент,

 РегистрНакопления.ДенежныеСредства.Остатки(&ДатаОстатков) КАК Остатки

 "name": "Кабель USB Type-C 1 м чорний"
 ПО Работники.Ссылка = Табель.Ссылка
 Реализация.Дата КАК Дата,
|-
| Що таке запити [[1С]]?; Реализация.Контрагент

<syntaxhighlight lang="sql">

<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">

 "article": "USB-C-1M-BLK",

 Реализация.Ссылка,
 Документ.РеализацияТоваровУслуг КАК Реализация
<syntaxhighlight lang="sql">
 Документ.Дата,
JSON зручний для [[API]], вебсервісів і інтеграцій.; Базові правила:

ВЫБРАТЬ

<syntaxhighlight lang="sql">

== Вибірка з довідника ==
Базова структура запиту:
Такий запит потрібен, якщо треба вивантажити не тільки заголовки документів, а й рядки товарів.; ИЗ

!; У [[K2 ERP]] результати запитів [[1С]] можуть використовуватися як джерело для:
<syntaxhighlight lang="sql">
== Ліве з’єднання ==
<syntaxhighlight lang="sql">

ГДЕ

</syntaxhighlight>

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

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

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

!; Запити часто використовуються для вивантаження довідників, документів, залишків, цін, курсів, каси, табеля і собівартості.; Номенклатура.Код КАК Код,

'''істотно.''' Запит, який добре функціонує на тестовій базі з 1 000 документів, має змогу зависати на робочій базі з мільйонами записів.; # Запит вибирає залишки на дату переходу.;== Запити для очищення даних ==

* вибрати поля;
* відфільтрувати записи;
* з’єднати кілька таблиць;
* згрупувати інформаційні дані;
* порахувати підсумки;
* відсортувати результат;
* використати параметри;
* створити тимчасову таблицю;
* отримати залишки або обороти регістрів;
* підготувати інформаційні дані для звіту або обробки.; Цены.Цена,
== Помилка: не враховано організацію ==
Тут використовуються параметри `&ДатаНачала` і `&ДатаКонца`.; Перед міграцією потрібно зрозуміти, що є собою в базі.; Документ.Номер

 Реализация.Контрагент КАК Контрагент,

 Курсы.Валюта,
== Зовнішні посилання ==
== Запити і експорт у файли ==
 "code": "000001",
 Документ.Дата,
 <Назва>Кабель USB Type-C 1 м чорний</Назва>
 Реализация.Номер КАК Номер,
Приклад контрольної таблиці:
ИЗ
 Справочник.Номенклатура КАК Номенклатура

 ФизическиеЛица.ИНН КАК ИНН,

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

# Визначити, які інформаційні дані потрібні.; ВЫБРАТЬ

як ілюстрація, потрібно отримати документи реалізації і інформаційні дані контрагента.; Рядків у K2 ERP
 КОЛИЧЕСТВО(Контрагенты.Ссылка) > 1
 ПО Реализация.Ссылка = Товары.Ссылка
== Запит для пошуку дублікатів фізичних осіб ==

 Документ.ПометкаУдаления

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

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

Документ.РеализацияТоваровУслуг КАК Реализация
Остатки.СтоимостьОстаток
И Документ.Дата >= &ДатаНачала

ГДЕ

Обороты.КоличествоРасход

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

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

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

</syntaxhighlight>

 Реализация.Проведен

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

Остатки.складський облік,

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

  • дублікати;
  • порожні поля;
  • неактуальні записи;
  • помічені на видалення об’єкти;
  • непроведені документи;
  • документи без рядків;
  • товари без артикулів;
  • контрагентів без ЄДРПОУ;
  • фізичних осіб без ІПН;
  • ціни без валюти;
  • курси з нульовим значенням;
  • серії без терміну придатності;
  • залишки з мінусовою кількістю.;
     Документ.РеализацияТоваровУслуг КАК Реализация
    Приклад логіки:
    ИЗ
    == Де використовуються запити 1С ==
     Курсы.Период МЕЖДУ &ДатаНачала И &ДатаКонца
    <div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
    ВЫБРАТЬ
    
    <syntaxhighlight lang="sql">
    
    ИЗ
    
    ГДЕ
    
     Табель.ПериодРегистрации КАК Период,
    

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

 Документ.РеализацияТоваровУслуг КАК Реализация
 И Реализация.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
СГРУППИРОВАТЬ ПО
Перед міграцією фізичних осіб такі перевірки особливо важливі через персональні інформаційні дані.; Номенклатура.Ссылка КАК Номенклатура,
Тимчасові таблиці використовуються для складних запитів.; code;article;name;group;active

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

ГДЕ

Реализация.Ссылка КАК Документ,

Погано:

  • дата документа;
  • проведення;
  • помітка видалення;
  • організація;
  • складський облік;
  • контрагент;
  • валюта;
  • статус;
  • сума;
  • тип документа.; Запит 1С
Контрагенты.Наименование КАК НазваниеКонтрагента

ГДЕ

Запити і K2 ERP

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

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

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

* перегляд закритої інформації;
* масове вивантаження даних;
* випадкове розкриття персональних даних;
* доступ до собівартості;
* доступ до зарплати;
* неконтрольований експорт.; ХозрасчетныйОбороты.СуммаОборот
СГРУППИРОВАТЬ ПО
Результат = Запрос.Выполнить();

З’єднання з кількома табличними частинами має змогу створити дублікати.; # Перевірити назви довідників, документів і регістрів.; # Запит вибирає ціни на дату переходу.; ПОМЕСТИТЬ ПродажиПоКонтрагентам
Перед міграцією істотно переносити не тільки курс, а й кратність.; |-
| Чи є собою санкційні ризики у [[1С]] і [[BAS]]?;</div>
 Реализация.Дата КАК Дата,
ВЫБРАТЬ
Після вивантаження даних потрібно звіряти результати.; ИЗ
Це корисно для пошуку проблем.; # Зафіксувати запити і результати в протоколі міграції.; Навіщо
ИЗ
</Номенклатура>

Такий XML має змогу використовуватися для обміну з [[K2 ERP]], сайтом, WMS або іншою системою.;== Запити і безпека ==
== Запит для курсів валют ==
<div style="border:3px solid #b71c1c; background:#ffebee; padding:14px; margin:16px 0;">
Найпоширеніші:
Вони працюють через платформу [[1С]], яка перетворює запит у запити до бази даних.; | Так.; ИЗ

ИЗ

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

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

* довідниках;
* документах;
* регістрах;
* планах рахунків;
* планах видів характеристик;
* табличних частинах;
* константах;
* переліченнях;
* бухгалтерських регістрах;
* регістрах накопичення;
* регістрах відомостей.; Номенклатура.Наименование КАК Наименование,
У [[K2 ERP]] аналогічні інструменти запитів, звітів або API додатково мають бути обмежені правами доступу.; інформаційні дані
ВЫБРАТЬ
 Номенклатура.Артикул КАК Артикул,
!; Документ.РеализацияТоваровУслуг.Товары КАК Товары

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

ИЗ

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

Приклад:

Номенклатура.Ссылка КАК Ссылка,
Номенклатура.Артикул КАК Артикул,
Контрагенты.КодПоЕДРПОУ
Курсы.Кратность
КОЛИЧЕСТВО(ФизическиеЛица.Ссылка) > 1

Запити і JSON

з цієї причини в запитах на залишки потрібно враховувати: ИЗ

Реализация.Номер КАК Номер,
Табель.ПериодРегистрации = &Период

Щоб отримати ці інформаційні дані у потрібному вигляді, використовуються запити.;</Товар> !; Запит перевіряє

Цены.ТипЦен,

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

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

Документ.РеализацияТоваровУслуг КАК Документ
ГДЕ
 ФизическиеЛица.ИНН
 <Товар>
ВЫБРАТЬ
[[Категорія:Документи 1С]]
[[Категорія:Українське програмне забезпечення]]
ГДЕ

 И НЕ Документ.ПометкаУдаления

 Реализация.Номер КАК Номер,

Запит має змогу відповісти на практичні питання:

 И НЕ ФизическиеЛица.ПометкаУдаления
 Товары.Количество КАК Количество,
 Реализация.Ссылка,
Погано написаний запит має змогу працювати дуже повільно.; з цієї причини використання запитів [[1С]] у проєктах міграції варто розглядати як інструмент виходу зі старої системи, а не як еволюція залежності від неї.; Параметри корисні для:

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

</syntaxhighlight>

Умова ГДЕ

Приклад вибірки реалізацій:
Спочатку інформаційні дані можна помістити в тимчасову таблицю:
{| class="wikitable" style="width:100%;"
[[Категорія:Інтеграція з 1С]]
[[Категорія:Обмін даними]]
 Реализация.Дата >= &ДатаНачала
Групування застосовується для підсумків.; Справочник.Номенклатура КАК Номенклатура
Приклад:
СГРУППИРОВАТЬ ПО

 РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков) КАК Остатки

 ХозрасчетныйОбороты.СчетКт,

Окремо варто відзначити який застосовується; додатково реалізовано відбору, об’єднання, групування, сортування й аналізу даних із довідників, документів, регістрів, планів рахунків, табличних частин і інших об’єктів інформаційної бази виступає ключовою рисою отримання забезпечується через '''Запити 1С'''.; Реализация.Проведен
 ПродажиПоКонтрагентам.Контрагент,
 Остатки.складський облік КАК складський облік,
</div>
У ній використовуються конструкції:
!; Це корисно для звітів і попередньої класифікації даних.;[[Категорія:CSV]]

* оборотно-сальдових звірок;
* міграції бухгалтерських залишків;
* перевірки собівартості;
* аналізу каси;
* перевірки валютних залишків;
* звірки фінансових результатів.;<div style="border:3px solid #2e7d32; background:#e8f5e9; padding:14px; margin:16px 0;">
[[Категорія:Експорт даних]]

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

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

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

Погано:

ВЫБРАТЬ
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
== Агрегатні функції ==
Через запити можна отримати:
</div>
</div>
 Курсы.Период КАК Дата,
Приклад:
[[Категорія:Регістри 1С]]
ВЫБРАТЬ
як ілюстрація, отримати тільки реалізації з рядками товарів:
== Висновок ==
== Як не треба робити ==

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

{| class="wikitable" style="width:100%;"
<syntaxhighlight lang="sql">
Типовий сценарій:
{| class="wikitable" style="width:100%;"
 Документ.СуммаДокумента,
[[Категорія:BI]]
 ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТабельУчетаРабочегоВремени КАК Табель
Причини:
<syntaxhighlight lang="sql">

!; Таблица КАК Псевдоним

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

* [[CSV]];
* [[XML]];
* [[JSON]];
* [[Microsoft Excel|Excel]];
* TXT;
* DBF;
* ZIP-архіви.; ГДЕ
 ТОГДА "Великий документ"
ИЗ
[[Категорія:XML]]
ВЫБРАТЬ
ИЗ
 Курсы.Курс,
 Справочник.Контрагенты КАК Контрагенты
ПродажиПоКонтрагентам.СуммаПродаж
Регістри накопичення часто використовуються для залишків і оборотів.; Результат: Для сучасних інтеграцій результат запиту має змогу перетворюватися в JSON.; # Звірити кількість, суми, залишки й контрольні показники.; # Перевірити характеристики, серії, партії.; У багатофірмових базах обов’язково потрібно враховувати організацію.; |-
Вивантажувати інформаційні дані без перевірки якості, зв’язків, дублів і відповідності типовим звітам.; |- Яка головна помилка?; # Результат фіксується в протоколі міграції.;

ИЗ

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

НЕ Реализация.Проведен

ВЫБРАТЬ

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

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

Контрагенты.Код КАК КодКонтрагента,

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

; Справочник.Контрагенты КАК Контрагенты Цифрова незалежність. Запити у проєкті переходу — це інструмент вилучення, очищення і перевірки даних перед перенесенням у сучасну українську ERP-платформу.;
 И Реализация.Дата <= &ДатаКонца
Реализация.Контрагент КАК Контрагент

</syntaxhighlight>

ГДЕ