Имя: Пароль:
1C
1С v8
Формирование проводок - код
0 plotn
 
17.02.15
16:01
Коллеги, добрый день.
В бухгалтерии (2.0) у документов почти всегда (или всегда?) можно посмотреть проводки, также есть возможность отредактировать их вручную, при большом желании. На основании каких то алгоритмов и настроек они формируются, как то настраиваются.

Вопрос - как это устроено в коде? Нужно сначала "крупными" мазками, т.е. примерная реализация. Общие модули или в каждом документе есть какая то своя функция, типа "сформировать проводки". На основе чего они формируются (табличные части наверное? сами реквизиты).

Сразу оговорюсь - мне хочется понять, как формируются проводки в одном из документе (и возможно исправить их также в коде) - РасчетЕСН, но думаю разумнее просто понять общий принцип.

Буду рад любым комментариям, спасибо.

PS: вопрос конечно несколько размыт, но тем не менее. До этого больше приходилось программировать "беспроводочные" конфигурации (торговли, альфа-авто).
1 salvator
 
17.02.15
16:03
>> " мне хочется понять, как формируются проводки в одном из документе"

Ставь точку останова в процедуре "ОбработкаПроведения" и вперед.
2 plotn
 
17.02.15
16:12
Ок, но тогда мне вот что еще непонятно. Ладно бы они формировались в обработке проведения каждый раз заново - был бы примерно алгоритм:

1. Удалить все проводки;
2. Сформировать все проводки;

А сейчас наверное как то так:

1. Проверить, если уже есть проводки и помечено, что изменение вручную, то ничего не делать;
2. Иначе - два пункта что выше;

Так?

И попутно спрошу - а хранятся они где? в регистре каком либо? Если да, то хорошо бы название.
3 pessok
 
17.02.15
16:14
РегистрБухгалтерии.Хозрасчетный
4 n0ther
 
17.02.15
16:15
регистр бухгалтерии, он там один... должен быть.. в типовой
5 salvator
 
17.02.15
16:15
(2) По сути, да, так. Хранятся в регистре бухгалтерии. А сколько их - зависит от фантазии разработчика.
6 MaXpaT
 
17.02.15
16:31
(2)
за ручные проводки отвечает реквизит документа "РучнаяКорректировка", и там проверка что-то типа
    Если ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект,Ложь) Тогда
        Возврат
    КонецЕсли;


1. Удалить все проводки;  
    обычно в документах стоит галочка "УдалятьДвиженияАвтоматически", но в некоторых может быть Процедура ОбработкаУдаленияПроведения(Отказ)

2. Сформировать все проводки;
Проводки формируются и пишутся в РегистрБухгалтерии.Хозрасчетный
Но обычно запись/расчет происходит где-нить в общих модулях, поэтому смотри в модуле документа процеру чё-нить типа СформироватьДвиженияПоРегистрамРегл  и от нее пляши
7 plotn
 
17.02.15
17:16
Коллеги, спасибо. Мне именно это и было нужно для "старта".