Имя: Пароль:
1C
1С v8
Где провести действия, с уже записанными движениями после ОбработкаПроведения?
,
0 Pentosh
 
22.02.17
14:35
Здравствуйте, ситуация следующая.

Есть проблема, сделал ее своими руками как грамотно разрулить теперь не знаю.
Док. Установка цен номенклатуры, рассчитываю цены, но есть позиции которые рассчитываются как сумма из других элементов. В связи с чем сделал следующие: рассчитал отдельные части, записал движение, и потом для составных частей (уже с учетом изменений цен отдельных частей) начал считать суммы (т.е. цикл с запросом состав и ценами (срезпоследних) и сумма отдельных частей в составе), затем стандартная запись после ОбработкаПроведения.

В результате, ловлю 2-ю запись в регистр довольно большого набора данных.
Как можно этого избежать, подскажите, пожалуйста? (если на этот вопрос есть ответ, то можно дальше не читать)

Но это еще пол беды, у меня появилась задача, на основе этого набора записей еще кое какую инфу генерировать сразу после записи документа. Попробовал в подписке повесить на событие "ПриЗаписиНабораДанных", но т.к. у меня 2-я запись происходит, становится все очень плохо, в связи с чем вопрос:
Можно ли как то после проведения документа (полной записи его движений), вклинится в процесс и сделать свои дела с набором данных по документу?
1 DrShad
 
22.02.17
14:37
конечно можно - делай подписку на событие ОбработкаПроведения и меняй там что хочешь
2 DrShad
 
22.02.17
14:40
[Док. Установка цен номенклатуры, рассчитываю цены, но есть позиции которые рассчитываются как сумма из других элементов. В связи с чем сделал следующие: рассчитал отдельные части, записал движение, и потом для составных частей (уже с учетом изменений цен отдельных частей) начал считать суммы (т.е. цикл с запросом состав и ценами (срезпоследних) и сумма отдельных частей в составе), затем стандартная запись после ОбработкаПроведения. ]

лучше все сразу рассчитать и записать абсолютные цифры
3 Pentosh
 
22.02.17
14:47
(1) Спасибо, а в ней подписке не будет еще одной записи набора?

(2) Вот как сделать чтобы "все сразу" пол-года назад не сообразил, сейчас вот начало вылазить.
Есть модуль, в нем есть фасад и каркас, я беру меняю цену каркаса, провожу док, рассчитываю цену каркаса, узнаю (запросом) какие модули имеют этот каркас, для всех этих модулей делаю запрос суммируя их состав, с учетом текущей цены каркаса. Вот как это сделать пока не сообразил.
4 DrShad
 
22.02.17
14:49
(3) зависит от того как напишешь - можно перезаписать весь набор, а можно дописать набор
5 Pentosh
 
22.02.17
14:52
(4) не, мне набор нужно только обойти в цикле, ничего в нем менять не буду, т.е. мне нужен готовый набор данных на его основе делаю нужную инфу и все, т.е. записей набора с ценами происходить больше не должно.
Т.е. мне бы подошла процедура модуля формы "ПриЗаписиНаСервере", но нужно чтоб это на сервере было, без привязки к формам.
6 Pentosh
 
22.02.17
15:23
Да, проверил, подписка на ОбработкаПроведения это не то что надо, но спасибо за вариант.
7 Cyberhawk
 
22.02.17
15:25
Когда логика формирования части движений документа опираюется на движения этого же документа - это плохой тон
8 Cyberhawk
 
22.02.17
15:25
(6) "подписка на ОбработкаПроведения это не то что надо" // Чем не устраивает?
9 Pentosh
 
22.02.17
15:32
(7) тут логика не формирования движения, а подготовка данных к выгрузке (цены выгружать надо на сайт)
(8) тем что сначала подписка происходит, а потом уже запись идет, а мне нужно событие после записи данных.
попробую по другому объяснить:
Мне надо чтобы в конце проведения документа, когда все движения уже готовы, используя эти движения сформировать Json-чик с рассчитанными ценам, в нужном мне формате.
10 DrShad
 
