8.х средневзвешенный порядок списания

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Тимон, 11 мар 2011.

  1. TopicStarter Overlay
    Тимон
    Offline

    Тимон Опытный в 1С

    Регистрация:
    30 ноя 2010
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Код:
    Запись=РегистрыСведений.ПорядокСписания.ПолучитьПоследнее(ЭтотОбъект.МоментВремени());
    Если Запись.Порядок=Перечисления.Порядок.ФИФО тогда
    ТП.Сортировать("Партия Возр");
    Иначе Запись.Порядок=Перечисления.Порядок.Средневзвешенная;
    ТП.Сортировать("Партия Убыв");
    КонецЕсли;
    
    
    этот код я использую для записи по лифо и фифо.Никогда не имел дело с средневзвешенным порядком списания,хотя знаю,что из себя представляет.Помогите с написнием кода,пожалуйста,или покажите пример)заранее спасибо!
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.570
    Симпатии:
    717
    Баллы:
    204
    и в чем, собственно, загвоздка?
  3. Наташа
    Offline

    Наташа Опытный в 1С

    Регистрация:
    14 авг 2010
    Сообщения:
    1.442
    Симпатии:
    2
    Баллы:
    29
    Просто берете сумму и делите на количество товара :)
    Оч похоже на задачки на спеца по платформе, к нему готовитесь? :) В регистре просто даже не создавайте реквизита "Партия", достаточно одной "Номенклатуры", ну и если по условиям надо - "Склад" :)
  4. TopicStarter Overlay
    Тимон
    Offline

    Тимон Опытный в 1С

    Регистрация:
    30 ноя 2010
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    в том,что я не знаю как прописать средневзвешенный порядок списания)

    задачи на спеца уже в печонках,но я имел дело только с ЛИФИ,ФИФО и вручную)

    это уже пишу для частного лица базу,ЛИФО и вручную тут сто лет не нужны...
  5. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    Откуда берется ТП?
  6. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.570
    Симпатии:
    717
    Баллы:
    204
    при ЛИФО/ФИФО учитываем очередность партий, при средневзвешенной - нет, общее количество поделили на количество составляющих - среднее арифметическое
  7. TopicStarter Overlay
    Тимон
    Offline

    Тимон Опытный в 1С

    Регистрация:
    30 ноя 2010
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |	ВложенныйЗапрос.Номенклатура,
    |	ВложенныйЗапрос.Количество,
    |	УчетНоменклатурыОстатки.Партия,
    |	ЕСТЬNULL(УчетНоменклатурыОстатки.КоличествоОстаток, 0) КАК Остаток,
    |	УчетНоменклатурыОстатки.СуммаОстаток КАК Сумма
    |ИЗ
    |	(ВЫБРАТЬ
    |		РасходнаяНакладнаяТЧ.Номенклатура КАК Номенклатура,
    |		СУММА(РасходнаяНакладнаяТЧ.Количество) КАК Количество
    |	ИЗ
    |		Документ.РасходнаяНакладная.ТЧ КАК РасходнаяНакладнаяТЧ
    |	ГДЕ
    |		РасходнаяНакладнаяТЧ.Ссылка = &Ссылка
    |	
    |	СГРУППИРОВАТЬ ПО
    |		РасходнаяНакладнаяТЧ.Номенклатура) КАК ВложенныйЗапрос
    |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.УчетНоменклатуры.Остатки(&Дата, ) КАК УчетНоменклатурыОстатки
    |		ПО ВложенныйЗапрос.Номенклатура = УчетНоменклатурыОстатки.Номенклатура";
    
    
    Запрос.УстановитьПараметр("Дата",Дата);
    Запрос.УстановитьПараметр("Ссылка",ЭтотОбъект.Ссылка);
    Результат=Запрос.Выполнить();
    
    ТП = 0;
    ТП=Запрос.Выполнить().Выгрузить();
    Форма = ЭтотОбъект.ПолучитьФорму();
    Форма.ТЗ = ТП;
    Форма.ЭлементыФормы.ТЗ.СоздатьКолонки();
    
    
    делаю запрос наостаток товара,выгружаю в таблицу значений формы документа...Тп-переменная по результату запроса.

    в чем еще может быть загвоздка:поделить-то можно поделить,но еще нужно учесть возможный остаток по цене товара...придется умножать на количество проданного товара.
  8. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    В документах, которые пишут движения в регистр УчетНоменклатуры не заполняйте поле партия в случае использования среднескользящей, и тогда не важно как вы отсортируете ТЗ.
  9. TopicStarter Overlay
    Тимон
    Offline

    Тимон Опытный в 1С

    Регистрация:
    30 ноя 2010
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    я в расходном документе не стал прописывать реквизит "партия" за ненадобностью...на складе партия будет так важна в моем случае...программка в общем-то не объемистая,цель-это прайс лист и правильный подсчет остатков.
  10. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    В этом случае Вы нарушаете главный принцип работы с регистрами - выход регистра по всем измерениям в 0. Если убрать только в расходном, то у вас будут висеть плюсы по партиям и минусы по пустой партии, увеличиваться таблица остатков и т.д. это не хорошо. Если уж у Вас среднескользящая, то поле партия в регистре всегда должна быть пустой.
  11. TopicStarter Overlay
    Тимон
    Offline

    Тимон Опытный в 1С

    Регистрация:
    30 ноя 2010
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    возможно тогда в зависимости от сиписния записывать в разные регистры...
  12. Itsys
    Offline

    Itsys Опытный в 1С

    Регистрация:
    3 янв 2010
    Сообщения:
    1.394
    Симпатии:
    0
    Баллы:
    26
    В зависимости от типа списания надо либо заполнять либо не заполнять поле партия. При чем здесь другой регистр?
  13. TopicStarter Overlay
    Тимон
    Offline

    Тимон Опытный в 1С

    Регистрация:
    30 ноя 2010
    Сообщения:
    87
    Симпатии:
    0
    Баллы:
    26
    возможно,тогда стоит в зависимости от списания записывать все в разные регистры*...пример бы хоть какой желательно...

    а,ну я как раз обсуждал это с человеком)тогда вопрос как все прописать отпал)но пример все равно будет интересен...

Поделиться этой страницей