logo

[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:

  1. Проводить документ без сдвига (по умолчанию).
  2. Проводить не проведенный документ реальным временем.
  3. Перепроводить проведенный документ реальным временем.
  4. Проводить любой (не проведенный, проведенный) документ реальным временем.

а параметр ’Знач’ является выражением произвольного типа, которое передается при запуске предопределенной процедуры ОбработкаПроведения, по умолчанию параметр пуст и является необязательным.

Редактирование документа

Чтобы выбрать значение для редактирования можно использовать метод ВыбратьПоНомеру (‘Номер’, ’Дата’). Отметим, что в данном случае Дата — обязательный параметр:

docRef.ВыбратьПоНомеру("000124","20.12.2012");
docRef.УстановитьАтрибут("Комментарий","helloworld!");
docRef.Записать();