Изменить программно проводки документа
Показывать по
сообщений
- 1
- 2
25.02.2004
18:03
#1
Здравствуйте!<br><br><br><br>Есть следующая проблема:<br><br><br><br>Документ до определенной даты делал проводки в дебет счета с ПЕРВЫМ значением субконто.<br><br>После даты Х,т.е. после того, как изменили модуль документа, документ стал делать проводки в дебет счета со ВТОРЫМ значением субконто.<br><br><br><br>Как программно изменить значение субконто с ПЕРВОГО на ВТОРОЕ у документов ранее даты Х, не перепроводя их (ПРЕПРОВОДИТЬ НЕЛЬЗЯ)!!!<br><br><br><br>Ручной способ я знаю, но он очень долог

26.02.2004
05:39
#2
В бухгалтерии документ создает операцию, в которой уже создаются проводки.<br><br>Таким образом можно выбрать операции до даты Х, выбрать их проводки и менять в них что угодно. При перепроведении соответствующих документов наши изменения пропадут.
26.02.2004
10:20
#3
>В бухгалтерии документ создает операцию, в которой уже создаются проводки. <br><br>Это понятно
<br><br><br><br>>Таким образом можно выбрать операции до даты Х, выбрать их проводки и менять в >них что угодно. <br><br>КАК менять? Руками? Или программно? Руками - можно, но очень не хочется 700 проводок перебивать руками.<br><br>ПРОГРАММНО? При изменении реквизита проводки - ошибка "Нельзя изменять записанные проводки"<br><br>

26.02.2004
10:57
#4
"Быстренько написал внешнюю обработку с одной процедурой:<br><br><br><br>Процедура Сформировать()<br><br> Опер = СоздатьОбъект("Операция");<br><br> Опер.ВыбратьОперации(,РабочаяДата());//сюда ваша дата Х
<br><br> НачатьТранзакцию(); //чтобы быстрее<br><br> Пока Опер.ПолучитьОперацию() = 1 Цикл<br><br> Опер.ВыбратьПроводки();<br><br> Пока Опер.ПолучитьПроводку() = 1 Цикл<br><br> Опер.Дебет.Субконто(1,""""); //сюда не знаю что ставить<br><br> <br><br> КонецЦикла;<br><br> Опер.Записать()<br><br> КонецЦикла;<br><br> ЗафиксироватьТранзакцию();<br><br>КонецПроцедуры<br><br><br><br>У меня работает, удачи!"

26.02.2004
11:16
#5
"На строке "Опер.Дебет.Субконто(1,""""); " выдается ошибка:<br><br>"Нельзя изменять записанные проводки!".<br><br><br><br>Проводки сделаны ДОКУМЕНТОМ, а не операцией, введенной вручную!!!<br><br><br><br>Спасибо за помощь, но ни фига не работает :("
26.02.2004
12:08
#6
Эта штука работает только для Опер = СоздатьОбъект(...)<br><br>Если Мы нашли документ, получили его операцию (не выборку), тогда действительно нельзя изменять записанные проводки.<br><br>В данном случае необходимо делать выборку именно по Операциям, проверять Опер.Документ = ... или Опер.Документ.Вид() = ..., потом выбирать проводки и менять Субконто. Работать будет!
26.02.2004
12:13
#7
"Или если Вам удобнее <br><br>Опер1 = Док.Операция;<br><br>Опер = СоздатьОбъект("Операция");<br><br>Опер.Найти(Опер1);<br><br>Опер.ВыбратьПроводки();<br><br>и т.д."
26.02.2004
12:30
#8
"Держите код:<br><br>Процедура Сформировать()<br><br>Опер=СоздатьОбъект("Операция");<br><br>Опер.ВыбратьОперацииСПроводками(ДатаНач,ДатаКон,"20","10.7");<br><br>Пока Опер.ПолучитьОперацию()=1 Цикл<br><br>Если Опер.Документ.Вид()="ВыпускГотовойПродукции" Тогда<br><br>НачатьТранзакцию();<br><br>Опер.ВыбратьПроводки();<br><br>Пока Опер.ПолучитьПроводку()=1 Цикл<br><br>Если (Опер.Дебет.Счет=СчетПоКоду("20"))И((Опер.Кредит.Счет=СчетПоКоду("10.7")) Тогда<br><br> Если Строка(Опер.Дебет.ВидыНоменклатуры)="Монтаж товара" Тогда<br><br> _ВН = СоздатьОбъект("Справочник.ВидыНоменклатуры"); <br><br> ВН = _ВН.ТекущийЭлемент();<br><br> Опер.Дебет.Субконто(1,ВН); //В ЭТОЙ СТРОКЕ СЛЕТАЕТ!!!!<br><br> КонецЕсли; <br><br>КонецЕсли; <br><br>КонецЦикла; <br><br>Опер.Записать();<br><br>ЗафиксироватьТранзакцию();<br><br>КонецЕсли; <br><br>КонецЦикла; <br><br>КонецПроцедуры<br><br><br><br>ИМХО, НЕВОЗМОЖНО программно поменять значения субконто в проводках операции, созданной документом, только руками :-("
26.02.2004
20:45
#9
".......<br><br>_ВН = СоздатьОбъект("Справочник.ВидыНоменклатуры"); <br><br>ВН = _ВН.ТекущийЭлемент(); <br><br>.......<br><br><br><br>А вылетает не из-за того что _BH не позиционирован?<br><br><br><br>Полностью я в вашей проблеме не разбирался (так что просьба сильно не пинать), но может грабли в этом? "
26.02.2004
23:08
#10
"пардон, а при переходе с 4.2 на 4.4 Вы хотите сказать что документы Закрытие месяца (проводки по 69.3) перепроводились руками, а не програмно подставлялся сначало П69.3, который потом на 69.3.1 и 69.3.2 менялся....<br><br>Ваш код у меня слетел на Опер.Записать(); <br><br> Операция не выбрана!<br><br><br><br>не хватает след.<br><br>Опер=СоздатьОбъект("Операция"); <br><br>Опер1=СоздатьОбъект("Операция"); <br><br>Опер.ВыбратьОперацииСПроводками(ДатаНач,ДатаКон,"20","10.7"); <br><br>Пока Опер.ПолучитьОперацию()=1 Цикл <br><br>Если Опер.Документ.Вид()="ВыпускГотовойПродукции" Тогда <br><br>НачатьТранзакцию(); <br><br>Опер1.НайтиОперацию(Опер.Документ);<br><br>...<br><br>а далее как у Вас, но с Опер1<br><br><br><br>подглядите "ОбновлениеИБ""
- 1
- 2
Читают тему
(гостей: 1)