Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебники 80235

.pdf
Скачиваний:
5
Добавлен:
01.05.2022
Размер:
1.32 Mб
Скачать

 

Продолжение табл. 3

ВернутьДанныеТовара()

Возвращает все данные по

 

товару

ФактическийОстаток()

Возвращает фактический

 

остаток по товару

ФактическийОстаток(ТекТовар) требуется для контроля ввода количества отгружаемого товара, меньшее или равное имеющемуся в наличии. Для того, чтобы производился расчет фактического остатка в документе Расходная Накладная, необходимо в процедуру СоставТоварПриИзменении() вставить строку

ТекДанные.ФО = ФактическийОстаток(ТекДанные.Товар);

Листинг 1. Функция возвращает фактический остаток товара на счете 41.1

&НаСервере Функция ФактическийОстаток(ТекТовар)

Запрос = Новый Запрос; Запрос.Текст =

"ВЫБРАТЬ

|

ХозрасчетныйОстатки.Субконто1,

|

ХозрасчетныйОстатки.Субконто2,

|

 

СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК

КоличествоОстаток

 

|ИЗ

 

|

РегистрБухгалтерии.Хозрасчетный.Остатки(

|

,

|

Счет = &Счет,

|

,

|

Субконто1 = &Товар

|

И Субконто2 = &Склад)

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

|

 

|СГРУППИРОВАТЬ ПО

|

ХозрасчетныйОстатки.Субконто1,

|

ХозрасчетныйОстатки.Субконто2";

Запрос.УстановитьПараметр("Склад", Объект.Склад); Запрос.УстановитьПараметр("Счет",

ПланыСчетов.Учебный.ТоварыНаСкладах); Запрос.УстановитьПараметр("Товар", ТекТовар);

9

РезультатЗапроса = Запрос.Выполнить();

Если РезультатЗапроса.Пустой() Тогда Возврат 0;

Иначе

ВыборкаДанных = РезультатЗапроса.Выбрать(); ВыборкаДанных.Следующий(); Возврат ВыборкаДанных.КоличествоОстаток;

КонецЕсли;

КонецФункции // ФактическийОстаток()

Данная функция возвращает остаток товара (переданного в качестве параметра функции) на складе. Склад берется из шапки документа. Анализ выполняется на рабочую дату.

Шаблон печатной формы можно сделать при помощи конструктора печати.

6. Создать модуль документа Расходной накладной. Листинг 2. Предопределенная процедура обработки

проведения Расходной накладной.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

Сч41_1 = ПланыСчетов.Учебный.ТоварыНаСкладах; Сч62_1 =

ПланыСчетов.Учебный.РасчетыСПокупателямиИЗаказчикамиВРублях; Сч68_3 = ПланыСчетов.Учебный.НДС; Сч90_1 = ПланыСчетов.Учебный.Выручка;

Сч90_2 = ПланыСчетов.Учебный.Себестоимость; Сч90_3 = ПланыСчетов.Учебный.ПродажиНДС;

//Проверим заполнение реквизитов Если Контрагент.Пустая() Тогда

Сообщить("Не выбран контрагент! ""Документ расходная накладная"" №" + Номер + " от " + Дата + " не проведен!");

Отказ = Истина; Возврат;

КонецЕсли;

Если Склад.Пустая() Тогда Сообщить("Не выбран склад! ""Документ расходная

накладная"" №" + Номер + " от " + Дата + " не проведен!"); Отказ = Истина; Возврат;

КонецЕсли;

10

//Проводки Движения.Хозрасчетный.Записывать = Истина; Для Каждого ТекСтрокаСостав Из Состав Цикл

//Выручка от продажи товара Движение = Движения.Хозрасчетный.Добавить(); Движение.СчетДт = Сч62_1; Движение.СчетКт = Сч90_1; Движение.Период = Дата;

Движение.Сумма = ТекСтрокаСостав.Всего; Движение.Содержание = "Отражена выручка от продажи

товара";

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.К онтрагенты] = Контрагент;

//Начисление НДС с реализации товара Если ТекСтрокаСостав.СуммаНДС > 0 Тогда

Движение = Движения.Хозрасчетный.Добавить(); Движение.СчетДт = Сч90_3; Движение.СчетКт = Сч68_3; Движение.Период = Дата;

Движение.Сумма = ТекСтрокаСостав.СуммаНДС; Движение.Содержание = "Начислен НДС с

реализации товара";

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Т овары] = ТекСтрокаСостав.Товар;

КонецЕсли;

//Списание себестоимости отгружаемого товара Движение = Движения.Хозрасчетный.Добавить(); Движение.СчетДт = Сч90_2; Движение.СчетКт = Сч41_1; Движение.Период = Дата;

Себестоимость = ВернутьСебестоимость(ТекСтрокаСостав.Товар);

Движение.Сумма = Окр(Себестоимость, 2, 1)*ТекСтрокаСостав.Количество;

Движение.КоличествоКт = ТекСтрокаСостав.Количество; Движение.Содержание = "Списана себестоимость

отгруженного товара";

Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Т овары] = ТекСтрокаСостав.Товар;

11

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Т овары] = ТекСтрокаСостав.Товар;

Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.С клады] = Склад;

КонецЦикла;

 

 

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

 

 

