Оба метода хороши: и Лосяша, и Буковки....лишь бы не "в лоб" с отриц.остатками. Сразу будет видно преподу, что потенциальный специалист озадачился и показал знание признаков учёта Количественный или умение пользоваться забалансовым счетами. Супер!:-)
Не могу понять, в расходной накладной указывается склад, идёт проверка остатков по этому складу, так почему порядок списания партий (фифо/лифо) тоже не учитывать бы по этому складу, а не по организации в целом? Типа если в РН склад указан Основной, значит и партии списывать только по основному складу в указанном порядке (фифо/лифо) и не будет никаких проблем. А так получается в РН склад Основной, списываем с основного, но партия указана, которая делала проводку по другому складу... Не могу понять эту задачу(
Метод Лосяша +. Скажу в защиту первого метода: в ТЗ вроде нет необходимости выполнять запрос по все трем субконто так как было в Консоле при анализе отрицательных остатков после первого мотода. По ТЗ для контроля остатков интересует инфа по Номенклатуре и Складу, для расчета себестоимости по Номенклатуре и Партии. Вроде и нарваться на отрицательные остатки негде. Кроме того, сколько будет таких несовпадений (Склад-Партия), может их не будет никогда, или они будут достаточно редкие. А остатки выйдут в "0" при реализации всех партий на всех складах. Возможно и экзаменатор это понимает поэтому и допускает такой вариант, так как он не мешает реализации ТЗ. Или может я туплю!?
А в методе Буковки, раз мы не заполняем сумму в движении по счету ТоварыНаСкладах, разве не надо отключить вообще суммовой учет для этого счета? То есть завести признак учета суммовой и убрать флажок этого признака на счете? А сейчас получается, что суммовой учет есть, просто сумма всегда 0.
А если "теоретически" допустить (в билете такого конечно нет), что приход можно сделать операцией, КАК в методе Буковки пользователю догадаться о дополнительной проводке на забалансовый счет!? По методу Лосяша он в операции увидит и заполнит количество на складе...
Доброго времени суток, Илья! Хочется уточнить момент про метод "в лоб". Если изменить запрос в расходной, то будут и волки сыты, и овцы целы. Добавить временную табличку, где отбирались бы количественные итоги по номенклатуре и складу, и выбрать из нее партии, которые точно есть на этом складе. А потом соединить нашу свернутую табличную часть с виртуальной таблицей остатков по РБ, параметром которой будут номенклатура и партия из созданной временной таблицы. При этом при списании партий выбирать меньшее не с количеством партии, а с количеством партии на этом конкретном складе. Доработка кода минимальна. Никаких доп.ресурсов. Запрос для отчета самый простецкий и отрицательных остатков нет ВЫБРАТЬ РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура, СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КоличествоДок ПОМЕСТИТЬ ТЧ ИЗ Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры ГДЕ РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО РасходнаяНакладнаяСписокНоменклатуры.Номенклатура ИНДЕКСИРОВАТЬ ПО Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ УправленческийОстатки.Субконто1 КАК Номенклатура, УправленческийОстатки.Субконто3 КАК Партия, ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоПартииНаСкладе ПОМЕСТИТЬ ПартииНаСкладе ИЗ РегистрБухгалтерии.Управленческий.Остатки( &МВ, Счет = &СчетТовары, &МассивВидовСубконто, Субконто1 В (ВЫБРАТЬ ТЧ.Номенклатура КАК Номенклатура ИЗ ТЧ КАК ТЧ) И Субконто2 = &Склад) КАК УправленческийОстатки ИНДЕКСИРОВАТЬ ПО Номенклатура, Партия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТЧ.Номенклатура КАК Номенклатура, ТЧ.Номенклатура.Представление КАК НоменклатураПредставление, ТЧ.КоличествоДок КАК КоличествоДок, ПартииНаСкладе.КоличествоПартииНаСкладе КАК КоличествоПартииНаСкладе, ПартииНаСкладе.Партия КАК Партия, ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоПартии, ЕСТЬNULL(УправленческийОстатки.СуммаОстаток, 0) КАК СуммаПартии ИЗ ТЧ КАК ТЧ ЛЕВОЕ СОЕДИНЕНИЕ ПартииНаСкладе КАК ПартииНаСкладе ПО ТЧ.Номенклатура = ПартииНаСкладе.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки( &МВ, Счет = &СчетТовары, &МассивВидовСубконто, (Субконто1, Субконто3) В (ВЫБРАТЬ ПартииНаСкладе.Номенклатура КАК Номенклатура, ПартииНаСкладе.Партия КАК Партия ИЗ ПартииНаСкладе КАК ПартииНаСкладе)) КАК УправленческийОстатки ПО (ПартииНаСкладе.Номенклатура = УправленческийОстатки.Субконто1) И (ПартииНаСкладе.Партия = УправленческийОстатки.Субконто3) УПОРЯДОЧИТЬ ПО ВЫРАЗИТЬ(ПартииНаСкладе.Партия КАК Документ.ПриходнаяНакладная).МоментВремени ИТОГИ МАКСИМУМ(КоличествоДок), СУММА(КоличествоПартииНаСкладе) ПО Номенклатура
Когда вы списываете себестоимость, вам нельзя делать условие по складу. В итоге данный метод не дает правильного расчета себестоимости, т.к. нужная для расчета с/с партия может поступить на склад, отличный от склада списания.
@@РобинБобин-д9е Не вводите людей в заблужение. Данный метод работает корректно и он проще всего. Пройдитесь консолью ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоПартии, - общее количество товара по всем складам в разрезе номенклатуры и партии ЕСТЬNULL(УправленческийОстатки.СуммаОстаток, 0) КАК СуммаПартии - общая сумма товара по всем складам в разрезе номенклатуры и партии То есть контроль остатков делаем не по КоличествоОстаток склада (из 2 таблицы), а берём из третьей по приходной (ТОЛЬКО для суммы), а для количество из второй
16:20 зашла речь о консолях запросов. Советую ещё пользоваться этими консолями в режиме толстого клиента. Меняется режим работы консолей и степень удобства работы с ними по сравнению с тонким. В толстом удобнее.
Не работают разные алгоритмы списания себестоимости т.к. в запросе сортировка по возрастанию момента времени и текст запроса в итоге не меняется от выбранного метода списания.
Попробовал решить задачу с такой настройкой плана счетов, которая у Ильи была в первоначальном варианте, только запрос написал другой. Суть в том, что первая вирт. таблица остатков выбирает остатки в разрезе 3-х субконто (с отбором по складу расходной накладной), из этой таблицы мы берем количество остатка на складе, но как бы в разрезе партии. А потом к этой таблице получаем еще вирт. таблицу остатков без субконто склада (только номенклатура и партия) и из нее берем среднюю себес. партии. В итоге у меня по регистру сумма и кол-во выходит в 0 по всем трем субконто. Вот сижу и думаю, может я что-то упустил, что такой вариант не был рассмотрен? Вот запрос: ВЫБРАТЬ РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура, СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество, СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма ПОМЕСТИТЬ втТовары ИЗ Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры ГДЕ РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО РасходнаяНакладнаяСписокНоменклатуры.Номенклатура ИНДЕКСИРОВАТЬ ПО Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втТовары.Номенклатура КАК Номенклатура, втТовары.Количество КАК Количество, втТовары.Сумма КАК Сумма, УправленческийОстаткиПоСкладуИПартии.Субконто3 КАК Партия, ЕСТЬNULL(УправленческийОстаткиПоСкладуИПартии.КоличествоОстаток, 0) КАК КоличествоОстатокПартииНаСкладе ПОМЕСТИТЬ втОстаткиПартийНаСкладе ИЗ втТовары КАК втТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки( &МоментВремени, Счет = &СчетТовары, &СубконтоСкладыПартии, Субконто1 В (ВЫБРАТЬ втТовары.Номенклатура КАК Номенклатура ИЗ втТовары КАК втТовары) И Субконто2 = &Склад) КАК УправленческийОстаткиПоСкладуИПартии ПО втТовары.Номенклатура = УправленческийОстаткиПоСкладуИПартии.Субконто1 ИНДЕКСИРОВАТЬ ПО Номенклатура, Партия ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втОстаткиПартийНаСкладе.Номенклатура КАК Номенклатура, втОстаткиПартийНаСкладе.Номенклатура.Наименование КАК НоменклатураНаименование, втОстаткиПартийНаСкладе.Количество КАК Количество, втОстаткиПартийНаСкладе.Сумма КАК Сумма, втОстаткиПартийНаСкладе.Партия КАК Партия, втОстаткиПартийНаСкладе.КоличествоОстатокПартииНаСкладе КАК КоличествоОстатокПартииНаСкладе, ЕСТЬNULL(УправленческийОстаткиПартий.КоличествоОстаток, 0) КАК КоличествоОстатокПартии, ЕСТЬNULL(УправленческийОстаткиПартий.СуммаОстаток, 0) КАК СуммаОстатокПартии ИЗ втОстаткиПартийНаСкладе КАК втОстаткиПартийНаСкладе ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки( &МоментВремени, Счет = &СчетТовары, &СубконтоПартии, (Субконто1, Субконто2) В (ВЫБРАТЬ втОстаткиПартийНаСкладе.Номенклатура КАК Номенклатура, втОстаткиПартийНаСкладе.Партия КАК Партия ИЗ втОстаткиПартийНаСкладе КАК втОстаткиПартийНаСкладе)) КАК УправленческийОстаткиПартий ПО втОстаткиПартийНаСкладе.Номенклатура = УправленческийОстаткиПартий.Субконто1 И втОстаткиПартийНаСкладе.Партия = УправленческийОстаткиПартий.Субконто2 УПОРЯДОЧИТЬ ПО Партия ИТОГИ МАКСИМУМ(НоменклатураНаименование), МАКСИМУМ(Количество), СУММА(КоличествоОстатокПартииНаСкладе) ПО Номенклатура
Понял свою ошибку, количественный учет по субконто партий не даст выбрать остаток партии, которой нет на складе расходной накладной, что противоречит условию задачи
@@АлексейПряничников-л5с Если в последнем запросе в виртуальной таблице не накладывать отбор по партии и сделать полное соединение, то будут выведены все партии с количеством и суммой остатков.
Спасибо за прекрасные стримы. Жалко я не успеваю с такой же скоростью делать, приходится смотреть в записи. Я по поводу первого способа не понял. Зачем вы соединяете втТЧТовары с остатками по складам. Как я понимаю нужно выбранные остатки из регистра остатков партии соединять с выбираемыми остатками по складам, соединять по Номенклатуре и Партии и тогда будут верные остатки и по сумме партии и по количеству на складах. примерно так: ВЫБРАТЬ РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура, СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество ПОМЕСТИТЬ втТЧТовары ИЗ Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры ГДЕ РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО РасходнаяНакладнаяСписокНоменклатуры.Номенклатура ИНДЕКСИРОВАТЬ ПО Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СуммаПоПартиям.Субконто1 КАК Номенклатура, СуммаПоПартиям.Субконто3 КАК Партия, ЕСТЬNULL(СуммаПоПартиям.СуммаОстаток, 0) КАК СуммаОстаток, ЕСТЬNULL(СуммаПоПартиям.КоличествоОстаток, 0) КАК КоличествоОстатокПоПартии ПОМЕСТИТЬ втПартии ИЗ РегистрБухгалтерии.Управленческий.Остатки( &МоментВремени, счет = &Счет, , Субконто1 В (ВЫБРАТЬ втТЧТовары.Номенклатура КАК Номенклатура ИЗ втТЧТовары КАК втТЧТовары)) КАК СуммаПоПартиям ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ КоличествоПоСкладам.Субконто1 КАК Номенклатура, КоличествоПоСкладам.Субконто3 КАК Партия, ЕСТЬNULL(КоличествоПоСкладам.КоличествоОстаток, 0) КАК КоличествоОстатокПоСкладу ПОМЕСТИТЬ втОстаткиПоСкладам ИЗ РегистрБухгалтерии.Управленческий.Остатки( &МоментВремени, счет = &Счет, , Субконто1 В (ВЫБРАТЬ втТЧТовары.Номенклатура КАК Номенклатура ИЗ втТЧТовары КАК втТЧТовары) И Субконто2 = &Склад) КАК КоличествоПоСкладам ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ втТЧТовары.Номенклатура КАК Номенклатура, МАКСИМУМ(втТЧТовары.Количество) КАК Количество, МАКСИМУМ(втПартии.СуммаОстаток) КАК СуммаОстаток, МАКСИМУМ(втПартии.КоличествоОстатокПоПартии) КАК КоличествоОстатокПоПартии, СУММА(втОстаткипоСкладам.КоличествоОстатокПоСкладу) КАК КоличествоОстатокПоСкладу ИЗ втТЧТовары КАК втТЧТовары ЛЕВОЕ СОЕДИНЕНИЕ втПартии КАК втПартии ВНУТРЕННЕЕ СОЕДИНЕНИЕ втОстаткиПоСкладам КАК втОстаткипоСкладам ПО втПартии.Номенклатура = втОстаткипоСкладам.Номенклатура И втПартии.Партия = втОстаткипоСкладам.Партия ПО втТЧТовары.Номенклатура = втПартии.Номенклатура СГРУППИРОВАТЬ ПО втТЧТовары.Номенклатура
как нубу мне метод буковки зашел как там и был, а метод лосяша я не пойму даже если пересмотрю еще раз, а запомню как делать примерно раза с пятого. если попадется этим методом буду решать и если сдам буду топить за него в чатах и форумах и сраться до хрипоты.
да, метод Буковки понятнее, но одно смущает - получается, что мы добавляем лишнюю проводку, в то время как в условии четко написано, какие проводки должны быть
Логики в билетах зачастую просто нет, ибо главная цель экзамена - не реальную ситуацию разобрать, которая может на практике встретиться, а запутать сдающего и посадить его в лужу))
Видео зачетное! В задаче про партии ничего не сказано, но обсуждения интересные. Спасибо!
Предыдущий коммент к занятию 58☺
Белоусов на курсе 2020 говорил, что на экзамене нет задач на забалансовые счета. Возможно что-то изменилось с того времени.
Оба метода хороши: и Лосяша, и Буковки....лишь бы не "в лоб" с отриц.остатками. Сразу будет видно преподу, что потенциальный специалист озадачился и показал знание признаков учёта Количественный или умение пользоваться забалансовым счетами. Супер!:-)
Не могу понять, в расходной накладной указывается склад, идёт проверка остатков по этому складу, так почему порядок списания партий (фифо/лифо) тоже не учитывать бы по этому складу, а не по организации в целом?
Типа если в РН склад указан Основной, значит и партии списывать только по основному складу в указанном порядке (фифо/лифо) и не будет никаких проблем.
А так получается в РН склад Основной, списываем с основного, но партия указана, которая делала проводку по другому складу...
Не могу понять эту задачу(
Метод Лосяша +. Скажу в защиту первого метода: в ТЗ вроде нет необходимости выполнять запрос по все трем субконто так как было в Консоле при анализе отрицательных остатков после первого мотода. По ТЗ для контроля остатков интересует инфа по Номенклатуре и Складу, для расчета себестоимости по Номенклатуре и Партии. Вроде и нарваться на отрицательные остатки негде. Кроме того, сколько будет таких несовпадений (Склад-Партия), может их не будет никогда, или они будут достаточно редкие. А остатки выйдут в "0" при реализации всех партий на всех складах. Возможно и экзаменатор это понимает поэтому и допускает такой вариант, так как он не мешает реализации ТЗ. Или может я туплю!?
А в методе Буковки, раз мы не заполняем сумму в движении по счету ТоварыНаСкладах, разве не надо отключить вообще суммовой учет для этого счета? То есть завести признак учета суммовой и убрать флажок этого признака на счете? А сейчас получается, что суммовой учет есть, просто сумма всегда 0.
А если "теоретически" допустить (в билете такого конечно нет), что приход можно сделать операцией, КАК в методе Буковки пользователю догадаться о дополнительной проводке на забалансовый счет!? По методу Лосяша он в операции увидит и заполнит количество на складе...
Попалась подобная задача. Жаль, что разбор увидел уже после экзамена. Решил первым методом. Но метод Лосяша +
Решили методом в "лоб" или методом Проходцева?
Доброго времени суток, Илья!
Хочется уточнить момент про метод "в лоб". Если изменить запрос в расходной, то будут и волки сыты, и овцы целы.
Добавить временную табличку, где отбирались бы количественные итоги по номенклатуре и складу, и выбрать из нее партии, которые точно есть на этом складе. А потом соединить нашу свернутую табличную часть с виртуальной таблицей остатков по РБ, параметром которой будут номенклатура и партия из созданной временной таблицы. При этом при списании партий выбирать меньшее не с количеством партии, а с количеством партии на этом конкретном складе. Доработка кода минимальна. Никаких доп.ресурсов. Запрос для отчета самый простецкий и отрицательных остатков нет
ВЫБРАТЬ
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК КоличествоДок
ПОМЕСТИТЬ ТЧ
ИЗ
Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
УправленческийОстатки.Субконто1 КАК Номенклатура,
УправленческийОстатки.Субконто3 КАК Партия,
ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоПартииНаСкладе
ПОМЕСТИТЬ ПартииНаСкладе
ИЗ
РегистрБухгалтерии.Управленческий.Остатки(
&МВ,
Счет = &СчетТовары,
&МассивВидовСубконто,
Субконто1 В
(ВЫБРАТЬ
ТЧ.Номенклатура КАК Номенклатура
ИЗ
ТЧ КАК ТЧ)
И Субконто2 = &Склад) КАК УправленческийОстатки
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
Партия
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ТЧ.Номенклатура КАК Номенклатура,
ТЧ.Номенклатура.Представление КАК НоменклатураПредставление,
ТЧ.КоличествоДок КАК КоличествоДок,
ПартииНаСкладе.КоличествоПартииНаСкладе КАК КоличествоПартииНаСкладе,
ПартииНаСкладе.Партия КАК Партия,
ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоПартии,
ЕСТЬNULL(УправленческийОстатки.СуммаОстаток, 0) КАК СуммаПартии
ИЗ
ТЧ КАК ТЧ
ЛЕВОЕ СОЕДИНЕНИЕ ПартииНаСкладе КАК ПартииНаСкладе
ПО ТЧ.Номенклатура = ПартииНаСкладе.Номенклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
&МВ,
Счет = &СчетТовары,
&МассивВидовСубконто,
(Субконто1, Субконто3) В
(ВЫБРАТЬ
ПартииНаСкладе.Номенклатура КАК Номенклатура,
ПартииНаСкладе.Партия КАК Партия
ИЗ
ПартииНаСкладе КАК ПартииНаСкладе)) КАК УправленческийОстатки
ПО (ПартииНаСкладе.Номенклатура = УправленческийОстатки.Субконто1)
И (ПартииНаСкладе.Партия = УправленческийОстатки.Субконто3)
УПОРЯДОЧИТЬ ПО
ВЫРАЗИТЬ(ПартииНаСкладе.Партия КАК Документ.ПриходнаяНакладная).МоментВремени
ИТОГИ
МАКСИМУМ(КоличествоДок),
СУММА(КоличествоПартииНаСкладе)
ПО
Номенклатура
Всё правильно. Ставлю палец вверх
Когда вы списываете себестоимость, вам нельзя делать условие по складу. В итоге данный метод не дает правильного расчета себестоимости, т.к. нужная для расчета с/с партия может поступить на склад, отличный от склада списания.
@@РобинБобин-д9е Не вводите людей в заблужение. Данный метод работает корректно и он проще всего. Пройдитесь консолью
ЕСТЬNULL(УправленческийОстатки.КоличествоОстаток, 0) КАК КоличествоПартии, - общее количество товара по всем складам в разрезе номенклатуры и партии
ЕСТЬNULL(УправленческийОстатки.СуммаОстаток, 0) КАК СуммаПартии - общая сумма товара по всем складам в разрезе номенклатуры и партии
То есть контроль остатков делаем не по КоличествоОстаток склада (из 2 таблицы), а берём из третьей по приходной (ТОЛЬКО для суммы), а для количество из второй
16:20 зашла речь о консолях запросов. Советую ещё пользоваться этими консолями в режиме толстого клиента. Меняется режим работы консолей и степень удобства работы с ними по сравнению с тонким. В толстом удобнее.
За метод Буковки. Ради интереса попробовала бы его на экзамене)
Не работают разные алгоритмы списания себестоимости т.к. в запросе сортировка по возрастанию момента времени и текст запроса в итоге не меняется от выбранного метода списания.
Попробовал решить задачу с такой настройкой плана счетов, которая у Ильи была в первоначальном варианте, только запрос написал другой. Суть в том, что первая вирт. таблица остатков выбирает остатки в разрезе 3-х субконто (с отбором по складу расходной накладной), из этой таблицы мы берем количество остатка на складе, но как бы в разрезе партии. А потом к этой таблице получаем еще вирт. таблицу остатков без субконто склада (только номенклатура и партия) и из нее берем среднюю себес. партии. В итоге у меня по регистру сумма и кол-во выходит в 0 по всем трем субконто. Вот сижу и думаю, может я что-то упустил, что такой вариант не был рассмотрен?
Вот запрос:
ВЫБРАТЬ
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество,
СУММА(РасходнаяНакладнаяСписокНоменклатуры.Сумма) КАК Сумма
ПОМЕСТИТЬ втТовары
ИЗ
Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втТовары.Номенклатура КАК Номенклатура,
втТовары.Количество КАК Количество,
втТовары.Сумма КАК Сумма,
УправленческийОстаткиПоСкладуИПартии.Субконто3 КАК Партия,
ЕСТЬNULL(УправленческийОстаткиПоСкладуИПартии.КоличествоОстаток, 0) КАК КоличествоОстатокПартииНаСкладе
ПОМЕСТИТЬ втОстаткиПартийНаСкладе
ИЗ
втТовары КАК втТовары
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
&МоментВремени,
Счет = &СчетТовары,
&СубконтоСкладыПартии,
Субконто1 В
(ВЫБРАТЬ
втТовары.Номенклатура КАК Номенклатура
ИЗ
втТовары КАК втТовары)
И Субконто2 = &Склад) КАК УправленческийОстаткиПоСкладуИПартии
ПО втТовары.Номенклатура = УправленческийОстаткиПоСкладуИПартии.Субконто1
ИНДЕКСИРОВАТЬ ПО
Номенклатура,
Партия
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втОстаткиПартийНаСкладе.Номенклатура КАК Номенклатура,
втОстаткиПартийНаСкладе.Номенклатура.Наименование КАК НоменклатураНаименование,
втОстаткиПартийНаСкладе.Количество КАК Количество,
втОстаткиПартийНаСкладе.Сумма КАК Сумма,
втОстаткиПартийНаСкладе.Партия КАК Партия,
втОстаткиПартийНаСкладе.КоличествоОстатокПартииНаСкладе КАК КоличествоОстатокПартииНаСкладе,
ЕСТЬNULL(УправленческийОстаткиПартий.КоличествоОстаток, 0) КАК КоличествоОстатокПартии,
ЕСТЬNULL(УправленческийОстаткиПартий.СуммаОстаток, 0) КАК СуммаОстатокПартии
ИЗ
втОстаткиПартийНаСкладе КАК втОстаткиПартийНаСкладе
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки(
&МоментВремени,
Счет = &СчетТовары,
&СубконтоПартии,
(Субконто1, Субконто2) В
(ВЫБРАТЬ
втОстаткиПартийНаСкладе.Номенклатура КАК Номенклатура,
втОстаткиПартийНаСкладе.Партия КАК Партия
ИЗ
втОстаткиПартийНаСкладе КАК втОстаткиПартийНаСкладе)) КАК УправленческийОстаткиПартий
ПО втОстаткиПартийНаСкладе.Номенклатура = УправленческийОстаткиПартий.Субконто1
И втОстаткиПартийНаСкладе.Партия = УправленческийОстаткиПартий.Субконто2
УПОРЯДОЧИТЬ ПО
Партия
ИТОГИ
МАКСИМУМ(НоменклатураНаименование),
МАКСИМУМ(Количество),
СУММА(КоличествоОстатокПартииНаСкладе)
ПО
Номенклатура
Понял свою ошибку, количественный учет по субконто партий не даст выбрать остаток партии, которой нет на складе расходной накладной, что противоречит условию задачи
@@АлексейПряничников-л5с Если в последнем запросе в виртуальной таблице не накладывать отбор по партии и сделать полное соединение, то будут выведены все партии с количеством и суммой остатков.
Спасибо за прекрасные стримы. Жалко я не успеваю с такой же скоростью делать, приходится смотреть в записи.
Я по поводу первого способа не понял. Зачем вы соединяете втТЧТовары с остатками по складам. Как я понимаю нужно выбранные остатки из регистра остатков партии соединять с выбираемыми остатками по складам, соединять по Номенклатуре и Партии и тогда будут верные остатки и по сумме партии и по количеству на складах. примерно так:
ВЫБРАТЬ
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура,
СУММА(РасходнаяНакладнаяСписокНоменклатуры.Количество) КАК Количество
ПОМЕСТИТЬ втТЧТовары
ИЗ
Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры
ГДЕ
РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
РасходнаяНакладнаяСписокНоменклатуры.Номенклатура
ИНДЕКСИРОВАТЬ ПО
Номенклатура
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СуммаПоПартиям.Субконто1 КАК Номенклатура,
СуммаПоПартиям.Субконто3 КАК Партия,
ЕСТЬNULL(СуммаПоПартиям.СуммаОстаток, 0) КАК СуммаОстаток,
ЕСТЬNULL(СуммаПоПартиям.КоличествоОстаток, 0) КАК КоличествоОстатокПоПартии
ПОМЕСТИТЬ втПартии
ИЗ
РегистрБухгалтерии.Управленческий.Остатки(
&МоментВремени,
счет = &Счет,
,
Субконто1 В
(ВЫБРАТЬ
втТЧТовары.Номенклатура КАК Номенклатура
ИЗ
втТЧТовары КАК втТЧТовары)) КАК СуммаПоПартиям
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
КоличествоПоСкладам.Субконто1 КАК Номенклатура,
КоличествоПоСкладам.Субконто3 КАК Партия,
ЕСТЬNULL(КоличествоПоСкладам.КоличествоОстаток, 0) КАК КоличествоОстатокПоСкладу
ПОМЕСТИТЬ втОстаткиПоСкладам
ИЗ
РегистрБухгалтерии.Управленческий.Остатки(
&МоментВремени,
счет = &Счет,
,
Субконто1 В
(ВЫБРАТЬ
втТЧТовары.Номенклатура КАК Номенклатура
ИЗ
втТЧТовары КАК втТЧТовары)
И Субконто2 = &Склад) КАК КоличествоПоСкладам
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втТЧТовары.Номенклатура КАК Номенклатура,
МАКСИМУМ(втТЧТовары.Количество) КАК Количество,
МАКСИМУМ(втПартии.СуммаОстаток) КАК СуммаОстаток,
МАКСИМУМ(втПартии.КоличествоОстатокПоПартии) КАК КоличествоОстатокПоПартии,
СУММА(втОстаткипоСкладам.КоличествоОстатокПоСкладу) КАК КоличествоОстатокПоСкладу
ИЗ
втТЧТовары КАК втТЧТовары
ЛЕВОЕ СОЕДИНЕНИЕ втПартии КАК втПартии
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втОстаткиПоСкладам КАК втОстаткипоСкладам
ПО втПартии.Номенклатура = втОстаткипоСкладам.Номенклатура
И втПартии.Партия = втОстаткипоСкладам.Партия
ПО втТЧТовары.Номенклатура = втПартии.Номенклатура
СГРУППИРОВАТЬ ПО
втТЧТовары.Номенклатура
Верно мыслите, но запрос не верный. В последнем как минимум партия должна быть, скорей всего итоги тоже.
да, я тоже этим путем пошел, вроде все отлично работает, думаю теперь то ли я что-то не понял, почему не рассмотрели такой простой вариант
как нубу мне метод буковки зашел как там и был, а метод лосяша я не пойму даже если пересмотрю еще раз, а запомню как делать примерно раза с пятого. если попадется этим методом буду решать и если сдам буду топить за него в чатах и форумах и сраться до хрипоты.
да, метод Буковки понятнее, но одно смущает - получается, что мы добавляем лишнюю проводку, в то время как в условии четко написано, какие проводки должны быть
после какого занятия базу откапывать, 42 или 43?
43
Какая-то очень странная задача в плане логики. Спасибо за разбор
Логики в билетах зачастую просто нет, ибо главная цель экзамена - не реальную ситуацию разобрать, которая может на практике встретиться, а запутать сдающего и посадить его в лужу))
Илья, родной! Ну разве можно сложные задачи показывать переделывая (доделывая) старую задачу?? Прямо издевательство над тихоходами, такими как я ((
Кто ж заставляет шпарить за Ильей?) Ставите на паузу, изменяете код, хоть каждую минуту. Я так делаю (тоже тихоход).
Да Илья уже не увидит ничего здесь, он уже давно не 1С.