#0
by Emercom
Как в обработке проведения документа в случае если ОТКАЗ = истина, создать программно другой документ(учитывая что транзакция при отказе откатывается) ?
#1
by Остап Сулейманович
Не нужно так делать. Нужно попытаться провести. Потом проверить результат. Потом браться за следующие действия.
#2
by lodger
проведение происходит в транзакции, отказ = истина приводит к откату транзакции что бы вы там не намутили. надо ловить уже после проведения как то.
#5
by Остап Сулейманович
У документа в случае удачного проведения обычно устанавливается фишка "Проведен". Вот ее и нужно проверить. Например : Об.Записать(РежимЗаписиДокумента.Проведение);
#7
by Emercom
исходный документ проводится через форму, не программно. Поэтому все действия ограничены его процедурами.
#10
by Emercom
есть документ внутренний заказ, на его основании делается документ перемещение, и вот в случае если у документа перемещение есть расхождение по позициям с внутренним заказом, то происходит отказ записи у документа перемещения. И в этот момент нужно программно создать документ корректировка внутреннего заказа.
#13
by Dmitrii
Бред какой-то... >> расхождение по позициям с внутренним заказом Выполняйте эту проверку ПередЗаписью документа перемещение, если РежимЗаписи = Проведение. Если выявлены расхождения, создавайте документ Корректировка.
#15
by Emercom
это слишком просто), задача поставили имено после отказа создавать документ. Сделал в итоге велосипед. В форме в обработчике перед записью добавил в дополнительные свойства документа переменную (в случае удачной записи эта переменная обнуляется в обработке проведения), добавил обработчик ожидания в котором проверяю : 1. Наличие этой переменной 2. То что транзакция не активна 3. Модифированность Если условия совпадают то уже тогда создаю документ.
#16
by Dmitrii
Пользователь создал документ. В форме записал его (БЕЗ проведения). Закрыл форму. В форме списка нажал правую кнопку мыши на этом документе и выбрал пункт "Провести". Ну или воспользовался любым другим способом провести ранее записанный документ перемещения, не открывая форму объекта. Иными словами это костыль, который будет работать ровно до первого шибко умного пользователя. Логика непрозрачна, алгоритм запутанный, корректный результат не гарантирован.
#19
by 2083
да уж... нагородили... ИМХО, когда один документ в результате своей работы должен автоматически родить некий другой документ, лучше всего проектировать это все через регл. задание. То есть у тебя отрабатывает проведение первого документа (любым способом). Это первое событие дает тебе какой-то результат. Этот результат надо где-то зафиксировать. Через какое-то время фоновое задание собирает накопленные результаты и создает нужные другие документы. Копилка результатов очищается, и мы возвращаемся в начало. Как это все сделать не спрашивай, думай сам.
#21
by catena
Вообще прикольная задача. У вас проведение может упасть только из-за расхождения по позициям?
#23
by Dmitrii
Смысл в том, что если пользователь проводит документ перемещения не из формы объекта, то долбанутый алгоритм из вообще никак не отработает (вне зависимости от результатов проведения - успешно или неуспешно).
#24
by mehfk
Стартануть фоновое задание, передав в него нужные данные, в нем сделать свои черные дела.
#25
by Dmitrii
>> За такую бизнес-логику нужно расстреливать. Согласен. Вопрос только кого? Если я правильно понял автор ветки не является автором самой реализации этой задачи. По большому счету мы даже саму бизнес-задачу не знаем. Автор ветки озвучил лишь дебилистическое решение (генерить документы корректировки), родившееся в больном воображении какого-нибудь менеджера. Менеджер этот не понимает всех последствий придуманного им решения, не знает никаких других возможных альтернативных способов.
#26
by Йохохо
есть матрица истинности. Проводим из списка, проводим программно ошибка проведения - правильный результат достигнут успешное проведение - правильный результат достигнут что не так то? А чтобы воспользоваться удобняшкой надо открыть форму. Человек сделал полезняшку, дуделку, свистелку ДЛЯ ИНТЕРАКТИВНОЙ РАБОТЫ, не порушив ничего
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Во внешней обработке иногда не отражаются последние изменения.
- Как программно создать договор контрагента.
- Изменить документ в обработке и проведения и записать
- Запрос в обработке проведения.
- Как программно создать новый документ и заполнить его данными из ТЗ в обработке?
- Запись другого документа в обработке проведения первого
- по обработке проведения заносится только 1 запись в регистр
- ошибка при установке отказ = истина в обработке проведения документа
- Как показать вопрос пользователю при отказе в обработке проведения?
В этой группе 1С
- Заполнение алкогольной декларации в БП 3.0
- Печатная форма HTML
- Термопринтер из Китая OCPP-583
- ЗУП3.1 Полный свод за несколько месяцев - кривое сальдо
- УстановитьПривилегированныйРежим в форме объекта
- 1С ЗУП Среднесписочная численность
- УПП - План закупок на основании плана продаж на месяц
- Дополнительный внешний отчет. Передача параметра. УТ 11.2
- Управление небольшой фирмой 1.6 Клиент-Банк
- Где находятся правила обмена в конф Розница 2.0?
- Не работают группы доступа в ЗУП 3.1.2.121
- Сохранять настройки внутри внешней обработки?
- Настройка отправки писем из 1С - Yandex
- ERP добавочный капитал
- ЗУП 2.5 Табель
- УТ 11.3 колонка кол-во мест в "Реализации товаров и услуг"
- Подвисает проведение документов.
- Оповестить на сервере
- в 1С УПП 1.3 суммы по доначисленному НДС не попадают в прочие расходы по бухгалт
- Дримкас: обмен с 1С УТ 10