|                                &МоментВремени,

               |                                Счет = ЗНАЧЕНИЕ(ПланСчетов. Управленческий. Товары),

               |                                &Субконто,

               |                                Субконто1 В

               |                                                (ВЫБРАТЬ РАЗЛИЧНЫЕ

               |                                                        ВТ_Детали. Деталь

               |                                                ИЗ

НЕ нашли? Не то? Что вы ищете?

               |                                                        ВТ_Детали КАК ВТ_Детали)

               |                                        И Субконто2 = &Склад) КАК ХозрасчетныйОстатки

               |                ПО ВТ_Детали. Деталь = ХозрасчетныйОстатки. Субконто1

               |ИТОГИ

               |        СУММА(Количество),

               |        МАКСИМУМ(Сумма)

               |ПО

               |        Комплект";

               

               

       Субконто = Новый Массив;

       Субконто. Вставить(0, ПланыВидовХарактеристик. ВидыСубконто. Номенклатура);

       Субконто. Вставить(1, ПланыВидовХарактеристик. ВидыСубконто. Склады);

                       

       

       Запрос. УстановитьПараметр("МоментВремени", МоментВремени());

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

       Запрос. УстановитьПараметр("Субконто", Субконто);

       Запрос. УстановитьПараметр("Склад", Склад);

       

       ВыборкаКомплект = Запрос. Выполнить().Выбрать(ОбходРезультатаЗапроса. ПоГруппировкам);

       

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

               

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

       

               Пока ВыборкаДетальныеЗаписи. Следующий() Цикл

                       

                       Если ВыборкаДетальныеЗаписи. КоличествоОстаток < ВыборкаДетальныеЗаписи. КоличествоДеталей Тогда

                               Отказ = Истина;

                               Сообщение = Новый СообщениеПользователю;

                               Текст = "Нехватка детали: "+ ВыборкаДетальныеЗаписи. ДетальПредставление + " в кол-ве " + (ВыборкаДетальныеЗаписи. КоличествоДеталей - ВыборкаДетальныеЗаписи. КоличествоОстаток);

                               Сообщение. Поле = "";

                               Сообщение. Текст = Текст;

                               Сообщение. Сообщить();

                       КонецЕсли;

                       

                       Если Отказ Тогда

                               Продолжить;

                       КонецЕсли;

                       

                       Если ВыборкаДетальныеЗаписи. КоличествоДеталей = ВыборкаДетальныеЗаписи. КоличествоОстаток Тогда

                               СуммаСписать = ВыборкаДетальныеЗаписи. СуммаОстаток;

                       Иначе

                               СуммаСписать = ?(ВыборкаДетальныеЗаписи. КоличествоОстаток = 0, 0, ВыборкаДетальныеЗаписи. СуммаОстаток * ВыборкаДетальныеЗаписи. КоличествоДеталей / ВыборкаДетальныеЗаписи. КоличествоОстаток);

                       КонецЕсли;

                       

                       Движение = Движения. Хозрасчетный. Добавить();

                       Движение. СчетДт = ПланыСчетов. Управленческий. ПрибылиУбытки;

                       Движение. СчетКт = ПланыСчетов. Управленческий. Товары;

                       Движение. Период = Дата;

                       Движение. КоличествоКт = ВыборкаДетальныеЗаписи. КоличествоДеталей;

                       Движение. Сумма = СуммаСписать;

                       Движение. СубконтоДт[ПланыВидовХарактеристик. ВидыСубконто. Номенклатура] = ВыборкаДетальныеЗаписи. Комплект;

                       Движение. СубконтоКт[ПланыВидовХарактеристик. ВидыСубконто. Номенклатура] = ВыборкаДетальныеЗаписи. Деталь;

                       Движение. СубконтоКт[ПланыВидовХарактеристик. ВидыСубконто. Склады] = Склад;

                       

               КонецЦикла;

               

               Если НЕ ОТКАЗ Тогда

                       Движение = Движения. Хозрасчетный. Добавить();

                       Движение. СчетДт = ПланыСчетов. Управленческий. Покупатели;

                       Движение. СчетКт = ПланыСчетов. Управленческий. ПрибылиУбытки;

                       Движение. Период = Дата;

                       Движение. Сумма = ВыборкаКомплект. Сумма;

                       Движение. СубконтоКт[ПланыВидовХарактеристик. ВидыСубконто. Номенклатура] = ВыборкаКомплект. Комплект;

               КонецЕсли;

       КонецЦикла;

КонецПроцедуры

Документ «Операция»

Вынесено отдельно

Отчет «ПродажиКомплектов»

ВЫБРАТЬ

       ХозрасчетныйОборотыДтКт. СубконтоДт1 КАК Комплект,

       СУММА(ХозрасчетныйОборотыДтКт. СуммаОборот) КАК Себестоимость

ПОМЕСТИТЬ ВТ_Себестоимость

ИЗ

       РегистрБухгалтерии. Хозрасчетный. ОборотыДтКт(, , СчетДт = ЗНАЧЕНИЕ(ПланСчетов. Управленческий. ПрибылиУбытки), , СчетКТ = ЗНАЧЕНИЕ(ПланСчетов. Управленческий. Товары), , ) КАК ХозрасчетныйОборотыДтКт

СГРУППИРОВАТЬ ПО

       ХозрасчетныйОборотыДтКт. СубконтоДт1

;

////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ

       ХозрасчетныйОборотыДтКт. СубконтоКт1 КАК Комплект,

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9