Завел забалансовый счет "ГЗ", активно-пассивный, с тремя аналитиками, как у 361 и 681-го.

Завел контсанту "ИспользоватьГЗ" - ее нуждно выставить в "Да" на 31.12.2002

в глобальнике завел функицию:

Функция ЗавестиОстаткиПоГЗ(Год, Месяц, День)

То есть нужно через Сервис/Табло ее вызвать вот так:

ЗавестиОстаткиПоГЗ(2002, 12, 31)

она заведет остатки по "ГЗ" учитывая, что СКД361 - это дебитовый оборот по "ГЗ", а СКК681 - минус дебитовый оборот по "ГЗ" (чтобы было кретиовое сальдо)

В модуле проведения документа "счет" вставлено создание прводок по этому счету - таким образом создаются дебитовые обороты (то есть гипотетические начисления)

А в процедуре глобальника



Процедура глобальнаяОбработкаПроведенияДокумента(Конт,__ПараметрПроведения__) Экспорт

Если Конт.ДатаДок<?(ПустоеЗначение(Пользователь.ДатаСтоп)=1,ДатаЗапретаРедактирования(),Пользователь.ДатаСтоп) тогда //Лайк є Днепр, ша-ла-лу-ла

//HOV============

Если (Конт.Вид() = "Договор" или (Конт.Вид() = "Корректировка" или (Конт.Вид() = "Дислокация" Тогда

//нихрена не делаем. Сколько можно исправлять. Дата запрета относительно тек. времени,

//а договора и дислокации от какого числа. Что за народ??? Если еще кто-нибудь такое

//"смастерит" - дам в голову (и очень больно, чтобы в след. раз думала).

Иначе

СтатусВозврата(0);

КонецЕсли;

Иначе

//Октябрьский Молот, январь 2003, [email]borges@ua.fm[/email]

//Нормально, можем проводить

ГЗ=СоздатьОбъект("Счет"

Если (ГЗ.НайтиПоКоду("ГЗ"" >=1) и (Константа.ИспользоватьГЗ.Получить(Конт.ДатаДок)=Да) Тогда

тзГЗ=СоздатьОбъект("ТаблицаЗначений"

тзГЗ.НоваяКолонка("Клиент", "Справочник.Клиенты"" >;

тзГЗ.НоваяКолонка("Заказ", "Документ"" >;

тзГЗ.НоваяКолонка("ОбъектОхраны", "Справочник.ОбъектОхраны"" >;

тзГЗ.НоваяКолонка("Сумма", "Число",12,2);

//ТЗПартии.НоваяКолонка("Цена", "Число",12,2);

//ТЗПартии.НоваяКолонка("ЦенаПолная", "Число",12,5);

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

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

Если Лев(Конт.Операция.Кредит.Счет.Код,3)="681" Тогда

тзГЗ.НоваяСтрока();

тзГЗ.Клиент=Конт.Операция.Кредит.Субконто(1);

тзГЗ.Заказ=Конт.Операция.Кредит.Субконто(2);

тзГЗ.ОбъектОхраны=Конт.Операция.Кредит.Субконто(3);

тзГЗ.Сумма=Конт.Операция.Сумма;

КонецЕсли;

КонецЦикла;

Если тзГЗ.КоличествоСтрок()>0 Тогда

тзГЗ.ВыбратьСтроки();

Пока тзГЗ.ПолучитьСтроку()=1 Цикл

Проводка(Контекст,,"ГЗ",тзГЗ.Сумма,"Погашение гипотетической задолженности ",, ,,,

тзГЗ.Клиент,тзГЗ.Заказ,тзГЗ.ОбъектОхраны, ,,"ГЗ"" >;

КонецЦикла;

Конт.Операция.Записать();

КонецЕсли;

КонецЕсли;

//

КонецЕсли;

// глобальная переопределенная процедура ОбработкаПроведения

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



Дописал код, который будет "закрывать" гипотетическую задолженность - в том случае, если документ сделает проводки по кредиту 681-му счету