Очистить запись регистра накоплений #738017


#0 by b7music
Всем привет! Подскажите, пожалуйста. Есть документ заказ-наряд. У него 3 статуса заказа В Работе Выполнен Отменен В документ добавлен реквизит "ЧистаяПрибыль". Указывается в каждом документе индивидуально. После проведения документа, независимо от статуса заказа, данные падают в регистр накопления "ЧистаяПРибыль". Необходимо чтобы при статусе "Отменен" данные в регистр не попадали, а если есть существующие, то удалялись. Пробую сделать через подписку на событие Но не работает :( В модуле объекта указано движение
#1 by kosts
Очищать специально не надо. Т.к. при каждом проведении движения так и так очищаются. Надо при статусе отменен не допустить записи в регистр. Ну конечно что этот регистр является движением, а не отдельным.
#2 by b7music
Подробнее "регистр является движением, а не отдельным."
#3 by anatoly
писать в РН через попдиску - это вредительство. если только в РС - вести логи изменений. документ является регистратором этого регистра?
#4 by sFAQer
Подписка нужна на событие ОбработкаПроведения а не перед записью, в перед записью у тебя ещё не сформированы движения...
#5 by b7music
Да, документ является регистратором. Регистр сам делал.
#6 by sFAQer
Подписка не пишет, а очищает движения у дока, перечитай
#7 by kosts
В процедуре обработка проведения поставь условие если    Движения.ЧистаяПрибыль.Записывать = Истина; Если Не отменен Тогда
#8 by D_E_S_131
"Т.к. при каждом проведении движения так и так очищаются." — а для чего тогда сделано свойство "Удаление движений" у документа?
#9 by Nuobu
Если выставить галочку "Не удалять автоматически", то движения, без кнопки "Удаление движений" останутся. Более того, при определённых обстоятельствах, могут появиться новые)).   Можно насильно очистить Движения.ЧистаяПрибыль.Очистить.   Это чтоб наверочку.
#10 by b7music
Работает, но суть в том, что как такового "Отменен" нету.   Если Не СостояниеЗаказа.СтатусЗаказа = Перечисления.СтатусыЗаказов.ВРаботе и Закрыт = Истина   КонецЕсли; Так он теперь и при статусе Вработе делает тож самое что и в статусе отменен.
#11 by kosts
Создай новую функцию СоздаватьДвижения и в ней уже накручивай логику отменен он там или не отменен, в работе или закрыт. К первоначальному вопросу уже не относиться.
#12 by b7music
Что-то не допру :(
#13 by anatoly
ну очистка как бы тоже запись. в любом случае в подписке такое делать - зло. особенно если регистр подчиненный.
#14 by kosts
Не нужно удалять, надо всего лишь не создавать
#15 by b7music
Теперь ругается {Документ.ЗаказПокупателя.МодульОбъекта(1539)}: Преобразование значения к типу Булево не может быть выполнено     Если Перечисления.СтатусыЗаказов.ВРаботе И Закрыт = Истина Тогда
#16 by Mankubus
Перечисления.СтатусыЗаказов.ВРаботе И Перечисления.СтатусыЗаказов.Закрыт
#17 by b7music
Все равно таже самая ошибка. В Перечеслениях нет Закрыт.
#18 by b7music
Уже весь моск взорвал. Если делаю так:     Если ЭтотОбъект.СостояниеЗаказа = "ВРаботе" И ЭтотОбъект.Закрыт = Истина     То он почему то возвращает истину, хотя должен ложь. ЧЯДН?
#19 by ДенисЧ
У тебя ссылка на справочник никогда не будет равна строке
#20 by b7music
Через перечисления не пашет, через справочник тоже, так как же быть?
#21 by kosts
В каком смысле не пашет?... Если СтатусЗаказа = Перечисления.СтатусыЗаказов.ВРаботе Тогда
#22 by b7music
Емае! Сделал так     Если ЭтотОбъект.СостояниеЗаказа.СтатусЗаказа = Перечисления.СтатусыЗаказов.ВРаботе И ЭтотОбъект.Закрыт = Истина     Все заработало! Большое всем спасибо!
#23 by kosts
а как же " Необходимо чтобы при статусе "Отменен" данные в регистр не попадали", а тут получается при работе не попадут
#24 by b7music
При работе попадут. Если состояние ЗН в работе, то тогда Закрыт = Ложь.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С