Функция ВернутьСебестоимость(ТекТовар)

 

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

 

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

 

 

"ВЫБРАТЬ

 

|

ХозрасчетныйОстатки.Субконто1,

 

|

ХозрасчетныйОстатки.Субконто2,

 

|

ХозрасчетныйОстатки.СуммаОстаток

/

ХозрасчетныйОстатки.КоличествоОстаток КАК Себестоимость

 

|ИЗ

 

 

|

РегистрБухгалтерии.Хозрасчетный.Остатки(

|

,

 

|

Счет = &Счет41_1,

 

|

,

 

|

Субконто1 = &Товар

 

|

И Субконто2

= &Склад)

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

Запрос.УстановитьПараметр("Склад", Склад); Запрос.УстановитьПараметр("Счет41_1",

ПланыСчетов.Учебный.ТоварыНаСкладах); Запрос.УстановитьПараметр("Товар", ТекТовар);

РезультатЗапроса = Запрос.Выполнить();

Если РезультатЗапроса.Пустой() Тогда Возврат 0;

Иначе

ВыборкаДанных = РезультатЗапроса.Выбрать(); ВыборкаДанных.Следующий(); Возврат ВыборкаДанных.Себестоимость;

КонецЕсли;

КонецФункции // ВернутьСебестоимость()

12

7.После окончания создания документа «РасходнаяНакладная» необходимо сохранить сделанные изменения. Проверить работоспособность документа в режиме 1С:Предприятие. Для того чтобы увидеть, как списывается товар, следует сначала добавить на склад некоторое его количество.

Провести документ (нажав «Провести и закрыть»). Перейти в просмотр движений по регистру (рис. 3) и сличить правильность сумм, проходящих в проводках.

8.Создать документ Приходный кассовый ордер:

создать структуру документа (рис. 4);

создать форму (рис. 5)

настроить модуль документа (листинг 3).

Рис. 3. Просмотр движений документа «Расходная накладная»

13

Рис. 4. Окно редактирования структуры документа Приходный кассовый ордер

Рис. 5. Форма документа Расходный ордер

14

Модуль документа состоит из предопределенной процедуры ОбработкаПроведения. С ее помощью выполняется проведение документа. При необходимости можно воспользоваться кнопками панели редактора программных модулей (прил. 1).

Листинг 3. Предопределенная процедура обработки проведения Приходного кассового ордера

Процедура ОбработкаПроведения()

Процедура ОбработкаПроведения(Отказ, Режим)

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

ПланыСчетов.Учебный.КассаОрганизацииВРублях; Движение.СчетКт =

ПланыСчетов.Учебный.РасчетыСПокупателямиИЗаказчикамиВРублях; Движение.Период = Дата; Движение.Сумма = Сумма;

Движение.Содержание = "Оплата от покупателя"; Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.К

онтрагенты] = Контрагент;

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

9. Создать документ Расходный кассовый ордер:

создать структуру документа (рис. 6);

создать форму (рис. 7);

настроить модуль документа (листинг 4).

15

Рис. 6. Окно редактирования структуры документа Расходный кассовый ордер

Рис. 7. Форма документа Расходный кассовый ордер

16

Модуль документа состоит из предопределенной процедуры ОбработкаПроведения. С ее помощью выполняется проведение документа. При необходимости можно воспользоваться кнопками панели редактора программных модулей (прил. 1).

Листинг 4. Предопределенная процедура обработки проведения Расходного кассового ордера.

Процедура ОбработкаПроведения(Отказ, Режим)

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

Движение.СчетДт = ПланыСчетов.Учебный.РасчетыСПоставщикамиВРублях;

Движение.СчетКт = ПланыСчетов.Учебный.КассаОрганизацииВРублях;

Движение.Период = Дата; Движение.Сумма = Сумма;

Движение.Содержание = "Оплата поставщику"; Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.К

онтрагенты] = Контрагент;

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

10.Включить документы «ПриходныйКО» и «РасходныйКО» в перечень регистраторов регистра бухгалтерии «Хозрасчетный»

11.После окончания создания документов «ПриходногоКО» и «РасходногоКО» необходимо сохранить сделанные изменения. Проверить работоспособность документов в режиме 1С:Предприятие.

ЛАБОРАТОРНАЯ РАБОТА № 7 СОЗДАНИЕ ЗАПРОСОВ

1. ЦЕЛЬ РАБОТЫ

Создание объектов метаданных – запросов в целях извлечения информации из информационной базы.

2. КОММЕНТАРИИ ПО ВЫПОЛНЕНИЮ РАБОТЫ

Система 1C:Предприятие предоставляет два способа извлечения данных из информационной базы:

17

-с помощью методов объектов метаданных (объектная модель данных);

-с помощью механизма универсальных запросов (табличная модель данных).

Последовательность действий при работе с запросами.

1.Создать переменную агрегатного типа «Запрос».

2.В переменной типа «Строка» описать текст запроса на языке запросов.

3.Выполнить запрос.

4.Обработать результат запроса.

3.СОДЕРЖАНИЕ И ПОРЯДОК ВЫПОЛНЕНИЯ

РАБОТЫ

Для изучения языка запросов потребуется внешняя обра-

ботка КонсольЗапросов (рис. 8).

Рис. 8. Форма обработки «Консоль запросов»

18

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]