ЭБ. ИспользоватьИзИсточникаДанных(ПланыВидовХарактеристик. ВидыСубконто. Склад,"Склад");
Блокировка. Заблокировать();
Движения. Основной. Очистить();
Движения. Основной. Записать();
Движения. Основной. Записывать = Истина;
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| РасходнаяНакладнаяСписокНоменклатуры. Номенклатура,
| СУММА(РасходнаяНакладнаяСписокНоменклатуры. Количество) КАК Количество
|ПОМЕСТИТЬ ВТ_ТЧ
|ИЗ
| Документ. РасходнаяНакладная. СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
|ГДЕ
| РасходнаяНакладнаяСписокНоменклатуры. Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| РасходнаяНакладнаяСписокНоменклатуры. Номенклатура
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОсновнойОстатки. Субконто1 КАК Номенклатура,
| ОсновнойОстатки. СуммаОстатокДт КАК СуммаОстаток,
| ОсновнойОстатки. КоличествоОстатокДт КАК КоличествоОстаток
|ПОМЕСТИТЬ ВТ_Остатки
|ИЗ
| РегистрБухгалтерии. Основной. Остатки(
| &МоментВремени,
| Счет = ЗНАЧЕНИЕ(ПланСчетов. Управленческий. Товары),
| ,
| Субконто1 В
| (ВЫБРАТЬ
| ВТ_ТЧ. Номенклатура
| ИЗ
| ВТ_ТЧ КАК ВТ_ТЧ)
| И Субконто2 = &Склад) КАК ОсновнойОстатки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_ТЧ. Номенклатура КАК Номенклатура,
| ВТ_ТЧ. Количество КАК Количество,
| ЕСТЬNULL(ВТ_Остатки. КоличествоОстаток, 0) КАК КоличествоОстаток,
| ЕСТЬNULL(ВТ_Остатки. СуммаОстаток, 0) КАК СуммаОстаток
|ИЗ
| ВТ_ТЧ КАК ВТ_ТЧ
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Остатки КАК ВТ_Остатки
| ПО ВТ_ТЧ. Номенклатура = ВТ_Остатки. Номенклатура";
Запрос. УстановитьПараметр("МоментВремени", МоментВремени());
Запрос. УстановитьПараметр("Склад", Склад);
Запрос. УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос. Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса. Выбрать();
Себестоимость = 0;
Пока ВыборкаДетальныеЗаписи. Следующий() Цикл
Если ВыборкаДетальныеЗаписи. Количество > ВыборкаДетальныеЗаписи. КоличествоОстаток Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение. Текст = "Не хватает номенклатуры" + ВыборкаДетальныеЗаписи. Номенклатура + " на складе " + Склад + " в количестве " + (ВыборкаДетальныеЗаписи. Количество - ВыборкаДетальныеЗаписи. КоличествоОстаток);
Сообщение. Сообщить();
Отказ = Истина;
Продолжить;
ИначеЕсли ВыборкаДетальныеЗаписи. Количество = ВыборкаДетальныеЗаписи. КоличествоОстаток Тогда
Движение = Движения. Основной. Добавить();
Движение. СчетДт = ПланыСчетов. Управленческий. ПрибылиУбытки;
Движение. СчетКт = ПланыСчетов. Управленческий. Товары;
Движение. Период = Дата;
Движение. КоличествоКт = ВыборкаДетальныеЗаписи. КоличествоОстаток;
Движение. Сумма = ВыборкаДетальныеЗаписи. СуммаОстаток;
Движение. СубконтоКт[ПланыВидовХарактеристик. ВидыСубконто. Номенклатура] = ВыборкаДетальныеЗаписи. Номенклатура;
Движение. СубконтоКт[ПланыВидовХарактеристик. ВидыСубконто. Склад] = Склад;
Иначе
Движение = Движения. Основной. Добавить();
Движение. СчетДт = ПланыСчетов. Управленческий. ПрибылиУбытки;
Движение. СчетКт = ПланыСчетов. Управленческий. Товары;
Движение. Период = Дата;
Движение. КоличествоКт = ВыборкаДетальныеЗаписи. Количество;
Движение. Сумма = Окр(?(ВыборкаДетальныеЗаписи. КоличествоОстаток = 0, 0 ,ВыборкаДетальныеЗаписи. СуммаОстаток / ВыборкаДетальныеЗаписи. КоличествоОстаток * ВыборкаДетальныеЗаписи. Количество),2);
Движение. СубконтоКт[ПланыВидовХарактеристик. ВидыСубконто. Номенклатура] = ВыборкаДетальныеЗаписи. Номенклатура;
Движение. СубконтоКт[ПланыВидовХарактеристик. ВидыСубконто. Склад] = Склад;
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 |


