Skip to content

Произвольные выборки из 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_")

Выгрузка остатков отпусков в личный кабинет сотрудника#

Для загрузки остатков отпусков необходимо:

  • Со стороны 1С необходимо опубликовать сущности InformationRegister_ЗаработанныеПраваНаОтпуска и InformationRegister_ДанныеОтпусковКарточкиСотрудника
  • В Настройке параметров 1С на закладке "Произвольные выборки из 1С" добавить строку с сущностью InformationRegister_ЗаработанныеПраваНаОтпуска
  • В параметры для запроса сущности указать ?$filter=Period le datetime'{{ToDay}}'&$select=Period,Сотрудник_Key,ВидЕжегодногоОтпуска_Key,КоличествоДней,ДатаНачала,ДатаОкончания
  • В функцию для обработки указать
    select * from odata."LoadUsingVacations"("_body_") as "resultText"
    

Примеры произвольных выгрузок#

Наименование выборки Сущность в 1С Параметр для запроса сущности в 1С Функция для обработки ответа от 1С
Выгрузка данных по образованию - формат Диалл Альянс Structure ?Object=units select * from odata."LoadEducation"("_body_") as "resultText"
Выгрузка изменений оплаты - возврат до 1,5 Document_ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком ?$filter=Posted eq true and ДатаИзменения le datetime'{{ToDay}}' and ДатаОкончанияПособияДоПолутораЛет ge datetime'{{ToDay}}'&$select=Ref_Key,ДатаИзменения,Сотрудник_Key,ОсновнойСотрудник_Key,ПрименениеПлановыхНачислений/Ref_Key,ПрименениеПлановыхНачислений/РабочееМесто_Key,ПрименениеПлановыхНачислений/Применение select * from odata."loadReadListExceptions" ("_body_")
Выгрузка Больничных по беременности и родам Document_БольничныйЛист ?$filter=ПричинаНетрудоспособности eq 'ПоБеременностиИРодам' and ДатаНачала gt datetime'2022-09-01T00:00:00' and DeletionMark eq false and ДокументРассчитан eq true&$select=Ref_Key,Сотрудник_Key,ДатаНачала,ДатаОкончания select * from odata."loadReadListExceptions" ("_body_")
Выгрузка Больничных по беременности и родам Document_БольничныйЛист_ ?$filter=ДатаНачала le datetime'{{ToDay}}' and ДатаОкончания ge datetime'{{ToDay}}' and ПричинаНетрудоспособности eq 'ПоБеременностиИРодам' and DeletionMark eq false and ДокументРассчитан eq true&$format=json&$select=Ref_Key,Сотрудник_Key,ДатаНачала,ДатаОкончания select * from odata."loadReadListExceptions" ("_body_")
Выгрузка возврат из отпуска по уходу Document_ВозвратИзОтпускаПоУходуЗаРебенком ?$select=Ref_Key,ДатаВозврата,Сотрудник_Key,ОсновнойСотрудник_Key,Начисления/Ref_Key,Начисления/РабочееМесто_Key_ select * from odata."loadReadListExceptions" ("_body_")
Выгрузка Отпусков по уходу Document_ОтпускПоУходуЗаРебенком ?$filter=DeletionMark eq false&$select=Ref_Key,Сотрудник_Key,ДатаНачала,ДатаОкончания,ОсновнойСотрудник_Key,Начисления/Ref_Key,Начисления/РабочееМесто_Key select * from odata."loadReadListExceptions" ("_body_")
Остатки дней отпуска сотрудников InformationRegister_ЗаработанныеПраваНаОтпуска ?$filter=Period le datetime'{{ToDay}}'&$select=Period,Сотрудник_Key,ВидЕжегодногоОтпуска_Key,КоличествоДней,ДатаНачала,ДатаОкончания select * from odata."LoadUsingVacations"("_body_") as "resultText"