Произвольные выборки
Произвольные выборки из 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С 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С 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С Document_ВозвратИзОтпускаПоУходуЗаРебенком
В параметр для запроса сущности в 1С указывается: ?$select=Ref_Key,ДатаВозврата,Сотрудник_Key,ОсновнойСотрудник_Key,Начисления/Ref_Key,Начисления/РабочееМесто_Key
где:
&$select Поля мы выбираем только Ref_Key,ДатаВозврата,Сотрудник_Key,ОсновнойСотрудник_Key,Начисления/Ref_Key,Начисления/РабочееМесто_Key для уменьшения времени обращения к данным
Начисления/РабочееМесто_Key – здесь также хранится код сотрудника, в случае если в шапке документа указан основной сотрудник, а в табличной части - совместитель
- Выгрузка изменений оплаты - возврат до 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_")