Имя: Пароль:
1C
 
Как определить переменные?
0 Beginner girl
 
08.07.16
16:06
Здравствуйте.
Подскажите, пожалуйста, как правильно нужно определить переменные Организация, Период (УчетнаяПолитика.СпособОценкиМПЗ(Организация, Период))?


Процедура ОбработкаПроведения(Отказ, Режим)
    
    Движения.К_Остатки.Записывать = Истина;
                  Запрос = Новый Запрос;
                Если УчетнаяПолитика.СпособОценкиМПЗ(Организация, Период) = Перечисления.СпособыОценки.ФИФО Тогда
        МенеджерВТ = Новый МенеджерВременныхТаблиц;
        Запрос.МенеджерВременныхТаблиц = МенеджерВТ;
        Запрос.Текст =  "ВЫБРАТЬ
                        |    К_СписаниеТоваровСписанныеТовары.Товар,
                        |    СУММА(К_СписаниеТоваровСписанныеТовары.Количество) КАК Количество,
                        |    К_СписаниеТоваров.Склад,
                        |    К_СписаниеТоваров.Организации,
                        |    К_ПоступлениеТоваров.Склад КАК Склад1,
                        |    К_ПоступлениеТоваров.Организация
                        |ПОМЕСТИТЬ СписаниеТоваров
                        |ИЗ
                        |    Документ.К_СписаниеТоваров.СписанныеТовары КАК К_СписаниеТоваровСписанныеТовары,
                        |    Документ.К_СписаниеТоваров КАК К_СписаниеТоваров
                        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.К_ПоступлениеТоваров КАК К_ПоступлениеТоваров
                        |        ПО К_СписаниеТоваров.Склад = К_ПоступлениеТоваров.Склад
                        |            И К_СписаниеТоваров.Организации = К_ПоступлениеТоваров.Организация
                        |ГДЕ
                        |    К_СписаниеТоваров.Ссылка = &Ссылка
                        |
                        |СГРУППИРОВАТЬ ПО
                        |    К_СписаниеТоваровСписанныеТовары.Товар,
                        |    К_СписаниеТоваров.Склад,
                        |    К_СписаниеТоваров.Организации,
                        |    К_ПоступлениеТоваров.Склад,
                        |    К_ПоступлениеТоваров.Организация
                        |;
                        |
                        |////////////////////////////////////////////////////////////////////////////////
                        |ВЫБРАТЬ
                        |    К_СписаниеТоваровСписанныеТовары.Товар КАК Товар,
                        |    К_СписаниеТоваровСписанныеТовары.Количество КАК Количество,
                        |    К_ОстаткиОстатки.Партия,
                        |    К_ОстаткиОстатки.К_КоличествоОстаток КАК КоличествоОстаток,
                        |    К_ОстаткиОстатки.К_СуммаОстаток КАК СуммаОстаток
                        |ИЗ
                        |    Документ.К_СписаниеТоваров.СписанныеТовары КАК К_СписаниеТоваровСписанныеТовары
                        |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.К_Остатки.Остатки(
                        |                ,
                        |                Товар В
                        |                    (ВЫБРАТЬ
                        |                        СписанныеТовары.Товар
                        |                    ИЗ
                        |                        СписанныеТовары КАК СписанныеТовары)) КАК К_ОстаткиОстатки
                        |        ПО К_СписаниеТоваровСписанныеТовары.Товар = К_ОстаткиОстатки.Товар
                        |
                        |УПОРЯДОЧИТЬ ПО
                        |    К_ОстаткиОстатки.Партия.Дата
                        |ИТОГИ
                        |    МИНИМУМ(Количество),
                        |    СУММА(КоличествоОстаток)
                        |ПО
                        |    Товар"  ;
                        Запрос.УстановитьПараметр("Ссылка", Ссылка);
                            ИначеЕсли УчетнаяПолитика.СпособОценкиМПЗ() = Перечисления.СпособыОценки.ПоСреднему Тогда
                                 Запрос.Текст = "ВЫБРАТЬ
                                |    К_СписаниеТоваровСписанныеТовары.Товар,
                                |    К_СписаниеТоваровСписанныеТовары.Количество
                                |ПОМЕСТИТЬ СписаниеТоваров
                                |ИЗ
                                |    Документ.К_СписаниеТоваров.СписанныеТовары КАК К_СписаниеТоваровСписанныеТовары
                                |ГДЕ
                                |    К_СписаниеТоваровСписанныеТовары.Ссылка = &Ссылка
                                |
                                |СГРУППИРОВАТЬ ПО
                                |    К_СписаниеТоваровСписанныеТовары.Товар,
                                |    К_СписаниеТоваровСписанныеТовары.Количество
                                |;
                                |
                                |////////////////////////////////////////////////////////////////////////////////
                                |ВЫБРАТЬ
                                |    СписаниеТоваров.Товар КАК Товар,
                                |    СУММА(СписаниеТоваров.Количество) КАК Количество,
                                |    СУММА(К_ОстаткиОстатки.К_КоличествоОстаток) КАК КоличествоОстаток,
                                |    СУММА(К_ОстаткиОстатки.К_СуммаОстаток) КАК СуммаОстаток
                                |ИЗ
                                |    СписаниеТоваров КАК СписаниеТоваров
                                |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.К_Остатки.Остатки(
                                |                ,
                                |                Товар В
                                |                    (ВЫБРАТЬ
                                |                        СписаниеТоваров
                                |                    ИЗ
                                |                        СписаниеТоваров КАК СписаниеТоваров)) КАК К_ОстаткиОстатки
                                |        ПО (СписаниеТоваров.Товар = К_ОстаткиОстатки.Товар)
                                |
                                |СГРУППИРОВАТЬ ПО
                                |    СписаниеТоваров.Товар";
                                Запрос.УстановитьПараметр("Ссылка", Ссылка);
                            КонецЕсли;  
                            РезультатЗапроса = Запрос.Выполнить();
                            ВыборкаТовар = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                            
                            Пока ВыборкаТовар.Следующий() Цикл
                                Если ВыборкаТовар.Количество > ВыборкаТовар.КоличествоОстаток Тогда
                                    Сообщить("Не хватает "+ВыборкаТовар.Товар+" в количестве "+ВыборкаТовар.Количество+ " шт.");
                                Отказ = Истина;
                                КонецЕсли;
        
                                Если Отказ Тогда
                                    Возврат;
                                КонецЕсли;
                                
                                Если УчетнаяПолитика.СпособОценкиМПЗ() = Перечисления.СпособыОценки.ПоСреднему Тогда  
                                    Движение = Движения.ОстаткиК_Остатки.Добавить();
                                    Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
                                    Движение.Период = Дата;
                                    Движение.К_Товар = ВыборкаТовар.Товар;
                                    Движение.К_Количество = ВыборкаТовар.Количество;
                                    Если ВыборкаТовар.КоличествоОстаток = 0 Тогда
                                                Себестоимость = 0;
                                    Иначе
                                                Себестоимость = ВыборкаТовар.СтоимостьОстаток / ВыборкаТовар.КоличествоОстаток;
                                    КонецЕсли;
                                    Движение.К_Сумма = Себестоимость * ВыборкаТовар.Количество;
                                Иначе
                                    ОсталосьСписать = ВыборкаТовар.Количество;
            
                                    ВыборкаДетальныеЗаписи = ВыборкаТовар.Выбрать();
            
                                    Пока ВыборкаДетальныеЗаписи.Следующий() И ОсталосьСписать <> 0 Цикл
                                            Списать = Мин(ОсталосьСписать,ВыборкаДетальныеЗаписи.КоличествоОстаток);
                                            Движение = Движения.ОстаткиК_Остатки.Добавить();
                                            Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
                                            Движение.Период = Дата;
                                            Движение.К_Организация = Организации;
                                            Движение.К_Товар = ВыборкаДетальныеЗаписи.Товар;
                                            Движение.Партия = ВыборкаДетальныеЗаписи.Партия;
                                            Движение.К_Количество = Списать;
                                        Если ВыборкаДетальныеЗаписи.КоличествоОстаток = 0 Тогда
                                                Себестоимость = 0;
                                        Иначе
                                                Себестоимость = ВыборкаДетальныеЗаписи.СтоимостьОстаток / ВыборкаДетальныеЗаписи.КоличествоОстаток;
                                        КонецЕсли;
                                            Движение.К_Сумма = Себестоимость * ВыборкаДетальныеЗаписи.Количество;    
                
                                ОсталосьСписать = ОсталосьСписать - Списать;
                                    КонецЦикла;
                                КонецЕсли;
        
                        КонецЦикла;
КонецПроцедуры
1 HardBall
 
08.07.16
16:13
Перем Организация;
Перем Период;
Нет?
2 youalex
 
08.07.16
18:14
(0) Организация, судя по всему, это реквизит Организация документа, в контексте модуля - так и будет Организация (или ЭтотОбъект.Организация), в качестве Периода - будет Дата (ЭтотОбъект.Дата)
Это очень навскидку.
3 Garykom
 
гуру
08.07.16
18:53
(0) Случайно не в ПГТУ учимся?
4 oslokot
 
08.07.16
18:56
(0) мало кода
Ошибка? Это не ошибка, это системная функция.