Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 22:47
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Расчёт себестоимости проданных товаров - ЛИФО и ФИФО  (Прочитано 4315 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Shkerin

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 3
  • КПД: 5%
  • Регистрация: 2011-03-01
  • Сайт: 
  • Профессия: Программист 8.1
Добрый день, уважаемые!

Разрабатываю тестовую конфигурацию для складского учёта и хочу включить расчёт себестоимости по методам Lifo и Fifo. Подскажите, как изменить в коде проводку или регистры:

ВременнаяТаблица = Новый МенеджерВременныхТаблиц;
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = ВременнаяТаблица;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| ПереченьНоменклатуры.Номенклатура
|ПОМЕСТИТЬ НоменклатураДокумента
|ИЗ
| Документ.ПродажаТоваров.ПереченьНоменклатуры КАК ПереченьНоменклатуры
|ГДЕ
| ПереченьНоменклатуры.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.Выполнить();

Запрос = Новый Запрос;
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Запрос.Текст =
"ВЫБРАТЬ
| ПродажаТоваровПереченьНоменклатуры.Номенклатура,
| ПродажаТоваровПереченьНоменклатуры.Количество,
| ПродажаТоваровПереченьНоменклатуры.Сумма,
| СтоимостьТоваровОстатки.СтоимостьОстаток,
| ОстаткиТоваровОстатки.КоличествоОстаток,
| ОстаткиТоваровОстаткиНаСкладе.КоличествоОстаток КАК КоличествоОстатокНаСкладе
|ИЗ
| Документ.ПродажаТоваров.ПереченьНоменклатуры КАК ПродажаТоваровПереченьНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьТоваров.Остатки(&МоментВремени, Номенклатура В (&СписокНоменклатурыДокумента)) КАК СтоимостьТоваровОстатки
| ПО ПродажаТоваровПереченьНоменклатуры.Номенклатура = СтоимостьТоваровОстатки.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(&МоментВремени, Номенклатура В (&СписокНоменклатурыДокумента)) КАК ОстаткиТоваровОстатки
| ПО ПродажаТоваровПереченьНоменклатуры.Номенклатура = ОстаткиТоваровОстатки.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(
| &МоментВремени,
| Номенклатура В (&СписокНоменклатурыДокумента)
| И Склад = &СкладВДокументе) КАК ОстаткиТоваровОстаткиНаСкладе
| ПО ПродажаТоваровПереченьНоменклатуры.Номенклатура = ОстаткиТоваровОстаткиНаСкладе.Номенклатура
|ГДЕ
| ПродажаТоваровПереченьНоменклатуры.Ссылка = &Ссылка
|
|ДЛЯ ИЗМЕНЕНИЯ
| РегистрНакопления.ОстаткиТоваров.Остатки,
| РегистрНакопления.СтоимостьТоваров.Остатки";
Запрос.УстановитьПараметр("СкладВДокументе", Склад);
Иначе // РежимПроведенияДокумента.Неоперативный
Запрос.Текст =
"ВЫБРАТЬ
| ПродажаТоваровПереченьНоменклатуры.Номенклатура,
| ПродажаТоваровПереченьНоменклатуры.Количество,
| ПродажаТоваровПереченьНоменклатуры.Сумма,
| СтоимостьТоваровОстатки.СтоимостьОстаток,
| ОстаткиТоваровОстатки.КоличествоОстаток
|ИЗ
| Документ.ПродажаТоваров.ПереченьНоменклатуры КАК ПродажаТоваровПереченьНоменклатуры
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СтоимостьТоваров.Остатки(&МоментВремени, Номенклатура В (&СписокНоменклатурыДокумента)) КАК СтоимостьТоваровОстатки
| ПО ПродажаТоваровПереченьНоменклатуры.Номенклатура = СтоимостьТоваровОстатки.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(&МоментВремени, Номенклатура В (&СписокНоменклатурыДокумента)) КАК ОстаткиТоваровОстатки
| ПО ПродажаТоваровПереченьНоменклатуры.Номенклатура = ОстаткиТоваровОстатки.Номенклатура
|ГДЕ
| ПродажаТоваровПереченьНоменклатуры.Ссылка = &Ссылка
|
|ДЛЯ ИЗМЕНЕНИЯ
| РегистрНакопления.ОстаткиТоваров.Остатки,
| РегистрНакопления.СтоимостьТоваров.Остатки";
КонецЕсли;

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

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

Пока Выборка.Следующий() Цикл

// Проверить остаток при оперативном проведении
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Остаток = Выборка.КоличествоОстатокНаСкладе;
Остаток = ?(Остаток = Null, 0, Остаток);
Если Остаток < Выборка.Количество Тогда
Сообщить("Остаток товара " + СокрЛП(Выборка.Номенклатура) + " на складе " + Остаток);
Отказ = Истина;
Возврат;
КонецЕсли;
КонецЕсли;

// Рассчитать стоимость товара по среднему
СтоимостьТовара = ?(Выборка.КоличествоОстаток = Null, 0,
Выборка.СтоимостьОстаток / Выборка.КоличествоОстаток);
// Сформировать движения
// регистр ОстаткиТоваров Расход
Движение = Движения.ОстаткиТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Склад = Склад;
Движение.Количество = Выборка.Количество;
// регистр СтоимостьТоваров Расход
Движение = Движения.СтоимостьТоваров.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Стоимость = СтоимостьТовара * Выборка.Количество;
// регистр ПродажиТоваров Расход
Движение = Движения.ПродажиТоваров.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = Выборка.Номенклатура;
Движение.Контрагент = Покупатель;
Движение.Количество = Выборка.Количество;
Движение.Выручка = Выборка.Сумма;
Движение.Стоимость = СтоимостьТовара * Выборка.Количество;
// регистр Управленчесткий (бух.учет)
// Первая проводка:
// Д 62 (РасчетыСПокупателями) - К 90 (Капитал)
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Основной.РасчетыСПокупателями;
Движение.СчетКт = ПланыСчетов.Основной.Капитал;
Движение.Период = Дата;
Движение.Сумма = Выборка.Сумма;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Покупатели]= Покупатель;
// Вторая проводка:
// Д 90 (Капитал) - К 41 (Товары) - себестоимость
Движение = Движения.Управленческий.Добавить();
Движение.СчетДт = ПланыСчетов.Основной.Капитал;
Движение.СчетКт = ПланыСчетов.Основной.Товары;
Движение.Период = Дата;
Движение.Сумма = СтоимостьТовара * Выборка.Количество;
Движение.КоличествоКт = Выборка.Количество;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Товары]= Выборка.Номенклатура;

