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