Изменить программно проводки документа

Новая тема
Показывать по 10 20 40 сообщений
Здравствуйте!



Есть следующая проблема:



Документ до определенной даты делал проводки в дебет счета с ПЕРВЫМ значением субконто.

После даты Х,т.е. после того, как изменили модуль документа, документ стал делать проводки в дебет счета со ВТОРЫМ значением субконто.



Как программно изменить значение субконто с ПЕРВОГО на ВТОРОЕ у документов ранее даты Х, не перепроводя их (ПРЕПРОВОДИТЬ НЕЛЬЗЯ)!!!



Ручной способ я знаю, но он очень долог :(
В бухгалтерии документ создает операцию, в которой уже создаются проводки.

Таким образом можно выбрать операции до даты Х, выбрать их проводки и менять в них что угодно. При перепроведении соответствующих документов наши изменения пропадут.
>В бухгалтерии документ создает операцию, в которой уже создаются проводки.

Это понятно :)



>Таким образом можно выбрать операции до даты Х, выбрать их проводки и менять в >них что угодно.

КАК менять? Руками? Или программно? Руками - можно, но очень не хочется 700 проводок перебивать руками.

ПРОГРАММНО? При изменении реквизита проводки - ошибка "Нельзя изменять записанные проводки"

"Быстренько написал внешнюю обработку с одной процедурой:



Процедура Сформировать()

Опер = СоздатьОбъект("Операция");

Опер.ВыбратьОперации(,РабочаяДата());//сюда ваша дата Х :)

НачатьТранзакцию(); //чтобы быстрее

Пока Опер.ПолучитьОперацию() = 1 Цикл

   Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку() = 1 Цикл

   Опер.Дебет.Субконто(1,""""); //сюда не знаю что ставить



КонецЦикла;

Опер.Записать()

КонецЦикла;

   ЗафиксироватьТранзакцию();

КонецПроцедуры



У меня работает, удачи!"
"На строке "Опер.Дебет.Субконто(1,""""); " выдается ошибка:

"Нельзя изменять записанные проводки!".



Проводки сделаны ДОКУМЕНТОМ, а не операцией, введенной вручную!!!



Спасибо за помощь, но ни фига не работает :("
Эта штука работает только для Опер = СоздатьОбъект(...)

Если Мы нашли документ, получили его операцию (не выборку), тогда действительно нельзя изменять записанные проводки.

В данном случае необходимо делать выборку именно по Операциям, проверять Опер.Документ = ... или Опер.Документ.Вид() = ..., потом выбирать проводки и менять Субконто. Работать будет!
"Или если Вам удобнее

Опер1 = Док.Операция;

Опер = СоздатьОбъект("Операция");

Опер.Найти(Опер1);

Опер.ВыбратьПроводки();

и т.д."
"Держите код:

Процедура Сформировать()

Опер=СоздатьОбъект("Операция");

Опер.ВыбратьОперацииСПроводками(ДатаНач,ДатаКон,"20","10.7");

Пока Опер.ПолучитьОперацию()=1 Цикл

Если Опер.Документ.Вид()="ВыпускГотовойПродукции" Тогда

НачатьТранзакцию();

Опер.ВыбратьПроводки();

Пока Опер.ПолучитьПроводку()=1 Цикл

Если (Опер.Дебет.Счет=СчетПоКоду("20"))И((Опер.Кредит.Счет=СчетПоКоду("10.7")) Тогда

    Если Строка(Опер.Дебет.ВидыНоменклатуры)="Монтаж товара" Тогда

      _ВН = СоздатьОбъект("Справочник.ВидыНоменклатуры");

      ВН = _ВН.ТекущийЭлемент();

      Опер.Дебет.Субконто(1,ВН); //В ЭТОЙ СТРОКЕ СЛЕТАЕТ!!!!

    КонецЕсли;    

КонецЕсли;

КонецЦикла;

Опер.Записать();

ЗафиксироватьТранзакцию();

КонецЕсли;

КонецЦикла;

КонецПроцедуры



ИМХО, НЕВОЗМОЖНО программно поменять значения субконто в проводках операции, созданной документом, только руками :-("
".......

_ВН = СоздатьОбъект("Справочник.ВидыНоменклатуры");

ВН = _ВН.ТекущийЭлемент();

.......



А вылетает не из-за того что _BH не позиционирован?



Полностью я в вашей проблеме не разбирался (так что просьба сильно не пинать), но может грабли в этом? "
"пардон, а при переходе с 4.2 на 4.4 Вы хотите сказать что документы Закрытие месяца (проводки по 69.3) перепроводились руками, а не програмно подставлялся сначало П69.3, который потом на 69.3.1 и 69.3.2 менялся....

Ваш код у меня слетел на Опер.Записать();

Операция не выбрана!



не хватает след.

Опер=СоздатьОбъект("Операция");

Опер1=СоздатьОбъект("Операция");

Опер.ВыбратьОперацииСПроводками(ДатаНач,ДатаКон,"20","10.7");

Пока Опер.ПолучитьОперацию()=1 Цикл

Если Опер.Документ.Вид()="ВыпускГотовойПродукции" Тогда

НачатьТранзакцию();

Опер1.НайтиОперацию(Опер.Документ);

...

а далее как у Вас, но с Опер1



подглядите "ОбновлениеИБ""
Читают тему
(гостей: 1)

Быстрый переход