|

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

       |ВЫБРАТЬ

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

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

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

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

       |ИЗ

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

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

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

       |                        ,

       |                        Субконто1 В

       |                                        (ВЫБРАТЬ

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

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

       |                                        ИЗ

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

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

       |;

       |

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

       |ВЫБРАТЬ

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

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

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

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

       |ИЗ

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

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

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

       

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

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

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

       

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

       

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

       

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

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

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

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

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

                       

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

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

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

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

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

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

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

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

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

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

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

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

               Иначе 

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

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

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

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

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

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

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

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

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

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

               КонецЕсли;

       КонецЦикла;

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

Документ: «Прибытие».

Рекв: СкладПолучатель, ДокументОснование, ДатаПрибытия

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

       Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка. Отправление") Тогда

               // Заполнение шапки

               ДокументОснование = ДанныеЗаполнения. Ссылка;

       КонецЕсли;

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

Процедура ОбработкаПроведения(Отказ, Режим)

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

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

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

       

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

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

       "ВЫБРАТЬ

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

       |        ОсновнойДвиженияССубконто. Количество КАК Количество,

       |        ОсновнойДвиженияССубконто. Сумма

       |ИЗ

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

       |                        ,

       |                        ,

       |                        Регистратор = &ДокументОснование

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