Skip to content

Commit

Permalink
Создание с выбором вида документа
Browse files Browse the repository at this point in the history
  • Loading branch information
nvyhodceva committed Mar 16, 2021
1 parent e20f83e commit 7a14ace
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 11 deletions.
1 change: 1 addition & 0 deletions docs/source/Functions_PM.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

ВыполнитьТребуемоеДействие <func/pm/Vypolnit'_Trebuyemoye_Deystviye>
НайтиСопоставлениеДокумента <func/pm/Nayti_Sopostavleniye_Dokumenta>
СписокТиповДокументовДляСоздания <func/pm/СписокТиповДокументовДляСоздания>
ПолучитьЗаполненныйОбъектДокумента1С <func/pm/Poluchit'_Zapolnennyy_Obyekt_Dokumenta_1S>
ПослеАнализаПакета <func/pm/Posle_Analiza_Paketa>
ПравилаСопоставленияДокумента <func/pm/Pravila_Sopostavleniya_Dokumenta>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@

СписокТиповДокументовДляСоздания
================================

**Синтаксис:**

СписокТиповДокументовДляСоздания(<Параметры>)

**Возвращает:**

СписокЗначений:

* **Значение** - название вида документа как в конфигурации. Например, "ПоступлениеТоваровУслуг. Свои виды документа можно называть произвольно, если предполагается нетиповая обработка создания в ПМ
* **Представление** - представление названия вида документа для пользователя. Например, "Поступление (акт, накладная)".

**Описание:**

Готовит список возможных видов документов, которые могут быть созданы в данной конфигурации.

**Параметры:**

Элементы структуры **Параметры**:

* **Документ** - структура электронного :doc:`документа <../../objects/Документ>`, для которого необходимо получить список возможных документов для создания

Пример использования: :doc:`Как обработать входящий пакет документов <../../proc/pm/Obrabotka_Vkhodyashchikh_Paketov>`

Доступно для версии ПМ 3 и выше. См. метод ЭДО_ВерсияAPIПодключаемогоМодуля
31 changes: 20 additions & 11 deletions docs/source/proc/pm/Obrabotka_Vkhodyashchikh_Paketov.rst
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,20 @@
Создание документов
-------------------

Выбор вида документа
~~~~~~~~~~~~~~~~~~~~

При нажатии на кнопку **"Создать"** из формы пакета пользователю предоставляется выбор - какой именно документ 1С создавать.
Для управляемых форм есть предопределенный список видов документов, которые зависят от конфигурации. Список можно редактировать в событии :doc:`СписокТиповДокументовДляСоздания <../../func/pm/СписокТиповДокументовДляСоздания>`.

Создание документа
~~~~~~~~~~~~~~~~~~

Для возможности быстро формировать документы в 1С на основании полученного формализованного документа существует процедура :doc:`ПолучитьЗаполненныйОбъектДокумента1С <../../func/pm/Poluchit'_Zapolnennyy_Obyekt_Dokumenta_1S>`.

Полученные данные в формате XML преобразуются в XDTO структуру. Затем каждое поле в создаваемом документе 1С заполняется соответствующим реквизитом из получившейся стуркутуры XDTO.
Полученные данные в формате XML преобразуются в XDTO структуру. Затем каждое поле в создаваемом документе 1С заполняется соответствующим реквизитом из получившейся струкутуры XDTO.

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

::

Expand Down Expand Up @@ -122,7 +131,7 @@
Эту коллекцию можно использовать для анализа в функции :doc:`ПровестиАнализДокумента <../../func/pm/Provesti_Analiz_Dokumenta>`.

::

Документ = ОсновнойМодуль.Документы_СохраненныйДокумент(ДокументДД);
Шаблон = ОсновнойМодуль.Документы_ШаблонДокумента(Документ);

Expand All @@ -139,13 +148,13 @@
ДокументУжеПолучен = Ложь;

Для каждого Элемент Из Шаблон.Связи.TransformedToLetterIds Цикл

Если Элемент.EntityId = DocumentId И Элемент.MessageId <> LetterId Тогда
ДокументУжеПолучен = Истина;
ТекстОшибки = НСтр("ru = 'Документ по шаблону уже получен'");
Прервать;
КонецЕсли;

КонецЦикла;

Если ДокументУжеПолучен Тогда
Expand Down Expand Up @@ -213,7 +222,7 @@

Установка отборов происходит в функции :doc:`ОтборСопоставленияНоменклатуры <../../func/pm/Otbor_Sopostavleniya_Nomenklatury>`.

Типовыми полями отбора являются:
Типовыми полями отбора являются:

* Артикул
* Код
Expand All @@ -224,18 +233,18 @@
::

Результат = Новый Структура;

ПозицияНоменклатуры1 = Справочники.Номенклатура.НайтиПоНаименованию("Товар");
ПозицияНоменклатуры2 = Справочники.Номенклатура.НайтиПоНаименованию("Услуга");

МассивНоменклатур = Новый Массив;
МассивНоменклатур.Добавить(ПозицияНоменклатуры1);
МассивНоменклатур.Добавить(ПозицияНомеклатуры2);

Результат.Вставить("Ссылка", МассивНоменклатур);

Возврат Результат;

Анализ документов
-----------------

Expand Down

0 comments on commit 7a14ace

Please sign in to comment.