|
v7: Отслеживание измененной операции вручную | ☑ | ||
---|---|---|---|---|
0
buhkiller
24.09.13
✎
20:02
|
Надо отслеживать при перепроведении документа. Сделал флаг (0/1) в общих реквизитах, после редактирования операции в форме флаг только на чтение. Как сделать, чтобы после записи операции из формы флаг стал в 1, он же при редактировании только на чтение.
|
|||
1
Стрелок
24.09.13
✎
20:06
|
поток сознания
|
|||
2
Стрелок
24.09.13
✎
20:07
|
открыть секрет что у ручной операции тоже есть форма?
|
|||
3
buhkiller
24.09.13
✎
20:08
|
(2) Я ж об этом. В форме операции ПриЗаписи ставлю Документ.Флаг = 1, а он не записывается.
|
|||
4
Стрелок
24.09.13
✎
20:09
|
а что есть "документ"?
|
|||
5
Стрелок
24.09.13
✎
20:10
|
а с чеговзял что не записывает?
|
|||
6
buhkiller
24.09.13
✎
20:24
|
Операции и проводки
Атрибуты Документ Синтаксис: Документ Назначение: Атрибут служит для обращения к документу, которому принадлежит бухгалтерская операция. Является атрибутом ''только для чтения''. Как обмануть только для чтения и записать общий реквизит ? Через создатьобъект не получается - док заблокирован. |
|||
7
Стрелок
24.09.13
✎
20:29
|
я бы не торопился про "только для чтения"...
Процедура ПриЗаписи() глПроверкаДатыДок(Контекст,"Запись"); Документ.Автор = Пользователь; глВсеВыбрано = 1; ВыбФирма = 0; ОднаФирма = 1; ВыбратьПроводки(); Пока ПолучитьПроводку() = 1 Цикл глВыбранЛи(НашаФирма,"Фирма", НомерПроводки()); Если НашаФирма <> ВыбФирма Тогда Если ПустоеЗначение(ВыбФирма) = 1 Тогда ВыбФирма = НашаФирма; Иначе ОднаФирма = 0; КонецЕсли; КонецЕсли; Если Дебет.Счет.ВидСубконто(2) = ВидыСубконто.МесяцНачисленияЗП Тогда Дебет.МесяцНачисленияЗП = НачМесяца(Дебет.МесяцНачисленияЗП); КонецЕсли; Если Кредит.Счет.ВидСубконто(2) = ВидыСубконто.МесяцНачисленияЗП Тогда Кредит.МесяцНачисленияЗП = НачМесяца(Кредит.МесяцНачисленияЗП); КонецЕсли; КонецЦикла; Если глВсеВыбрано = 0 Тогда глКомментарий(" "+Документ+" от "+ДатаОперации+" не проводится!",0,,"!!"); СтатусВозврата(0); КонецЕсли; // если во всех проводках указана одна и та же фирма, // запишем ее в реквизит шапки Фирма, иначе очистим его Если ОднаФирма = 1 Тогда Документ.Фирма = ВыбФирма; Иначе Документ.Фирма = 0; КонецЕсли; КонецПроцедуры это код из типовой. Флаг точно общий реквизит? |
|||
8
Стрелок
24.09.13
✎
20:30
|
ответь на 5
|
|||
9
buhkiller
24.09.13
✎
20:38
|
(7) Это работает, когда операция ручная полностью, без док-та ее создавшую.
(5) в процедуре ПриЗаписи ставлю значение, смотрю отладчиком |
|||
10
Стрелок
24.09.13
✎
20:49
|
(9) не понял ничего. мы говорим о ручной операции или об операции вообще?
|
|||
11
buhkiller
24.09.13
✎
20:55
|
(10) об операции вообще с документом, который ее сделал. Формекс поймает форму операции ПослеЗакрытия(Контекст) ?
|
|||
12
Стрелок
24.09.13
✎
20:59
|
(11) и зачем это? не понимаю вообще ничего
если есть документ создавший операцию то править её нельзя (ну нормальные люди так делают) а флаг назначай в ОбработкаПроведения. в чём дело то? |
|||
13
buhkiller
24.09.13
✎
21:02
|
Подгонка данных прошлых периодов без перепроведения. Так решило руководство у заказчика. Аудит типа ))) Но надо зафиксировать где-то факт изменения операции вручную, чтобы при проведении был отказ с этим флагом у документа.
|
|||
14
buhkiller
24.09.13
✎
21:05
|
Операцией корректировки отдельно не хотят.
|
|||
15
Стрелок
24.09.13
✎
21:06
|
(14) ну нафик. есть же здоровый глузд в этом мире. а это долбо...зм
|
|||
16
Стрелок
24.09.13
✎
21:07
|
Исправили - хай ставят руками галку на форме
|
|||
17
buhkiller
24.09.13
✎
21:13
|
(15) Согласен. Старые клиенты, очень много с ними связано, но упертые как бараны и платят хорошо.
Блин, Формекс не отрабатывает ПослеЗакрытия, а ПослеОткрытия ловит. |
|||
18
Сияющий Асинхраль
24.09.13
✎
21:23
|
Ну сделай обработку, которая будет править проводки выбранного дока и эта же обработка пусть правит док и сохраняет не перепроводя
|
|||
19
Стрелок
24.09.13
✎
21:24
|
(18) я так понял там ювелирная работа вручную с каждой проводкой. нет общего алгоритма потому как твоя мысль лежитна поверхности
|
|||
20
Стрелок
24.09.13
✎
21:26
|
а в принципе если развить 18 то получается
1. создаём юзера например "аудит" 2. в ПриОткрытии документа ставим проверку на имя пользователя и открываем не документ а обработку с ТЗ в которую высыпаны проводки документа 3. дядьки правят проводки и клацают на кнопку "записать" 4. обработка ставит отметку флаг=1 и записывает новые проводки документа |
|||
21
Стрелок
24.09.13
✎
21:27
|
не забываем вернуть галку "запретить ручное изменение операций" на место
|
|||
22
Сияющий Асинхраль
24.09.13
✎
21:29
|
Не обязательно вручную, скажем, я так не перепроводя доки доставлял в старые новое субконто, которого раньше не было. Сразу за пару лет обработкой, просто задачи помечать доки не было
|
|||
23
Стрелок
24.09.13
✎
21:32
|
(22) они итоги правят думаю меняют суммы подгоняя под данные нужные
|
|||
24
buhkiller
24.09.13
✎
21:32
|
Решил проблему формексом
Перем модиф; Процедура ПриЗаписи() модиф = 1; // все остальное как обычно КонецПроцедуры // спасибо формексу Процедура ПослеЗакрытия() Если Модиф = 1 ТОгда Док = СоздатьОбъект("Документ"); Если Док.НайтиДокумент(Документ) = 1 Тогда // все что надо ))) КонецЕсли; КонецЕсли; КонецПроцедуры // ПослеЗакрытия модиф = 0; |
|||
25
buhkiller
24.09.13
✎
21:34
|
При обычном проведении буду давить общий реквизит в ноль
|
|||
26
Сияющий Асинхраль
24.09.13
✎
21:35
|
Даже лучше - ставил разделитель учета в пару лет работающую конфу. Без перепроведения
|
|||
27
buhkiller
24.09.13
✎
21:50
|
Поторопился ((( Все равно заблокирован документ или операция. Флажок тупо сделаю в форме операции, пусть сами ставят руками.
|
|||
28
Сияющий Асинхраль
24.09.13
✎
21:54
|
Самое простое писать в комментарий проводки, а перед проведением проверять старые комментарии в проводках, если есть опр. Фраза не перепроводить док
|
|||
29
Сияющий Асинхраль
24.09.13
✎
21:58
|
Или в новый журнал проводок собирать измененные проводки
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |