Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Меркулова_Пособие_РазработкаУправляемыхПриложен...doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
18 Мб
Скачать
☆

11.5. Примеры формирования проводок в модуле документа

Пример 1.

Модуль анализирует сумму остатки на счете «СчетАнализа» для контрагента «Контрагент» и его договора «ДоговорКонтрагента» на дату «Дата» (эти реквизиты расположены в форме документа) и списывает этот долг на счет с именем «ДолгиКонтрагентов».

Замечание. Виртуальная таблица источника запроса (рис.11.16.)

Рис.11.16. Структура виртуальной таблицы «Остатки» регистра бухгалтерии

ПроводкиБУ = Движения.Хозрасчетный;

Запрос = Новый Запрос();

Запрос.УстановитьПараметр("Период" , Дата); Запрос.УстановитьПараметр("Контрагент" , Контрагент);

Запрос.УстановитьПараметр("Договор" , ДоговорКонтрагента); Запрос.УстановитьПараметр("Счет" , СчетАнализа);

Запрос.Текст = "

|ВЫБРАТЬ

| Субконто1,

| Субконто2,

| СуммаОстатокДт + КАК Задолженность

|ИЗ

| РегистрБухгалтерии.Хозрасчетный.Остатки(&Период, Счет = &Счет, , (Субконто1 = &Контрагент)И (Субконто2 = &Договор)

| ) КАК ХозрасчетныйОстатки";

ВыборкаОстатков = Запрос.Выполнить().Выбрать();

Если ВыборкаОстатков.Следующий() Тогда

Задолженность = ВыборкаОстатков.Задолженность;

Иначе

Задолженность = 0;

КонецЕсли;

Если Задолженность > 0 Тогда

ПроводкиБУ = Движения.Хозрасчетный;

Проводка = ПроводкиБУ.Добавить();

Проводка.Период = ДатаДока;

Проводка.Активность = Истина;

Проводка.Сумма = Задолженность;

Проводка.СчетДт=ПланыСчетов.Хозрасчетный.ДолгиКонтранентов;

Проводка.СубконтоДт.Контрагенты = Контрагент;

Проводка.СубконтоДт.Договоры = ДоговорКонтрагента;

Проводка.СчетКт = СчетАнализа;

// процедура из общего модуля

УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт, 1, Контрагент);

УстановитьСубконто(Проводка.СчетКт,Проводка.СубконтоКт, 2,

ДоговорКонтранента);

Движения.Хозрасчетный.Записать();

КонецЕСли;

Пример 2. Составить модуль формирования проводок документа по выплате зарплаты. Документ содержит табличную часть с именем ТабЧасть

ПроводкиБУ = Движения.Хозрасчетный;

Для Каждого СтрокаТЧ из ТабЧасть Цикл

Проводка = ПроводкиБУ.Добавить();

Проводка.Период = Дата;

Проводка.Активность = Истина;

Проводка.Содержание = "Выплата зарплаты";

Проводка.Сумма = СтрокаТЧ.Сумма;

Если СтрокаТЧ.ВыплаченностьЗарплаты =

Перечисления.ВыплаченностьЗарплаты.Выплачено Тогда

СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПерсоналомПоОплатеТруда;

ИначеЕсли СтрокаТЧ.ВыплаченностьЗарплаты =

Перечисления.ВыплаченностьЗарплаты.Задепонировано Тогда

СчетДт = ПланыСчетов.Хозрасчетный.РасчетыПоДепонированнымСуммам;

Иначе

Сообщить("В документе " + ДокументВыплаты + " есть строки с невыплаченной зарплатой", СтатусСообщения.ОченьВажное);

Отказ = Истина;

Возврат;

КонецЕсли;

Проводка.СчетДт = СчетДт;

Проводка.СубконтоДт.РаботникиОрганизации = СтрокаТЧ.ФизЛицо;

Проводка.СчетКт = ПланыСчетов.Хозрасчетный.КассаОрганизации;

Проводка.СубконтоКт.СтатьиДвиженияДенежныхСредств =

СтатьяДвиженияДенежныхСредств;

КонецЦикла;

Движения.Хозрасчетный.Записать();