22.02.17
15:36
(9) и что мешает получить движения и выкинуть их в JSON массив? а вот при записи их еще нет
11 Pentosh
 
22.02.17
15:40
(10) ничего не мешает, только это событие нужно как то привязать к документу, вот и спрашиваю: на какое событие повесить формирование json-а, чтоб все движения уже были готовы, транзакция документа еще не закончилась, и не связываться с формой?
12 DrShad
 
22.02.17
15:40
[Мне надо чтобы в конце проведения документа, когда все движения уже готовы, используя эти движения сформировать Json-чик с рассчитанными ценам, в нужном мне формате]

и в такой постановке нахрена конец проведения? просто бери записи регистра в любой необходимый момент и выгружай
13 DrShad
 
22.02.17
15:40
(11) ОбработкаПроведения же
14 Pentosh
 
22.02.17
15:42
В "ОбработкаПроведения" еще движения не готовы (не записались еще, на незаписанных думаю хорошо делать какие то другие данные.
В "ПриЗаписиНаСервере", которая в форме, не хочу, ибо в форме.
15 Pentosh
 
22.02.17
15:44
(14) "думаю хорошо" = "думаю не хорошо"

(13) ну вот только если на не записанных данных основываться, но существует опасность что они не запишутся и тогда у меня документ будет просто так долго висеть.
16 DrShad
 
22.02.17
15:45
(14) билять возьми и посмотри отладчиком готовы или нет

сто лет так делаем и всех готовы, а именно у тебя нет
17 DrShad
 
22.02.17
15:46
(15) после выполнения ОбработкиПроведения есть еще какие-то риски что документ не запишется!? с какого?
18 Pentosh
 
22.02.17
15:53
(16) не нервничайте, пожалуйста, не хотел вас разозлить.
В конце процедуры "ОбработкаПроведения" движения готовы, но не записаны же еще окончательно (если не вызвать записать, конечно), верно?

(17) после выполнения записались, но вы мне говорите делать что я хочу в ОбработкаПроведения, а не после нее, понимаете о чем я?
19 Pentosh
 
22.02.17
15:54
(17) Но я вашу позицию услышал, спасибо большое, скорее всего так и придется сделать, но я открыт для предложений.
20 Лефмихалыч
 
22.02.17
15:54
можно регламентным заданием обрабатывать движения, которые должны быть обработаны. 1С это в ERP использует на всю длину, значит и людям можно.
21 Pentosh
 
22.02.17
15:57
(20) спасибо, как вариант.
22 Hmster
 
22.02.17
16:04
(18) а ПриЗаписи() не устраивает?
23 DrShad
 
22.02.17
16:05
(18) я понимаю о чем вы, но если дошло до подписки ОбработкаПроведения, то все проверки уже пройдены и никаких препятствий для записи набора нет, кроме как в самой подписке Отказ в истину выставить
24 DrShad
 
22.02.17
16:05
(22) при записи нет движений
25 Hmster
 
22.02.17
16:08
(24) вы их смотрите через ДокОбъект.Движения или НаборЗаписей считываете?
26 Лефмихалыч
 
22.02.17
16:09
(25) у документа, который ранее не проводился, движений ПриЗаписи не будет ни там, ни сям
27 DrShad
 
22.02.17
16:09
(25) без разницы
28 Hmster
 
22.02.17
16:25
Тогда ПередЗаписью() в самом наборе и добавляй в набор что хочешь, только желательно убедиться что запись один раз происходит.
Так же можно и ПриЗаписиНабораДанных использовать, в этом случае ДополнительныеСвойства используй чтобы твою запись не обрабатывал
29 DrShad
 
22.02.17
16:26
(28) слив засчитан
30 Cyberhawk
 
22.02.17
18:02
(9) "надо чтобы в конце проведения документа, когда все движения уже готовы, используя эти движения сформировать Json-чик с рассчитанными ценам, в нужном мне формате" // При групповом перепроведении документов что должно происходить?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.