v7: Программное изменение проводок операции введенной вручную. #392143


#0 by EuVod
Раньше с бухией дело не имел, поэтому моет глупый вопрос: Имеется куча операций созданных программно – документ-операция. В них куча проводок, в которых неправильно заполнена аналитика. Нужно перебрать операции по определенным критериям и исправить эти проводки. Интерактивно ничто не мешает зайти в форму операции, перебить аналитики и записать. А вот программно нельзя изменить записанную проводку, если верить сообщению об ошибке выскакивающему на строке вида: Опер.Дебет.Субконто(ТЗСоответствия.НомерСубподч, НовыйОбъектСубконто); где операция спозиционирована на исправляемой проводке и изменены её реквизиты. (кстати наткнулся где-то в инете, что когда-то, видимо на стром релизе такие штуки проканывали) Ничего не придумал лучше чем такой алгоритм: Перебираем проводки текущей операции в выборке Если проводку надо корректировать заносим ее номер в список проводок к удалению. Создаем новую проводку (Новая) и копируем реквизиты старой+исправленное субконто После перебора всех проводок (по счетчику до количества проводок на момент начала цикла) позиционируемся в порядке убывания на проводки из списка удаляемых и делаем УдалитьПроводку Что-то сложновато и громоздко. Может я чего не вижу поизящнее, подскажите плиз?
#1 by EuVod
ап?
#2 by Diman_Kr
Кури: СоздатьОбъект("Операция")
#3 by EuVod
ну создам его. по чтению все ясно. а изменить проводку - это только добавить новую, грохнуть старую?
#4 by Diman_Kr
Да делай с существующими что захочешь. Зачем грохать то?
#5 by Diman_Kr
+
#6 by EuVod
да в этом проблем нет. (в том чтобы пребрать, на я ж написал
#7 by EuVod
млин... сорри. да в этом проблем нет. (в том чтобы пребрать, найти, спозиционироваться) я ж написал - выдает исключение Нельзя изменять записанные проводки. Вот и как я могу "..Да делай с существующими что захочешь..." - если не делает?
#8 by Diman_Kr
Вот Рабочий код. Не пойму в чем проблема?
#9 by Diman_Kr
+ Причем для любого вида доков.
#10 by EuVod
прикольно. разница только в том, что у тебя пер.Дебет.Субконто(ВидыСубконто.Основание,Договор) - по виду субконто, а у меня идет обращение по номеру субконто... других различи ней вижу...
#11 by Diman_Kr
Ну тогда не знаю. Должно работать.
#13 by EuVod
лана , щаз интересу ради попробую через ВидСубконто, а если не получится я уже сваял вариант скопировать, сиправить-удалить в любом случае спасибо
#14 by Diman_Kr
Ха!!! ВыбратьОперацииСПроводками: не катит!!! В этом и отличие!
#15 by EuVod
упс.. поясни детальнее а в чем разница?
#16 by EuVod
т.е. единственный вариант не перебирать все опреации подряд - через бухитоги?
#17 by Diman_Kr
Точно как правильно объяснить не знаю, но предполагаю, что все дело в фильтре.. Нет прямого позиционирования на объект Операция, и проводка. Железный вариант, остается только условия нужные на проводку наложить. А метод  ВыбратьОперацииСПроводками для отчетов!!!
#18 by mc lammer
перебирай операции как есть .. для корректировки операции создай отдельный объект Опер2.НайтиОперацию(Опер.Документ); ... и т.д.
#19 by EuVod
ясно. спасибо. щаз покурим слегка БухИтоги (когда-то я какиет-о запросы ваял) - придется только всякий раз проверять операция порождена доком или введена вручную. все остальное пожалуй можно запросом ограничить.
#20 by EuVod
- точно пожалуй более ленивый вариант - почти ничего переделывать не придется:)
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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