|
Как бы сделать такое проведение, чтобы после него документ записывался | ☑ | ||
---|---|---|---|---|
0
jsmith82
28.03.12
✎
09:09
|
В общем тема такая
Есть развивающаяся самописка Хочу забубенить в неё такое гипер-свойство, чтобы от результатов проведения в документе менялись некоторые реквизиты типа Булево ну типа "Проведен по разделу учета НДС", "Отгрузка произошла до упора" и т.д. для быстрого отбора родимых в журналах, запросах и прочих хозяйственных визуализациях Думал, подавать документ в общий модуль, проводить и проставлять реквизиты в режиме Загрузка. А транзакцию целесообразно ставить в этом случае, или есть какие другие варианты |
|||
1
mikecool
28.03.12
✎
09:10
|
делай это в ПередЗаписью
|
|||
2
Ненавижу 1С
гуру
28.03.12
✎
09:10
|
(0) храни супер-гипер-нано-свойства в РС
|
|||
3
jsmith82
28.03.12
✎
09:10
|
(1) а если обработка проведения не сработает, события процедуры ПередЗаписью откатятся?
|
|||
4
jsmith82
28.03.12
✎
09:11
|
(2) это утяжелит запросы в динамических списках
|
|||
5
mikecool
28.03.12
✎
09:12
|
(3) проверь )
|
|||
6
ANikV
28.03.12
✎
09:12
|
(4) Ага, а перезаписывать документ - это конечно нормально...
|
|||
7
jsmith82
28.03.12
✎
09:14
|
(6) когда проводишь документ, любые тормоза кажутся логичными, важными и нужными
а когда открываешь журнал и делаешь отборы, тормоза выглядят кощунственными |
|||
8
jsmith82
28.03.12
✎
09:16
|
(5) проверил. действительно откатывается
|
|||
9
Ненавижу 1С
гуру
28.03.12
✎
09:16
|
(4) не приниципиально
|
|||
10
jsmith82
28.03.12
✎
09:17
|
а я и не знал
|
|||
11
Ненавижу 1С
гуру
28.03.12
✎
09:17
|
я так проблема в том, что логика проведения тяжеловесна и узнать, что свойство надо установить можно только ПОСЛЕ проведения, вот это интересная задача
|
|||
12
jsmith82
28.03.12
✎
09:17
|
(9) да просто реквизит документа он логичней, проще и естественней
а вот чтобы узнать кое-чё родное, делать левое соединение к регистру с параметрами.. |
|||
13
jsmith82
28.03.12
✎
09:18
|
(11) ну а чо. вот например, статус отрузки заказа
я щас в динамическом списке делаю соедениние с регистром а куда как проще проставлять реквизит "СтатусОтгрузки" |
|||
14
Maxus43
28.03.12
✎
09:19
|
(11) что там интересного? подписка на проведение... все движения при проведении доступны в рамках данной транзакции. ставь там свойство своё
|
|||
15
Maxus43
28.03.12
✎
09:20
|
(13) лентяй чтоль? соединение ему лень делать)
|
|||
16
Ненавижу 1С
гуру
28.03.12
✎
09:22
|
(14) угу и потом будет вызываться обработка ПередЗаписью и ПриЗаписью опять (если конечно хранить в таблице документа)
|
|||
17
jsmith82
28.03.12
✎
09:22
|
(14) гениально
|
|||
18
jsmith82
28.03.12
✎
09:22
|
(16) обрабатывать в условии как щас делается если загрузка, то гуляйте, вася
|
|||
19
jsmith82
28.03.12
✎
09:23
|
(16) а вообще можно не в таблице документа
|
|||
20
Ненавижу 1С
гуру
28.03.12
✎
09:23
|
(18) это неверная затычка, скажем так костыль для устранения ошибок архитектуры
|
|||
21
jsmith82
28.03.12
✎
09:23
|
(20) согласен в принципе
|
|||
22
Ненавижу 1С
гуру
28.03.12
✎
09:23
|
(19) то есть все таки (2)? я победил ))
|
|||
23
Maxus43
28.03.12
✎
09:25
|
(16) этот случай вобще не по метолологии 1с, есно хранить в регистре)
З.ы. эт ещё фигня, франчи тут внедряют, дак в обработке проведения такой код набыдлокодили: ЭтотОбъект.Записать(); Вот что гениально |
|||
24
jsmith82
28.03.12
✎
09:25
|
(22) да дело не в победе, а в результатах
просто реально влом делать соединения я не думаю, что это нарушает концепцию мироздания для состояния регистров существуют какие-то базовые взаимные отношения, которые могут иметь интерфейс быстрого доступа надо просто верно в платформе обработчики подобрать |
|||
25
jsmith82
28.03.12
✎
09:26
|
(23) ну так сама 1с так делает! замечал много раз, как звёздочка в заголовке документа мерцает
|
|||
26
Maxus43
28.03.12
✎
09:27
|
(25) нет, 1с так не делает. моргание звёздочки тут не причем
|
|||
27
jsmith82
28.03.12
✎
09:28
|
по идее нужно так
1. запись редактируемых реквизитов документа 2. обработка проведения (в это же транзакции запись нередактируемых реквизитов документа) 3. профит |
|||
28
jsmith82
28.03.12
✎
09:28
|
(26) моргание звёздочки это прямое указание на запись документа, насколько я понимаю
|
|||
29
jsmith82
28.03.12
✎
09:29
|
(28) вернее, на изменение записанного
|
|||
30
Maxus43
28.03.12
✎
09:30
|
(27) платформа так не может, всмысле придётся быдлокодить как в (23), не есть гуд.
(28) нет... хз почему маргает, но точно не из-за записи. в типовых нет Записать() ни при проведении, нигде короче. Перед записью часто меняются, но никак не уже записанные |
|||
31
jsmith82
28.03.12
✎
09:31
|
(30) извини, ты не прав. в ЗУПе такое точно есть
|
|||
32
jsmith82
28.03.12
✎
09:31
|
там вообще идёт циклическое проведение документа
|
|||
33
jsmith82
28.03.12
✎
09:32
|
я просто к тому, что быдлокод свойствен и 1су
|
|||
34
Maxus43
28.03.12
✎
09:32
|
(31) возможно, но 1 случай - не показатель того что так и надо. в УПП я не видел нигде такого (подсистему ЗУПа не смотрел правда), сути это не меняет - это не по феншую
|
|||
35
Maxus43
28.03.12
✎
09:33
|
в некоторых случаях быдлокод оправдан, в твоём - нет) храни в регистре да не ленись соединения ставить
|
|||
36
jsmith82
28.03.12
✎
09:33
|
(34) да, феншуй тут жестко сосет
|
|||
37
jsmith82
28.03.12
✎
09:34
|
(35) можно поспорить. обработка проведения вообще как бы не связана напрямую с записью документа, иначе бы не было двух режимов записи
|
|||
38
jsmith82
28.03.12
✎
09:35
|
тогда вообще надо сделать так
в документе оставить все реквизиты движений а всё остальное, включая комментарий, сведения о грузоотправителе, номер входящего документа и т.д. врегистр сведений |
|||
39
Maxus43
28.03.12
✎
09:37
|
(37) ну как, есть запись, а есть проведение. проведение без записи не возможно. как не связаны?
|
|||
40
jsmith82
28.03.12
✎
09:39
|
(39) ну как-раз таки реквизит типа булево Проведен хранится в документа, хотя обработка проведения не изменяет самого документа
ладно, не суть важно |
|||
41
Maxus43
28.03.12
✎
09:39
|
(38) да, так и делается. В реквизиты обязательно добавлять то что влияет на логику проведения
|
|||
42
jsmith82
28.03.12
✎
09:39
|
буду воевать с платформой
|
|||
43
jsmith82
28.03.12
✎
09:39
|
(41) кто так делает, я таких не знаю )
|
|||
44
Maxus43
28.03.12
✎
09:41
|
(43) это методология ЕМНИП
|
|||
45
Maxus43
28.03.12
✎
09:42
|
всмысле что коментарий и т.д в регистр - маразм конечно, а то что надо менять - логично
|
|||
46
PiVa123
28.03.12
✎
09:43
|
Довелось тут такое же делать, оказалось в ОбработкеПроведения просто пишешь
ОбменДанными.Загрузка=Истина; Записать(); ОбменДанными.Загрузка=Ложь; Все нормально пашет. Хотя если бы эту фигню делал я - сделал бы по другому. Всю подготовку сделал бы перед запись, данные запихал в ДополнительныеСвойства и в ОбработкеПроведения использовал бы их. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |