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
| Ее как раз не нужно удалять. Ее нужно сохранять. Но если ее создавать внутри открытой транзакции, которая потом откатывается, то и созданная объяснительная тоже не сохраняется, а база возвращается в состояние до начала транзакции. | |
57
- 01.06.2016 - 15:45
|
56-bma1 > Бред сивой кабылы. Справочник, созданный в момент проведения документа, при отмене транзакции не удалится. | |
58
- 01.06.2016 - 16:03
| городители бреда | |
59
- 01.06.2016 - 16:07
| Почему? | |
60
- 01.06.2016 - 16:16
| А где традиционная картинка с котиком? И еще ждем лекцию о сакральных тайнах транзакций для тупых чайников... | |
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)Кому надо ?) Кстати, пришла идея, может и неверная, но все же. Раз уж так тренируете менеджеров, то обязать их объяснять не только "неверные" скидки, а все. С тем, чтобы была полная информация кому, какую и почему скидку дали. Может кому то ее не додали и клиент обидится ) Тогда эту объяснительную можно создавать не после, а до отгрузки. Объяснили, отгрузили. | |
| Интернет-форум Краснодарского края и Краснодара |