[ELMA3] Работа с документами 1С в сценариях
Для того, чтобы иметь возможность работать со документами 1С в сценарии, необходимо подключиться к конфигурации 1С (подробно прочесть об этом можно в статье https://www.elma-bpm.ru/kb/article-345.html) и выбрать в списке объектов необходимый документ 1С. Далее с ним можно работать, применяя методы 1С. Для разных версий системы 1С используются разные методы.
Для работы сценариев необходимо подключить сборки:
EleWise.ELMA.Integration1C
Microsoft.CSharp
и пространства имен:
using EleWise.ELMA.Integration1C; using EleWise.ELMA.Integration1C.Data; using EleWise.ELMA.Integration1C.V81; using EleWise.ELMA.Model.Common; using EleWise.ELMA.Model.Entities; using EleWise.ELMA.Model.Managers; using EleWise.ELMA.Model.Types.Settings; using EleWise.ELMA.Services;
Для системы 1С версии 8.х
Создание, проведение и сохранение документа
Для системы 1С версии 8.х используется функция СоздатьДокумент. Необходимо заполнить атрибуты Номер и Дата:
var newObject = docRef.СоздатьДокумент(); newObject.Номер = "000124"; newObject.Дата = "18.12.2013"; newObject.Записать();
При записи можно указать следующие два параметра:
1. Для параметра Режим записи документа — доступны следующие режимы:
- Запись (по умолчанию);
- ОтменаПроведения;
- Проведение.
Пример того, как передавать параметр:
newObject.Записать(РежимЗаписиДокумента.Запись);
2. Для параметра Режим проведения документа — доступны следующие режимы:
- Неоперативный (по умолчанию);
- Оперативный.
Пример того, как передать оба параметра Режим записи документа и параметра Режим проведения документа:
newObject.Записать(РежимЗаписиДокумента.Запись, РежимПроведенияДокумента.Неоперативный);
Редактирование документа
Для редактирования можно использовать различные методы выборки документа, например используется метод НайтиПоНомеру:
var ДокументСсылка = docRef.НайтиПоНомеру("000124", "20.12.2012"); if (!ДокументСсылка.Пустая()){ var Документ = ДокументСсылка.ПолучитьОбъект(); Документ.Товары.Очистить(); Документ.Записать(); }
Дата в данном методе является необязательным параметром. Если вы уверены, что у вас нет документов с одинаковым номером, ее можно опустить.
Для системы 1С версии 7.7
Создание, проведение и сохранение документа
Используется функция «Новый»
docRef.Новый(); docRef.УстановитьАтрибут("Номер","000124"); docRef.УстановитьАтрибут("Дата","20.12.2012"); docRef.Записать();
Если нужно провести документ, то после метода Записать нужно вызвать метод Провести(‘Режим’, ’Знач’) , где ’Режим’ является необязательным параметром и принимает значения от 0 до 3:
- Проводить документ без сдвига (по умолчанию).
- Проводить не проведенный документ реальным временем.
- Перепроводить проведенный документ реальным временем.
- Проводить любой (не проведенный, проведенный) документ реальным временем.
а параметр ’Знач’ является выражением произвольного типа, которое передается при запуске предопределенной процедуры ОбработкаПроведения, по умолчанию параметр пуст и является необязательным.
Редактирование документа
Чтобы выбрать значение для редактирования можно использовать метод ВыбратьПоНомеру (‘Номер’, ’Дата’). Отметим, что в данном случае Дата — обязательный параметр:
docRef.ВыбратьПоНомеру("000124","20.12.2012"); docRef.УстановитьАтрибут("Комментарий","helloworld!"); docRef.Записать();