Перейти к содержанию

Произвольные выборки

Произвольные выборки из 1С.#

Для настройки нужно выбрать в меню группу Администрирование -> Система -> Настройка параметров обмена с 1С.

Рисунок 1 Настройка параметров обмена с 1С

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

Рисунок 1 Закладка Произв выборки

Например, создаем таблицы odata."ManagementStructure", odata."ManagementStructureDetail" для хранения справочника / руководителей Управленческой структуры 1С. Для загрузки данных в них, пишем название сущности,

Catalog_нп_СтруктурныеЕдиницыКомпании

Указываем поля для выборки:

$select=Ref_Key,Parent_Key,Code,Description,Сформировано,ДатаСоздания,Расформировано,ДатаРасформирования,Руководитель_Key, Сотрудники/ФизическоеЛицо_Key,Сотрудники/LineNumber

А также саму функцию, которая заберет данные из указанной сущности:

функцию select odata."LoadManagementStructure"("_body_") as "resultText"

Порядок загрузки#

В столбце "Порядок загрузки" указывается порядок выполнения операции выгрузки произвольных выборок.

Переменные для типа "Дата"#

Для указания параметров загрузки документов и вложений с типом «Дата» введены следующие переменные:

{{LastDay}} – переменная для определения количества дней, за которое нужно выбрать данные для загрузки. Значение задается в настройках учетной политики в константе "ЗаСколькоПоследнихДнейЗагружатьДокументыИз1С". Например, ?$filter=Date gt datetime'{{LastDay}}' со значением константы 10 – за последние 10 дней будут загружаться данные

{{FirstDayMonth}} – переменная для определения даты, до которой нужно загружать документы прошлого месяца. Значение задается в настройках учетной политики в константе "ДоКакогоЧислаЗагружатьДокументыИз1С_ЗаПрошлыйМесяц". Например, ?$filter=Date gt datetime'{{ FirstDayMonth }}' со значением константы 15 – до 15.12.22 будут загружаться данные с 01.12.22

{{YesterDay}} – переменная, обозначающая предыдущий день от текущего. Например, ?$filter=ДатаСоздания ge datetime'{{YesterDay}}' – если сегодня 15.12.22, то документы для загрузки будут выбраны за 14.12.22

Внесение данных в документ "Исключения для рассылок"#

Для загрузки данных в документ «Исключения для рассылок» сотрудников, например, находящихся в декретном отпуске необходимо настроить произвольные выборки в следующей очередности выполнения:

Больничные

  1. Выгрузка Больничных по беременности и родам

Выбирается сущность в 1С Document_БольничныйЛист

В параметр для запроса сущности в 1С указывается: ?$filter=ДатаНачала le datetime'{{ToDay}}' and ДатаОкончания ge datetime'{{ToDay}}' and ПричинаНетрудоспособности eq 'ПоБеременностиИРодам' and DeletionMark eq false and ДокументРассчитан eq true&$format=json&$select=Ref_Key,Сотрудник_Key,ДатаНачала,ДатаОкончания

где:

?$filter - Фильтр отбирает записи, в которых Дата начала меньше, чем Сегодняшний день, а Дата окончания больше.

Причина нетрудоспособности = 'ПоБеременностиИРодам', документ не помечен на удаление, рассчитан

&$select - Поля мы выбираем только Ref_Key,Сотрудник_Key,ДатаНачала,ДатаОкончания для уменьшения времени обращения к данным.

  1. Выгрузка Отпусков по уходу

Выбирается сущность сущность в 1С Document_ОтпускПоУходуЗаРебенком

В параметр для запроса сущности в 1С указывается: ?$filter=DeletionMark eq false&$select=Ref_Key,Сотрудник_Key,ОсновнойСотрудник_Key,ДатаНачала,ДатаОкончания,Начисления/Ref_Key,Начисления/РабочееМесто_Key

где:

?$filter Фильтр отбирает все документы не помеченные на удаление

&$select Поля мы выбираем только Ref_Key,Сотрудник_Key,ОсновнойСотрудник_Key,ДатаНачала,ДатаОкончания,Начисления/Ref_Key,Начисления/РабочееМесто_Key для уменьшения времени обращения к данным

Начисления/РабочееМесто_Key – здесь также хранится код сотрудника, в случае если в шапке документа указан основной сотрудник, а в табличной части - совместитель

  1. Выгрузка возврат из отпуска по уходу

Выбирается сущность сущность в 1С Document_ВозвратИзОтпускаПоУходуЗаРебенком

В параметр для запроса сущности в 1С указывается: ?$select=Ref_Key,ДатаВозврата,Сотрудник_Key,ОсновнойСотрудник_Key,Начисления/Ref_Key,Начисления/РабочееМесто_Key

где:

&$select Поля мы выбираем только Ref_Key,ДатаВозврата,Сотрудник_Key,ОсновнойСотрудник_Key,Начисления/Ref_Key,Начисления/РабочееМесто_Key для уменьшения времени обращения к данным

Начисления/РабочееМесто_Key – здесь также хранится код сотрудника, в случае если в шапке документа указан основной сотрудник, а в табличной части - совместитель

  1. Выгрузка изменений оплаты - возврат до 1,5

Выбирается сущность сущность в 1С Document_ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком

В параметр для запроса сущности в 1С указывается: ?$filter=Posted eq true and ДатаИзменения le datetime'{{ToDay}}' and ДатаОкончанияПособияДоПолутораЛет ge datetime'{{ToDay}}'&$select=Ref_Key,ДатаИзменения,Сотрудник_Key,ОсновнойСотрудник_Key,ПрименениеПлановыхНачислений/Ref_Key,ПрименениеПлановыхНачислений/РабочееМесто_Key,ПрименениеПлановыхНачислений/Применение

где:

?$filter Фильтр отбирает проведенные документы, у которых Дата изменения меньше, чем Сегодняшний день и Дата Окончания пособия до полутора лет больше, чем Сегодняшний день

&$select Поля мы выбираем только Ref_Key,ДатаИзменения,Сотрудник_Key,ОсновнойСотрудник_Key,ПрименениеПлановыхНачислений/Ref_Key,ПрименениеПлановыхНачислений/РабочееМесто_Key,ПрименениеПлановыхНачислений/Применение для уменьшения времени обращения к данным

ПрименениеПлановыхНачислений/РабочееМесто_Key – здесь также хранится код сотрудника, в случае если в шапке документа указан основной сотрудник, а в табличной части - совместитель

Для всех выше указан сущностей в столбец "Функция для обработки ответа от 1С" указывается функция, которая заберет данные из указанной сущности:

select * from odata."loadReadListExceptions" ("_body_")