ЭБ. ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик. ВидыСубконто. Склад,"Склад");

       Блокировка. Заблокировать();

       

       Движения. Основной. Очистить();

       Движения. Основной. Записать();

       Движения. Основной. Записывать = Истина;

       

       Запрос = Новый Запрос;

       Запрос. Текст =

               "ВЫБРАТЬ

               |        РасходнаяНакладнаяСписокНоменклатуры. Номенклатура,

               |        СУММА(РасходнаяНакладнаяСписокНоменклатуры. Количество) КАК Количество

               |ПОМЕСТИТЬ ВТ_ТЧ

               |ИЗ

               |        Документ. РасходнаяНакладная. СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры

               |ГДЕ

               |        РасходнаяНакладнаяСписокНоменклатуры. Ссылка = &Ссылка

               |

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

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

               |        РасходнаяНакладнаяСписокНоменклатуры. Номенклатура

               |;

               |

               |////////////////////////////////////////////////////////////////////////////////

               |ВЫБРАТЬ

               |        ОсновнойОстатки. Субконто1 КАК Номенклатура,

               |        ОсновнойОстатки. СуммаОстатокДт КАК СуммаОстаток,

               |        ОсновнойОстатки. КоличествоОстатокДт КАК КоличествоОстаток

               |ПОМЕСТИТЬ ВТ_Остатки

               |ИЗ

               |        РегистрБухгалтерии. Основной. Остатки(

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

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

               |                        ,

               |                        Субконто1 В

               |                                        (ВЫБРАТЬ

               |                                                ВТ_ТЧ. Номенклатура

               |                                        ИЗ

               |                                                ВТ_ТЧ КАК ВТ_ТЧ)

               |                                И Субконто2 = &Склад) КАК ОсновнойОстатки

               |;

               |

               |////////////////////////////////////////////////////////////////////////////////

               |ВЫБРАТЬ

               |        ВТ_ТЧ. Номенклатура КАК Номенклатура,

               |        ВТ_ТЧ. Количество КАК Количество,

               |        ЕСТЬNULL(ВТ_Остатки. КоличествоОстаток, 0) КАК КоличествоОстаток,

               |        ЕСТЬNULL(ВТ_Остатки. СуммаОстаток, 0) КАК СуммаОстаток

               |ИЗ

               |        ВТ_ТЧ КАК ВТ_ТЧ

               |                ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки

               |                ПО ВТ_ТЧ. Номенклатура = ВТ_Остатки. Номенклатура";

       

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

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

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

       

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

       

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

       

       Себестоимость = 0;

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

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

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

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

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

                       

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

                       Продолжить;

                       

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

                       Движение = Движения. Основной. Добавить();

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

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

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

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

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

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

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

               Иначе

                       Движение = Движения. Основной. Добавить();

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

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

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

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

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

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

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

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