КонецЦикла;

// Записать движения регистров.
Движения.ОстаткиТоваров.Записать();
Движения.СтоимостьТоваров.Записать();
Движения.ПродажиТоваров.Записать();
Движения.Управленческий.Записать();

В интернете подробно расписаны сами методы расчёта себестоимости, но примеров на 1С почти нет.
Если у кого есть литература или лекции, поделитесь.

Буду очень признателен всем, кто поможет!


Оффлайн Shkerin

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 3
  • КПД: 5%
  • Регистрация: 2011-03-01
  • Сайт: 
  • Профессия: Программист 8.1
Неужели никто не знает?
Укажите хоть книгу или лекцию, где подобное встречается!

Оффлайн has

  • Модератор
  • *****
  • Сообщений: 1308
  • РЕПУТАЦИЯ: 285
  • КПД: 22%
  • Регистрация: 2011-01-28
  • Сайт: 
  • Профессия: Программист 1С
У Радченко вроде есть, не помню точно.

Оффлайн Shkerin

  • **
  • Сообщений: 56
  • РЕПУТАЦИЯ: 3
  • КПД: 5%
  • Регистрация: 2011-03-01
  • Сайт: 
  • Профессия: Программист 8.1
У Радченко вроде есть, не помню точно.

Благодарю за ответ.

Оффлайн tagepa

  • *
  • Сообщений: 2
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-10-28
  • Сайт: 
Здравствуйте. Нашли что-нибудь?


Теги:
 

Не заполняются колонки "Цена" и "Сумма" в отчете "Остатки товаров принятых на комиссию". УТ11

Автор VladimirMelnychenkoРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 476
Последний ответ 18 Янв 2017, 11:42
от VladimirMelnychenko
Перенос товаров из д-та "Поступление Т и У" в "Отчет о розничных продажах"

Автор Игорь ПолищукРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 5170
Последний ответ 01 Июн 2011, 16:31
от Eugeneer
Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4304
Последний ответ 24 Дек 2015, 15:34
от дфтын
Как добавить столбец "Номенклатура" в таблицу "Реализация товаров и услуг"

Автор ZanderBlackРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 9886
Последний ответ 19 Ноя 2012, 11:12
от Gunner
Не заполняется поле "Цена" при формировании документа "Пересчет товаров"

Автор InnakechaРаздел Пользователям "1С - Предприятие 8"

Ответов: 4
Просмотров: 1092
Последний ответ 29 Дек 2016, 09:54
от Innakecha

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
AIFrame
64 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 293
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal