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

Автор Тема: ФИФО и ЛИФО  (Прочитано 3917 раз)

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

Оффлайн asmut

  • *
  • Сообщений: 29
  • РЕПУТАЦИЯ: -6
  • Чем лучше груди, тем хуже запоминается лицо
  • Регистрация: 2011-06-02
  • Сайт: 
  • Профессия: Ученик 1С
Приветствую.


Есть проблема. Я не могу понять как реализовать списание документом Расходная по ФИФО или ЛИФО.


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



Процедура ОбработкаПроведения(Отказ, Режим)
   
   //Получаем вид списания
   Выборка=РегистрыСведений.МетодСписания.СрезПоследних(ТекущаяДата());
   ФИФО=Перечисления.МетодСписания.ФИФО;
   ЛИФО=Перечисления.МетодСписания.ЛИФО;
   ВидСписанияФИФО=Выборка.Найти(ФИФО,"МетодСписания");
   ВидСписанияЛИФО=Выборка.Найти(ЛИФО,"МетодСписания");
   
   //Исходя из политики списания проводим списание
   Если ВидСписанияЛИФО<>Неопределено Тогда
         //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


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


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


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


   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      // регистр ОстаткиНоменклатуры Расход
         Движение = Движения.ОстаткиНоменклатуры.Добавить();
         Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
         Движение.Период = Дата;
         Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
         Движение.Партия = Ссылка;
         Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоОстаток;
         Движение.Сумма = ВыборкаДетальныеЗаписи.СуммаОстаток;
   КонецЦикла;


   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА


   ИначеЕсли ВидСписанияФИФО<>Неопределено Тогда
         //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


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


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


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


   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      // регистр ОстаткиНоменклатуры Расход
         Движение = Движения.ОстаткиНоменклатуры.Добавить();
         Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
         Движение.Период = Дата;
         Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
         Движение.Партия = Ссылка;
         Движение.Количество = ВыборкаДетальныеЗаписи.КоличествоОстаток;
         Движение.Сумма = ВыборкаДетальныеЗаписи.СуммаОстаток;
   КонецЦикла;


   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА


   //Если не установлена политика даем форму для заполнения
   ИначеЕсли ВидСписанияЛИФО=Неопределено И ВидСписанияФИФО=Неопределено Тогда
      Отказ=Истина;
      Сообщить("Политика списания не установлена. Выберите политику списания в открывшемся окне!");
      ОткрытьФорму("РегистрСведений.МетодСписания.ФормаЗаписи");
   Иначе
   КонецЕсли;
КонецПроцедуры




Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
Re: ФИФО и ЛИФО
« Ответ #1: 02 Фев 2014, 15:34 »
УП = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментВремени()).УчетнаяПолитика;
Если УП = Перечисления.УчетнаяПолитика.ЛИФО Тогда
Порядок = "УБЫВ";
ИначеЕсли УП = Перечисления.УчетнаяПолитика.ФИФО Тогда
                Порядок = "ВОЗР";
        ИначеЕсли УП = Перечисления.УучетнаяПолитика.ПустаяСсылка() Тогда
          Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Не установлена учетная
Сообщение.Сообщить();
        Возврат;
КонецЕсли;

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


Теги:
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
54 Сообщений
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 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal