Видео Себестоимость Себестоимость - стоимостная оценка затрат на производство и реализацию товаров и услуг. Покупка товаров Приходные накладные отражают поступление товаров от поставщиков. Обработчик событий "ОбработкаПроведения" Движения.ОстаткиНоменклатуры.Записывать = Истина;
// I. Получение данных для записей регистров
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
| СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
|ИЗ
| Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| ПриходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока В
Видео Себестоимость Себестоимость - стоимостная оценка затрат на производство и реализацию товаров и услуг. Покупка товаров Приходные накладные отражают поступление товаров от поставщиков. Обработчик событий "ОбработкаПроведения" Движения.ОстаткиНоменклатуры.Записывать = Истина;
// I. Получение данных для записей регистров
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
| СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
|ИЗ
| Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| ПриходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока В
...Читать далее
Оглавление
Видео
Себестоимость
Себестоимость - стоимостная оценка затрат на производство и реализацию товаров и услуг.
Покупка товаров
Приходные накладные отражают поступление товаров от поставщиков.
Обработчик событий "ОбработкаПроведения"
Движения.ОстаткиНоменклатуры.Записывать = Истина;
// I. Получение данных для записей регистров
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
| СУММА(ПриходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
|ИЗ
| Документ.ПриходнаяНакладная.СписокНоменклатуры КАК ПриходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| ПриходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ПриходнаяНакладнаяСписокНоменклатуры.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// II. Контроль не требуется
// III. Запись движений
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Количество = ВыборкаДетальныеЗаписи.Количество;
Движение.Сумма = ВыборкаДетальныеЗаписи.Сумма;
КонецЦикла;
Оптовая торговля
Расходные накладные отражают отгрузку товаров оптовым покупателям.
Формала себестоимости: Сумма остаток / Количество остаток * Количество списания
Обработчик событий "ОбработкаПроведения"
Движения.ОстаткиНоменклатуры.Записать();
Движения.ОстаткиНоменклатуры.Записывать = Истина;
// I. Получение данных для записей регистров
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КоличествоТЧ
|ПОМЕСТИТЬ ТЧ
|ИЗ
| Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТЧ.Номенклатура КАК Номенклатура,
| ТЧ.Номенклатура.Представление КАК НоменклатураПредставление,
| ТЧ.КоличествоТЧ КАК КоличествоТЧ,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток
|ИЗ
| ТЧ КАК ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
| &МоментВремени,
| Номенклатура В
| (ВЫБРАТЬ
| ТЧ.Номенклатура КАК Номенклатура
| ИЗ
| ТЧ КАК ТЧ)) КАК ОстаткиНоменклатурыОстатки
| ПО ТЧ.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура";
Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// II. Контроль
Если ВыборкаДетальныеЗаписи.КоличествоТЧ > ВыборкаДетальныеЗаписи.КоличествоОстаток Тогда
Сообщить("По номенклатуре " + ВыборкаДетальныеЗаписи.НоменклатураПредставление +
" недостаточно товара. Остаток " + ВыборкаДетальныеЗаписи.КоличествоОстаток);
Отказ = Истина;
Продолжить;
КонецЕсли;
// III. Запись движений
Если не Отказ Тогда
Движение = Движения.ОстаткиНоменклатуры.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоТЧ;
Движение.Сумма = ВыборкаДетальныеЗаписи.КоличествоТЧ/ВыборкаДетальныеЗаписи.КоличествоОстаток*ВыборкаДетальныеЗаписи.СуммаОстаток;
КонецЕсли;
КонецЦикла;
Домашнее задание
- Создать пустую конфигурацию 1С.
- Создать справочник Товары, Склады, документы ПриходнаяНакладная и РасходнаяНакладная с табличной частью Товары, регистр накопления ТоварыНаСкладах с измерениями Товар, Склад и ресурсами Количество и Сумма. Имя каждого объекта должно содержать префикс - первая буква вашей фамилии и первая буква вашего имени. К примеру, вас зовут Иван Петров, создаем справочник: имя - "ипСклады", синоним "Склады".
- Создать Перечисление ТипыТоваров со значениями Товар и Услуга. У справочника Товары завести реквизит ТипТовара, тип данных - перечисление ТипыТоваров.
- Используя конструктор движений заполнить обработчик событий "ОбработкаПроведения" документов ПриходнаяНакладная и РасходнаяНакладная.
- Исправить обработчик событий "ОбработкаПроведения" документа ПриходнаяНакладная таком образом, чтобы:
- в регистр не записывались услуги;
- несколько строк табличной части с одинаковым товаром записывались в одну строку регистра (сгруппировать строки по товару).
6. Исправить обработчик событий "ОбработкаПроведения" документа РасходнаяНакладная таком образом, чтобы:
- в регистр не записывались услуги;
- несколько строк табличной части с одинаковым товаром записывались в одну строку регистра (сгруппировать строки по товару).
- сумма списания (себестоимость) рассчитывалась "по средней" в разрезе складов.
7. В режиме 1С:Предприятие ввести пример для проверки для товара "Картофель".
Формала себестоимости: Сумма остаток / Количество остаток * Количество списания