Имя: Пароль:
1C
 
Логика ОбработкаПроведения
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
ну тогда наверное только слова благодарности и плюс к карме :))
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн