Для документа Продажа товара с помощью конструктора движений сгенерируйте код процедуры проведения документа для ввода в регистр бухгалтерии трех записей: первой – по дебету счета 62 «Расчеты с покупателями» с кредита счета 90 «Продажи» на сумму продажи, вторую – по дебету счета 90 «Продажи» с кредита счета 68 «Расчеты с бюджетом по НДС», третьей – по дебету счета 90 «Продажи» с кредита счета 41 «Товары» на покупную стоимость проданных товаров.
Для заполнения ресурса Стоимость регистра накопления Движение товаров и суммы третьей проводки в модуль документа Продажа товаров добавить код в процедуру проведения добавьте вручную код (добавляемый код выделен жирным шрифтом):
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Движения.ЗапасыТоваров.Записывать = Истина;
// регистр ЗапасыТоваров Расход
Движение = Движения.ЗапасыТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Склад = Склад;
Движение.Товар = Товар;
Движение.Количество = Количество;
// начало 1 фрагмента добавленного кода
Запрос = Новый Запрос;
Запрос.Текст =
" ВЫБРАТЬ
| ЗапасыТоваровОстатки.Склад КАК Склад,
| ЗапасыТоваровОстатки.Товар КАК Товар,
| ЗапасыТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток,
| ЗапасыТоваровОстатки.СтоимостьОстаток КАК СтоимостьОстаток
|ИЗ
| РегистрНакопления.ЗапасыТоваров.Остатки (& Период) КАК ЗапасыТоваровОстатки
|ГДЕ
| ЗапасыТоваровОстатки.Склад = & Склад
|И ЗапасыТоваровОстатки.Товар = & Товар";
Запрос.УстановитьПараметр(" Период", Дата);
Запрос.УстановитьПараметр(" Товар", Товар);
Запрос.УстановитьПараметр(" Склад", Склад);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий () Цикл
СредняяСтоимость = Выборка.СтоимостьОстаток /Выборка.КоличествоОстаток;
Движение.Стоимость=СредняяСтоимость*Количество;
КонецЦикла;
// конец 1 фрагмента добавленного кода
Движения.РегистрБухгалтерскогоУчета.Записывать = Истина;
// регистр РегистрБухгалтерскогоУчета
….
Движения.РегистрБухгалтерскогоУчета.Записывать = Истина;
// регистр РегистрБухгалтерскогоУчета
Движение = Движения.РегистрБухгалтерскогоУчета.Добавить();
Движение.СчетДт = ПланыСчетов.ПланСчетовБухучета.Продажи;
Движение.СчетКт = ПланыСчетов.ПланСчетовБухучета.Товары;
Движение.Период = Дата;
Движение.Количество = Количество;
// начало 2 фрагмента добавленного текста
Движение.Сумма = СредняяСтоимость*Количество;
// конец 2 фрагмента добавленного текста
Движение.СодержаниеОперации = " Покупная стоимость";
Движение.СубконтоКт[ПланыВидовХарактеристик.СубконтоБухучета.Товары] = Товар;
Движение.СубконтоКт[ПланыВидовХарактеристик.СубконтоБухучета.Склады] = Склад;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
|
Будьте внимательны! После добавления в код дополнительных командных строк повторный вызов конструктора движений приведет к удалению всех внесенных изменений. В этой связи для отладки кода после внесения изменений модуль формы необходимо открывать через закладку Прочее по кнопке «Модуль объекта».
3. Сохраните конфигурацию, обновите конфигурацию базы данных, перейдите в режим работы с информационной базой. В разделе Продажи откройте список документов Продажа товаров покупателям и перепроведите введенные документы. В разделе Предприятие откройте регистр бухгалтерского учета и убедитесь, что документы формируют «правильные» проводки (рис.11-9).
Рис. 11-9. Проводки операции продажи товаров
В разделе Товарные запасы сформируйте отчет Движение товаров по складам и убедитесь, что расход товаров в регистре накопления Запасы товаров на складах фиксируется не только в натуральном, но и в денежном выражении (рис.11-10).
Рис. 11-10. Отчет по регистру накопления Запасы товаров на складах
Завершите работу с программой в режиме ведения учета и вновь перейдите в окно работы с конфигуратором.