Построчное проведение документа #438679


#0 by Samoyloff
Есть такая интересная задача. Допустим существует документ с табличной частью с реквизитами Статус,Измерение1,Ресурс1. Реквизит статус может принимать значение "Проведена" и "Не проведена". Проводится этот документ соответственно по регистру остатков в котором есть Измерение1 и Ресурс1(ну допустим делает движение приход). Логика проведения простая: если реквизит Статус у строки равен "Проведена", то эта строка движения по регистру делает, если "Не проведена", то не делает. Хочется сделать так, чтобы при изменении строк уже проведенного документа и при повторном проведении, не переписывался весь набор записей по данному регистратору, а изменялись только нужные нам записи(по тем строкам, которые поменялись с момента прошлого проведения). И если со случаем, когда статус строки изменяется с "Не проведена" на "Проведена" всё просто - отключаем автоматическое удаление движений и просто добавляем новое движение, то что делать с обратной операцией, когда надо удалить движение, и тем более с ситуацией когда у строки поменялся какой-нибудь реквизит(ну Измерение1 допустим), при статусе "Проведена", я совершенно не могу придумать. А очень хочется. Не подскажете какую-нибудь идею?
#1 by ТелепатБот
#2 by hhhh
всё равно движения будут переписываться полностью, просто перезаписывай движения по всей табличной части, а старые движения стирай. У 1С-ки всего два варианта: либо дополняешь набор, либо полностью переписываешь. Поменять одну строчку не получится.
#3 by Samoyloff
очень и очень жаль. Необходимость довольно сурьёзная. Но всё-равно спасибо за ответ!
#4 by IamAlexy
и в чем немыслимость задачи? первое что приходит в голову: ээээ в табличной части хранить по мимо данных ссылки на документ, основная роль которого будет в том что он РЕГИСТРАТОР для движений по регистрам основного документа. каждая строка - отдельный регистратор. При проведении - анализировать необходимость движений по строке и если она возникла - проводить регистратор а данные брать из строки. пример - документ "корректировка записей регистров" или операция из типовых.
#5 by hhhh
ну тогда нужно назвать вещи своими именами: это у него будет не табличная часть, а журнал документов. В нем и отметки есть "Проведено"- "Не проведено". То есть в очередной раз велосипед изобретается.
#6 by hhhh
в документе "корректировка записей регистров" тоже все строки сначала стираются, а потом записываются заново. Нет там режима записи одной строчки.
#7 by IamAlexy
про корректировку имелось в виду что это документ роль которого состоит только в том что он является регистратором.. больше никакой смысловой нагрузки у него нет... причем тут журнал документов? у него будет отдельный документ, например типовой счет на оплату покупателю. в табличной части товары он добавит колонку с регистратором и флагом "проводитьстроку". добавит в документ проведение и при проведении будет анализировать состояние флага в строке и по необходимости будет проводить нужные строки. или повесит вызов проведение к функции при установке флага... или еще как сделает.. с точки зрения учета у него будет единая сущность - документ описывающий хозяйственную операцию.. а с точки зрения системы - документ будет влиять на остатки и обороты дискретно  по мере установки соответствующих флагов в соответствующих строках... правда пока не придумал накой хрен это нужно...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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