|
Логика ОбработкаПроведения | ☑ | ||
---|---|---|---|---|
0
lincore
08.11.12
✎
06:38
|
Заранее извиняюсь за видимо тупой вопрос, но всеже:
записи в регистр записываются по окончании ОбработкиПроведения? Ситуация: УТ. в обработке проведения документа идет движение по регистру накопления, и после этого идет проверка с запросом с участием этого же регистра, и проверка никогда не проходит, т.к. движений еще нету. так когда они появляются? в "послезаписи" в форме проверка уже корректно работает(видит движения), но документ проводит фоновое задание, так что нужно чтото вроде "Послепроведения" |
|||
1
Wobland
08.11.12
✎
06:39
|
>и после этого идет проверка с запросом
вот тут логику измени |
|||
2
perec1982
08.11.12
✎
06:48
|
(1) хотел сказать. Возможно проверку просто нужно делать в момент проведения учитывая данные регистра и документа.))
|
|||
3
Wobland
08.11.12
✎
06:51
|
(2) проведение - процедура формирования регистров. их нужно правильно сформировать, а не учесть ;)
|
|||
4
perec1982
08.11.12
✎
06:59
|
(3)Ну перед обработкой проведения можно проверить на условия например: Остатки товаров
|
|||
5
Живой Ископаемый
08.11.12
✎
07:02
|
2(4) А можно и после. Если получился минус, то отказываемся от проведения.
|
|||
6
Undefined vs NULL
08.11.12
✎
07:03
|
(0) все зависит от вас, одно дело через СоздатьНаборЗаписей и Записать, а другое через Движения
|
|||
7
perec1982
08.11.12
✎
07:04
|
(5)Кажется это реализованно в 11 УТ
|
|||
8
Песец
08.11.12
✎
07:04
|
(0) Возьми букварь, например от Радченко, там последовательность событий записи документа в картинках изображена.
|
|||
9
Живой Ископаемый
08.11.12
✎
07:05
|
(7) да.
|
|||
10
Песец
08.11.12
✎
07:08
|
"...в обработке проведения документа _идет_ движение по регистру накопления, и после этого _идет_ проверка..."
мой телепат свихнулся, пытаясь понять что куда у тебя идет :( |
|||
11
Trier
08.11.12
✎
07:20
|
ужно чтото вроде "Послепроведения"
_______________ Например, есть подписки на события. |
|||
12
Starhan
08.11.12
✎
07:23
|
можно записать движения прямо в обработке порведения.
твой случай иногда встречается в ЗУПе когда движения записывают, а потом их же берут для дальнейших расчетов. |
|||
13
lincore
08.11.12
✎
07:26
|
хотел не загружать - но вижу не получится :))
что имеем: поступление товаров на основе заказа поставщику, регистр ЗаказыПоставщикам.Остатки. Условие: если при проведении поступления остатки у его заказа = 0(с учетом проводимого поступления!), то состояние заказа переходит в "выполнен" проблема в том, что при проведении, несмотря на то что проверка в самом низу, данное поступление еще не повлияло на регистр. подписал на событие - в событии тоже движений документа еще нету. "ПослеЗаписи" формы - не канает, ибо фоновое задание при записи не заходит туда. итого - как сделать проверку? |
|||
14
lincore
08.11.12
✎
07:28
|
и кстати записи делаются стандартно, тоесть
Если Не Отказ Тогда ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам, ТаблицаПоВзаиморасчетам, ТаблицаПоРасчетам, Отказ, Заголовок); КонецЕсли; |
|||
15
Starhan
08.11.12
✎
07:28
|
ну ты же чото записываешь в регистр?. Откуда данные берешь для записи в регистр оттуда бери и для расчета выполнен ли заказ.
|
|||
16
Starhan
08.11.12
✎
07:29
|
ТаблицаПоТоварам есть же.
|
|||
17
lincore
08.11.12
✎
07:32
|
(15)
записываю стандартно, проверка была реализована так Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | РегЗаказы.КоличествоОстаток |ИЗ | РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаАнализа, ЗаказПоставщику = &Заказ) КАК РегЗаказы |ГДЕ | РегЗаказы.КоличествоОстаток <> 0"; проблема в том что реально движения появляются только в "ПослеЗАписи" а в обработках проведения движений нет. Извиняюсь если туплю, еще неопытный. |
|||
18
lincore
08.11.12
✎
07:36
|
(16)
Таблицу по товарам вижу, тоесть Вы предлагаете сделать проверку с участием этой таблицы и еще неуравновешенного регистра? |
|||
19
Песец
08.11.12
✎
07:42
|
(13) "...несмотря на то что проверка в самом низу..."
<сенсоред> |
|||
20
Starhan
08.11.12
✎
07:43
|
(18) Я не телепат зависит от что тебе конкретно нужно.
Если нужна точная таблица движений какая она будет в случае успешной записи в регистре. То используй Движения документа. Только сделай все в одной транзакции что бы если движения не получилсоь записать твои изменения тоже откатились. |
|||
21
cw014
08.11.12
✎
07:43
|
Попробуй записать движения
|
|||
22
Песец
08.11.12
✎
07:44
|
(19) ""ПослеЗаписи" формы - не канает, ибо фоновое задание при записи не заходит туда. "
Горячо! Продолжай наблюдения. |
|||
23
Starhan
08.11.12
✎
07:45
|
(21) я уже предалагл в 12 %) видимо не получается.
Надо объяснить как. |
|||
24
lincore
08.11.12
✎
07:49
|
(19)
господи, самый умный чтоли? я не раз написал что неопытный, лучше бы поправил, в противном случае зачем вообще время тратишь свое (23) ДвиженияПоРегистрам(..) что тогда делает? только формирует? как тогда записываются движения? в коде не увидел если чесно явной записи. еще раз извиняюсь за тупость |
|||
25
Живой Ископаемый
08.11.12
✎
07:51
|
короче. факт - в модуле проведения движения документа уже видны. это массово используется в типовых.
|
|||
26
lincore
08.11.12
✎
07:51
|
(23)
Движения.Записать(); просто?почему етого в модуле нету? платформа это сама делает после обработки проведения? |
|||
27
Starhan
08.11.12
✎
07:52
|
(26) примерно так. Почитай хотя бы Радченко.
|
|||
28
lincore
08.11.12
✎
07:54
|
(25) движения видны, а регистр накопления не изменился.
потому что движения не записаны еще? регистры изменяются после проведения? |
|||
29
cw014
08.11.12
✎
07:54
|
(23) Если пишутся движения документа:
// Записываем регистр для дальнейших расчетов Если Движения.МойРегистрНезаписанный.Модифицированность() тогда Движения.МойРегистрНезаписанный.Записать(); КонецЕсли; Если пишется отдельно созданный набор записей: // Записываем регистр для дальнейших расчетов Если НаборЗаписей.Модифицированность() тогда НаборЗаписей.Записать(); КонецЕсли; |
|||
30
cw014
08.11.12
✎
07:55
|
(23) Если не получается - то скорее всего руки не оттуда растут
|
|||
31
lincore
08.11.12
✎
07:55
|
(26) Спасибо! Радченко который
М.Г. Радченко, Е.Ю. Хрусталева 1С:Предприятие 8.2. Практическое пособие разработчика. Примеры и типовые приемы? тогда книжка уже заказана) |
|||
32
Starhan
08.11.12
✎
07:57
|
||||
33
lincore
08.11.12
✎
07:57
|
(30)
вот!спасибо движения записываются. но в стандартной обработке проведения я не увидел записи движений, тока формирование |
|||
34
Starhan
08.11.12
✎
07:58
|
(33) потмоучто без явной записи они записываются после обработки проведения ты уже правильно все понял.
|
|||
35
cw014
08.11.12
✎
07:58
|
(33) С тебя пиво
|
|||
36
lincore
08.11.12
✎
07:59
|
спасибо ребят!очень ценная инфа
|
|||
37
Песец
08.11.12
✎
08:01
|
(31) Да. Можешь оттуда скопипастить проверку остатков. Но если у тебя УТ, то сделай по образу и подобию типовой.
|
|||
38
cw014
08.11.12
✎
08:06
|
(36) Мэн явно проигнорировал пост (35)
|
|||
39
lincore
08.11.12
✎
08:10
|
неправда!) а город не Владивосток случайно?
|
|||
40
cw014
08.11.12
✎
08:11
|
(39) Chelyabinsk :)
|
|||
41
lincore
08.11.12
✎
08:19
|
ну тогда наверное только слова благодарности и плюс к карме :))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |