К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Создание второго документа при проведении первого.

0 - 30.05.2016 - 11:11
Столкнулся с задачкой. Необходимо при проведении Документа1, если некоторое условие не выполняется, создавать Документ2, который ссылается на Документ1, и при этом проведение Документа1 отменяется.

Ломаю голову. если запихнуть создание документа 2 в модуль, то возникает проблема с транзакцией, в ней все что от "ПередЗаписью" и до конца подписки на событие "ОбработкаПроведения", включая и подписки на события - куча вложенных транзакций, и если отменяется одна (само проведение) - отменяются все (включая создание второго документа). Вешать создание на форму документа, за пределами транзакции - так ведь пользователи могут провести документ не открывая формы, из списка документов к примеру. Так что этот путь тоже не годится... Кто-нибудь делал что-то похожее?



41 - 30.05.2016 - 17:15
2(39) Нет, я только исполнитель, даже ТЗ составлял не я, а на уровне холдинга. Заказчик - директорат холдинга. Все сотрудники, кого это коснется в курсе, и принимали участие в обсуждении системы.
42 - 30.05.2016 - 17:19
39-USSR >А это точно ТЫ под этим ником пишешь?
Такое ощущение, что кто-то аккаунт взломал.
Я помню нормального, умного, адекватного человека. Вроде как даже когда-то кандидатом в доктора каких-то наук был.
Но сейчас такой бред несёшь.
Гость
43 - 30.05.2016 - 18:12
(42)я тоже помню несколько иного Billi. Не становитесь мировым разумом. Я выразил автору свою точку зрения, ничего более. Считаю, что идея бестолковая. Он и ты считаете иначе, ваше право. Но хамить то зачем )
44 - 30.05.2016 - 18:25
43-USSR >Вообще-то хамишь ты.
Я вообще не высказывался по поводу своего отношения к идеи ТС. Я просто дал ему практический совет.
А вот ты написал 17 сообщений, и каждое из них насквозь пронизано твоей "крутизной" и "великим" познанием вопроса.
Давно ли сам по поводу своей "нетленки" вопросы задавал?
Гость
45 - 30.05.2016 - 18:56
(44)Уважаемый Billi, Вам показалось про "крутизну" и "великость". Не надо выдумывать за других, это некрасиво. На великость Вы претендуете. Если есть что-то по сути вопроса, то пишите, а кидаться какашками как-то неинтересно.
46 - 30.05.2016 - 18:58
45-USSR >бла-бла-бла.
Я ошибся.
47 - 30.05.2016 - 18:59
Ошибся насчет персонажа юсср.
48 - 31.05.2016 - 09:21
2(22) точно, сработало. Совсем забыл, что фоновые задания запускаются в отдельных сеансах, и транзакции уже на них не влияют. А то глаз замылился, и в голове по одному и тому же кругу крутилось: "процедура на сервере, транзакция открыта, объект существует, ссылка еще не существует, транзакция открыта следующая, объект существует, ссылка записана и вроде существует если транзакция не откатится, открывается следующая транзакция... и т.д. пока транзакция не откачена и все не откатилось вместе с ней..." и ведь помнил же, что решение уже где-то встречал, но где именно - не вспоминалось...
49 - 01.06.2016 - 14:27
В клюшках - в полпинка.
при проведении документа - генерим в конце процедуры проведения событие с передачей в него параметров. после завершения транзакции проведения в этом же сеансе отработает обработка внешнего события - в ней делаем что угодно - хоть кучу доков создаем, хоть отменяем и прочую хрень. у меня таких "подписок" штук пять работают
Гость
50 - 01.06.2016 - 14:35
А почему "объяснительная" - это обязательно документ?
Что мешает сделать его справочником?
Она что, какие-то учетные механизмы что ли двигать должна?
51 - 01.06.2016 - 14:45
2(50) Детали реализации не важны. Любая бумажка - документ. Нужен был способ выхода за пределы транзакций, не более того.
Гость
52 - 01.06.2016 - 15:15
51-bma1 > Какая связь между справочником и транзакцией?
53 - 01.06.2016 - 15:18
2(52) когда транзакция откатывается, откатываются назад и все события по базе, которые произошли внутри нее: создание объектов, движения регистров, изменение реквизитов и т.п.
Гость
54 - 01.06.2016 - 15:29
Как альтернатива фоновому заданию ПодключитьОбработчикОжидания
Гость
55 - 01.06.2016 - 15:34
53-bma1 > А зачем нужно удалять созданную объяснительную при отмене транзакции?
Что за свинтопрульный аппарат ты тут втираешь?
56 - 01.06.2016 - 15:43
Цитата:
Сообщение от MagAN Посмотреть сообщение
А зачем нужно удалять созданную объяснительную при отмене транзакции?
Ее как раз не нужно удалять. Ее нужно сохранять. Но если ее создавать внутри открытой транзакции, которая потом откатывается, то и созданная объяснительная тоже не сохраняется, а база возвращается в состояние до начала транзакции.
Гость
57 - 01.06.2016 - 15:45
56-bma1 > Бред сивой кабылы.
Справочник, созданный в момент проведения документа, при отмене транзакции не удалится.
Гость
58 - 01.06.2016 - 16:03
городители бреда
Гость
59 - 01.06.2016 - 16:07
Цитата:
Сообщение от MagAN Посмотреть сообщение
Справочник, созданный в момент проведения документа, при отмене транзакции не удалится.
Почему?
60 - 01.06.2016 - 16:16
Цитата:
Сообщение от Helen1986 Посмотреть сообщение
городители бреда
А где традиционная картинка с котиком?
И еще ждем лекцию о сакральных тайнах транзакций для тупых чайников...
Гость
61 - 01.06.2016 - 16:25
Гость
62 - 01.06.2016 - 16:51
По непонятной нам религии человеку хочется создавать в момент проведения, а не при записи, хотя документ создается менеджером интерактивно. Почему нельзя все это сунуть просто в документ реализации тоже осталось тайной. Причины (объяснения) надо как то структурировать, иначе потом никак не обработать. Проще было манагерам в свои блокноты все записать, раз потом им объясняться )) И никаких транзакций (ИМХО)
Гость
63 - 01.06.2016 - 17:18
(62) Просто надо не при записи, а при проведении.
Гость
64 - 01.06.2016 - 17:33
(63)Кому надо ?)
Кстати, пришла идея, может и неверная, но все же. Раз уж так тренируете менеджеров, то обязать их объяснять не только "неверные" скидки, а все. С тем, чтобы была полная информация кому, какую и почему скидку дали. Может кому то ее не додали и клиент обидится ) Тогда эту объяснительную можно создавать не после, а до отгрузки. Объяснили, отгрузили.


К списку вопросов






Copyright ©, Все права защищены