В компании 1С: ДО интегрированный с 1С:КА2. Конфигурации на замке.
В ДО 2 процесса согласования и исполнения. По логике после процесса согласования необходимо отправить на исполнение. Необходимо чтобы программа на исполнение отправляла только согласованные документы.
Пытаюсь сделать через условия шаблона для процесса исполнения.
Не могу понять, как проверить статус согласования документа. В режиме конструктора состояние документа не участвуют. Как можно проверить или конструктором или встроенным языком.
Может быть есть какой то более правильный способ?
В ДО 2 процесса согласования и исполнения. По логике после процесса согласования необходимо отправить на исполнение. Необходимо чтобы программа на исполнение отправляла только согласованные документы.
Пытаюсь сделать через условия шаблона для процесса исполнения.
Не могу понять, как проверить статус согласования документа. В режиме конструктора состояние документа не участвуют. Как можно проверить или конструктором или встроенным языком.
Может быть есть какой то более правильный способ?
По теме из базы знаний
- Проверка статуса и владельца кодов маркировки
- Проверка статусов кодов ИС МП в документах [КА 2.4]
- Журнал "Документы продажи" с колонками "Статус проверки и подбора кодов маркировки", "Статус документа ИС МП"
- Проверка статуса "Работа" в документах увольнения. ЗУП 3.1
- Интеграция Честный Знак и 1C: обмен и синхронизация для УТ11, УНФ, КА2, ERP, Розница: Расширение для работы с СУЗ, ГИС МТ, ЦРПТ
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Сделал так:
Вроде работает. Есть еще какие то способы?
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТекущиеСостоянияДокументов.Документ КАК Документ
|ИЗ
| РегистрСведений.ТекущиеСостоянияДокументов КАК ТекущиеСостоянияДокументов
|ГДЕ
| ТекущиеСостоянияДокументов.Документ = &Документ
| И ТекущиеСостоянияДокументов.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияДокументов.Согласован)";
Запрос.УстановитьПараметр("Документ", Предмет.Ссылка);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Результат=Ложь;
Иначе
Результат = Истина;
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
ПоказатьВроде работает. Есть еще какие то способы?
Прикрепленные файлы:
(3) Вам нужно создать шаблон КОМПЛЕКСНОГО процесса и добавить туда два действия: СОГЛАСОВАНИЕ и ИСПОЛНЕНИЕ. Выбрать порядок СМЕШАННЫЙ, появится колонка ПОРЯДОК ВЫПОЛНЕНИЯ. Тыкаете в неё во второй строке (это у вас как раз исполнение) и там настраиваете условия. У меня автоматом прописалось условие "ЕСЛИ СОГЛАСОВАН 1". Картинку если надо, позже прикреплю
Понял, спасибо за ответ.
Такой вариант не очень подойдет, т.к. исполнение и согласование по времени необходимо разделить. Поэтому сделал разные процессы. Сейчас проблема в том, что условия, которые срабатывают в ДО , не срабатывают в КА при отправлении на исполнение.
Если в ДО, при условии несогласованного документа шаблон исполнения даже в списке не отображается, то в КА при получении перечня шаблонов, отображаются все. И процесс исполнения не только отображается, но и запускается.
Придется видимо на стороне КА решать эту проблему
Такой вариант не очень подойдет, т.к. исполнение и согласование по времени необходимо разделить. Поэтому сделал разные процессы. Сейчас проблема в том, что условия, которые срабатывают в ДО , не срабатывают в КА при отправлении на исполнение.
Если в ДО, при условии несогласованного документа шаблон исполнения даже в списке не отображается, то в КА при получении перечня шаблонов, отображаются все. И процесс исполнения не только отображается, но и запускается.
Придется видимо на стороне КА решать эту проблему
Как не хотел править код, но пришлось. Заодно решил проблему отображения тучи шаблонов при создании процесса в КА.
Сделал следующее:
1. Закинул в расширение модуль: Обработки.ИнтеграцияС1СДокументооборот - Форма "Создание бизнес процесса" - ЗаполнитьДеревоШаблонов(ПолучатьВидДокумента)
Закоментил группировки процессов, отфильтровал лишние шаблоны прямо по названию и сделал проверку на статус платежки. Получилось топорно, но просто.
В дальнейшем если понадобятся другие документы или шаблоны, можно будет добавлять по мере необходимости по названию и сделать группировки.
Сделал следующее:
1. Закинул в расширение модуль: Обработки.ИнтеграцияС1СДокументооборот - Форма "Создание бизнес процесса" - ЗаполнитьДеревоШаблонов(ПолучатьВидДокумента)
Закоментил группировки процессов, отфильтровал лишние шаблоны прямо по названию и сделал проверку на статус платежки. Получилось топорно, но просто.
Вот кусок кода |
---|
Для каждого Раздел из РезультатДеревоШаблонов.BusinessProcessTemplatesTree Цикл
//РазделДерева = Дерево.Строки.Добавить();
//РазделДерева.Наименование = Раздел.name;
//РазделДерева.Подсказка = Раздел.hint;
//РазделДерева.ЭтоЗаголовок = Истина;
//
//Если РазделДерева.Наименование = "Другие шаблоны" Тогда
// РазделДерева.Развернуть = Ложь;
//Иначе
// РазделДерева.Развернуть = Истина;
//КонецЕсли;
Для каждого Шаблон из Раздел.elements Цикл
Если СкрытьПоручения
И Шаблон.businessProcessType = "DMBusinessProcessOrder" Тогда
Продолжить;
КонецЕсли;
Если Шаблон.name = "Согласование оплаты" или Шаблон.name = "Согласование аванса"
ИЛИ (Шаблон.name = "Оплатить" И ИнтеграцияС1СДокументооборот.СсылкаИзUUID("Документ.ЗаявкаНаРасходованиеДенежныхСредств", ПредметID).Статус = Перечисления.СтатусыЗаявокНаРасходованиеДенежныхСредств.КОплате) Тогда
//СтрокаРаздела = РазделДерева.Строки.Добавить();
СтрокаРаздела = Дерево.Строки.Добавить();
СтрокаРаздела.Наименование = Шаблон.name;
СтрокаРаздела.Подсказка = Шаблон.hint;
СтрокаРаздела.ЭтоЗаголовок = Ложь;
СтрокаРаздела.ТипПроцесса = Шаблон.businessProcessType;
Если ЗначениеЗаполнено(Шаблон.template.objectID.id) Тогда
СтрокаРаздела.ШаблонID = Шаблон.template.objectID.id;
СтрокаРаздела.ШаблонТип = Шаблон.template.objectID.type;
Иначе
СтрокаРаздела.Индекс = ПорядокБизнесПроцессов.Найти(СтрокаРаздела.ТипПроцесса);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Показать |
В дальнейшем если понадобятся другие документы или шаблоны, можно будет добавлять по мере необходимости по названию и сделать группировки.
(7)
Заодно решил проблему отображения тучи шаблонов при создании процесса в КА
Шаблоны привязываются к виду документа, соответственно если все настроено в ДО корректно, то и не будет отображаться "туча" шаблонов. Будут показываться только те шаблоны, которые привязаны к этому виду документа.
(11) Смотрите, вроде бы все стандартно. В ДО все настроено, все работает. Единственно пока не научился оставить в процессах только те, что назначены без процессов по умолчанию.
В КА тоже все настроено стандартно. Но при попытке запустить процесс по документу выходит много строк. Шаблоны и процессы по умолчанию
В КА тоже все настроено стандартно. Но при попытке запустить процесс по документу выходит много строк. Шаблоны и процессы по умолчанию
Прикрепленные файлы:
Полностью поддерживаю ReDvAlL, зачем пилить костыли, если в ДО есть отличный типовой функционал в виде Комплексных процессов.
Даже если процессы сильно разнесены по времени, это не мешает его использованию.
В вашем случае сотрудник должен запустить документ на исполнение после согласовании.
Каким образом только будет происходить контроль - вовремя ли его отправили на исполнение или нет. И вообще отправили?
В комплексном процессе сразу после согласования (и только после согласования), либо через определенный интервал времени (через час. день, неделю в соответствии с регламентом) у вас стартует задача Исполнить.
Даже если процессы сильно разнесены по времени, это не мешает его использованию.
В вашем случае сотрудник должен запустить документ на исполнение после согласовании.
Каким образом только будет происходить контроль - вовремя ли его отправили на исполнение или нет. И вообще отправили?
В комплексном процессе сразу после согласования (и только после согласования), либо через определенный интервал времени (через час. день, неделю в соответствии с регламентом) у вас стартует задача Исполнить.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот