|
Запоминать результат проведения документа перед перепроведением | ☑ | ||
---|---|---|---|---|
0
DmitryPavlik
04.04.13
✎
15:37
|
Всем привет!
Такая задача: необходимо перед ПЕРЕпроведеним документов запоминать текущий результат (выборочно по регистрам) и потом вставлять его назад. Вопрос: каким образом лучше реализовать это? Используется управляемое и обычное приложение. Суть в том, чтобы не городить в модулях документов процедуры - нужно глобально. Пока идея такая: 1. Делаем параметр сеанса "АдресХранилищаПроводок" 2. В подписке на событие в ТЗ переводим результат и её помещаем во врем. хранилище. 3. Опять же в подписке после окончания всех процедур вытаскиваем запомненый результат и подставляем его назад. Может быть у кого-то были подобные ситуации? Беспокоит то, что подписок может быть несколько и как отследить самую последнюю... |
|||
1
Mickeleangelo
04.04.13
✎
15:50
|
Для хранения текущего результата лучше использовать ДополнительныеСвойства объекта.
А управлять последовательностью подписок и их приоритетом штатными средствами нельзя. |
|||
2
Defender aka LINN
04.04.13
✎
15:51
|
(0) Удаление движений - не удалять.
Развели тут теории... |
|||
3
DmitryPavlik
04.04.13
✎
16:06
|
(2) сделал-же оговорку: без массового изменения модулей объектов и нужны выборочные регистры.
(1) действительно, совсем забыл про доп. свойства; можно попробовать туда закинуть. |
|||
4
Турист
04.04.13
✎
16:07
|
(0) а смысл?
|
|||
5
Defender aka LINN
04.04.13
✎
16:08
|
(3) Это не в модуле делается
|
|||
6
Турист
04.04.13
✎
16:09
|
+(4) дешевле и правильнее привести базу в порядок
|
|||
7
Mort
04.04.13
✎
16:10
|
Такая задача: необходимо перед ПЕРЕпроведеним документов запоминать текущий результат (выборочно по регистрам) и потом вставлять его назад.
Надо бы для архитектуры решения придумать аналог слова "г*код". |
|||
8
Kreont
04.04.13
✎
16:10
|
Через одну только подписку как раз такое нормально делается.
Только не пойму логики "перед ПЕРЕпроведеним", если 13-й раз перепроводится документ, тогда что будет результатом? движения 12-го шага + еще опять добавишь что то и т.д.? |
|||
9
Турист
04.04.13
✎
16:14
|
(8) логика простая
- купили товар - продали товар - сдали отчетность - вспомнили про допрасходу на покупку товара и ввели их задним числом - перепрровели документы - аааааааааа, прибыль поменялась, мы все умрем и т.д. |
|||
10
DmitryPavlik
04.04.13
✎
16:14
|
Суть проста: в консолидирующей базе происходит массовая корректировка документов, но результат проведения по некоторым регистрам не должен отличаться от источника.
Если происходит отмена проведения, тогда ничего не запоминается. |
|||
11
Kreont
04.04.13
✎
16:18
|
(9) Логика так дожна выглядеть:
- за введением задним числом - растрел - если очень надо, за последсвия - отвечает не прог.1С, а Гла.бух, за то что открыл период прошлый для редактирования - все изменения (что хочется внести задним числом) можно (100%) за прошлые любые периоды отразить полность законно в бух.учете в текущих датах |
|||
12
Kreont
04.04.13
✎
16:19
|
(10) фигня какая то :)
Толку тогда от консолидируещей базы, если данные в ней через месяц вовсе не будут отвечать данным из баз-источников. |
|||
13
Турист
04.04.13
✎
16:19
|
(11) молодец, только большиство прогов считают что нужно всегда делать так как ГБ скажет ))
|
|||
14
Жан Пердежон
04.04.13
✎
16:20
|
(10) пусть редактируют в источнике
|
|||
15
Турист
04.04.13
✎
16:21
|
(12) ага, открываешь док, там реализация на миллион, а по проводкам на два миллиона ))
|
|||
16
Kreont
04.04.13
✎
16:24
|
ТС, сделай две консолид.базы :)
Одна пусть отвечает тому что есть и пусть меняется, а в другую данные только один раз закачивай, без обновления. И через квартал пусть сравнят че получилось и чему верить... |
|||
17
Fragster
гуру
04.04.13
✎
16:24
|
лучше отдельно записывать нужные наборы а ненужные не записывать
|
|||
18
Fragster
гуру
04.04.13
✎
16:25
|
а вообще бред какой-то
|
|||
19
samozvanec
04.04.13
✎
16:27
|
(9) на 8 марта дарить вазелин. если не дойдет, на следующее - мыло и веревку
|
|||
20
H A D G E H O G s
04.04.13
✎
16:29
|
(1) Скажи это управляемым формам, умник.
|
|||
22
H A D G E H O G s
04.04.13
✎
16:32
|
Мне кажется, это надо делать "наоборот".
|
|||
23
H A D G E H O G s
04.04.13
✎
16:33
|
ДокументОтраженияОбъект=СтрокаТЗ.ДокументОтражения.ПолучитьОбъект();
НачатьТранзакцию(); ДокументОтраженияОбъект.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный); СтрокаТЗ.Успешно=Истина; СтрокаТЗ.Пометка=Ложь; НаборЗаписей=РегистрыНакопления.ТоварыОрганизации.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(СтрокаТЗ.ДокументОтражения); НаборЗаписей.Прочитать(); ТаблицаЗаписей=НаборЗаписей.Выгрузить(); ОтменитьТранзакцию(); Если ТаблицаЗаписей.Количество()>0 Тогда НаборЗаписей=РегистрыНакопления.ТоварыОрганизации.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(СтрокаТЗ.ДокументОтражения); НаборЗаписей.Загрузить(ТаблицаЗаписей); НаборЗаписей.Записать(Истина); КонецЕсли; |
|||
24
H A D G E H O G s
04.04.13
✎
16:33
|
Господи, что сделали с форматированием кода.
|
|||
25
Defender aka LINN
04.04.13
✎
16:35
|
(20) А какая разница, какие у автора формы?
|
|||
26
H A D G E H O G s
04.04.13
✎
16:37
|
(25) УР не хранит ДополнительныеСвойства между серверными вызовами.
Или у него там в одном вызове? |
|||
27
Mickeleangelo
04.04.13
✎
16:41
|
(20) Если делать в модуле объекта, то без разницы, какие формы. Но, судя по (10), согласен с (18).
|
|||
28
Defender aka LINN
04.04.13
✎
16:41
|
(26) Аффтару при проведении надо, там формы вообще может не быть.
|
|||
29
DmitryPavlik
04.04.13
✎
16:50
|
Из форм здесь одна - форма обработки, из которой стартует корректировка.
Модуль объекта не надо трогать вообще. Возможно, как раз-таки следует ориентироваться на (23). |
|||
30
DmitryPavlik
04.04.13
✎
16:52
|
//ДокументОтраженияОбъект.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
// СтрокаТЗ.Успешно=Истина; // СтрокаТЗ.Пометка=Ложь; НаборЗаписей=РегистрыНакопления.ТоварыОрганизации.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(СтрокаТЗ.ДокументОтражения); НаборЗаписей.Прочитать(); ТаблицаЗаписей=НаборЗаписей.Выгрузить(); ОтменитьТранзакцию(); Если ТаблицаЗаписей.Количество()>0 Тогда НаборЗаписей=РегистрыНакопления.ТоварыОрганизации.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(СтрокаТЗ.ДокументОтражения); НаборЗаписей.Загрузить(ТаблицаЗаписей); НаборЗаписей.Записать(Истина); КонецЕсли; как-то так.... |
|||
31
Maxus43
04.04.13
✎
17:00
|
всё не читал. а спрашивали, нафига это?
|
|||
32
H A D G E H O G s
04.04.13
✎
17:03
|
(31) Иногда.
Душа. Просит. |
|||
33
Maxus43
04.04.13
✎
17:06
|
душа одинэсника может просить невпихуемого в здравый смысл, так что лучше пересмотреть сразу, а не выносить мозг
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |