Подсчет количества основного средства внутри запроса.
Доброго времени суток. Столкнулся со странным решением программиста, который работал с конфигурацией до меня, что поставило меня в ступор. Итак, моя задача составить отчёт по драгоценным материалам (Остаток на начало/приход/расход/Остаток на конец).
Первая заковыка в том, что драг-материалы входят в состав определённых основных средств, т.е. отдельно от ОС мы принять на учёт драг-материалы не можем. Условно, в состав станка, принятого нами на учёт, входит 5 гр золота, значит вместе с ним мы приняли на учёт и эти 5 гр золота. Казалось бы, если бы к нам поступило 5 таких станков, то мы приняли бы на учёт 25 гр, и по логике вещей так и должно быть, но тут вылазит вторая заковыка: данные о количестве драг-материала лежат в табличной части справочника "Основные средства" и только там. Ни в каком регистре их нет, приём станка на учёт отражается только в регистре сведений "Состояния ОС", который содержит лишь ссылку на справочник.
Ниже прикреплю результат исполнения отчёта и сам запрос.
Вопрос в следующем: мне необходимо считать количество определённого ОС (например, сколько принято на учёт станка №1), после чего умножать это количество на количество драг-материала, содержащегося в одном таком станке. Как это можно сделать? Заранее благодарю!
Первая заковыка в том, что драг-материалы входят в состав определённых основных средств, т.е. отдельно от ОС мы принять на учёт драг-материалы не можем. Условно, в состав станка, принятого нами на учёт, входит 5 гр золота, значит вместе с ним мы приняли на учёт и эти 5 гр золота. Казалось бы, если бы к нам поступило 5 таких станков, то мы приняли бы на учёт 25 гр, и по логике вещей так и должно быть, но тут вылазит вторая заковыка: данные о количестве драг-материала лежат в табличной части справочника "Основные средства" и только там. Ни в каком регистре их нет, приём станка на учёт отражается только в регистре сведений "Состояния ОС", который содержит лишь ссылку на справочник.
Ниже прикреплю результат исполнения отчёта и сам запрос.
Вопрос в следующем: мне необходимо считать количество определённого ОС (например, сколько принято на учёт станка №1), после чего умножать это количество на количество драг-материала, содержащегося в одном таком станке. Как это можно сделать? Заранее благодарю!
ВЫБРАТЬ
ОсновныеСредстваДрагоценныеМатериалы.Ссылка КАК Ссылка,
ОсновныеСредстваДрагоценныеМатериалы.ДрагоценныйМатериал КАК ДрагоценныйМатериал,
ОсновныеСредстваДрагоценныеМатериалы.Количество КАК Количество
ПОМЕСТИТЬ ВТОССДрагметаллом
ИЗ
Справочник.ОсновныеСредства.ДрагоценныеМатериалы КАК ОсновныеСредстваДрагоценныеМатериалы
ИНДЕКСИРОВАТЬ ПО
Ссылка,
ДрагоценныйМатериал
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СостоянияОСОрганизацийСрезПоследних.ОсновноеСредство КАК ОсновноеСредство
ПОМЕСТИТЬ ВТОСНаНачало
ИЗ
РегистрСведений.СостоянияОСОрганизаций.СрезПоследних(&НачалоПериода, ) КАК СостоянияОСОрганизацийСрезПоследних
ГДЕ
СостоянияОСОрганизацийСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОС.ПринятоКУчету)
СГРУППИРОВАТЬ ПО
СостоянияОСОрганизацийСрезПоследних.ОсновноеСредство
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТОССДрагметаллом.ДрагоценныйМатериал КАК Драгметалл,
СУММА(ВТОССДрагметаллом.Количество) КАК КоличествоНаНачало
ПОМЕСТИТЬ ВТДрагметаллНаНачало
ИЗ
ВТОСНаНачало КАК ВТОСНаНачало
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТОССДрагметаллом КАК ВТОССДрагметаллом
ПО ВТОСНаНачало.ОсновноеСредство = ВТОССДрагметаллом.Ссылка
СГРУППИРОВАТЬ ПО
ВТОССДрагметаллом.ДрагоценныйМатериал
ИНДЕКСИРОВАТЬ ПО
Драгметалл
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТОСНаНачало
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СостоянияОСОрганизацийСрезПоследних.ОсновноеСредство КАК ОсновноеСредство
ПОМЕСТИТЬ ВТОСНаКонец
ИЗ
РегистрСведений.СостоянияОСОрганизаций.СрезПоследних(&КонецПериода, ) КАК СостоянияОСОрганизацийСрезПоследних
ГДЕ
СостоянияОСОрганизацийСрезПоследних.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОС.ПринятоКУчету)
СГРУППИРОВАТЬ ПО
СостоянияОСОрганизацийСрезПоследних.ОсновноеСредство
ИНДЕКСИРОВАТЬ ПО
ОсновноеСредство
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТОССДрагметаллом.ДрагоценныйМатериал КАК Драгметалл,
СУММА(ВТОССДрагметаллом.Количество) КАК КоличествоНаКонец
ПОМЕСТИТЬ ВТДрагметаллНаКонец
ИЗ
ВТОСНаКонец КАК ВТОСНаКонец
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТОССДрагметаллом КАК ВТОССДрагметаллом
ПО ВТОСНаКонец.ОсновноеСредство = ВТОССДрагметаллом.Ссылка
СГРУППИРОВАТЬ ПО
ВТОССДрагметаллом.ДрагоценныйМатериал
ИНДЕКСИРОВАТЬ ПО
Драгметалл
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТОСНаКонец
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СостоянияОСОрганизаций.ОсновноеСредство КАК ОсновноеСредство
ПОМЕСТИТЬ ВТОССнятыеСУчета
ИЗ
РегистрСведений.СостоянияОСОрганизаций КАК СостоянияОСОрганизаций
ГДЕ
СостоянияОСОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода
И СостоянияОСОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОС.СнятоСУчета)
СГРУППИРОВАТЬ ПО
СостоянияОСОрганизаций.ОсновноеСредство
ИНДЕКСИРОВАТЬ ПО
ОсновноеСредство
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТОССДрагметаллом.ДрагоценныйМатериал КАК Драгметалл,
СУММА(ВТОССДрагметаллом.Количество) КАК Количество
ПОМЕСТИТЬ ВТДрагметаллРасход
ИЗ
ВТОССнятыеСУчета КАК ВТОССнятыеСУчета
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТОССДрагметаллом КАК ВТОССДрагметаллом
ПО ВТОССнятыеСУчета.ОсновноеСредство = ВТОССДрагметаллом.Ссылка
СГРУППИРОВАТЬ ПО
ВТОССДрагметаллом.ДрагоценныйМатериал
ИНДЕКСИРОВАТЬ ПО
Драгметалл
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТОССнятыеСУчета
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СостоянияОСОрганизаций.ОсновноеСредство КАК ОсновноеСредство
ПОМЕСТИТЬ ВТОСПринятыеКУчету
ИЗ
РегистрСведений.СостоянияОСОрганизаций КАК СостоянияОСОрганизаций
ГДЕ
СостоянияОСОрганизаций.Период МЕЖДУ &НачалоПериода И &КонецПериода
И СостоянияОСОрганизаций.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияОС.ПринятоКУчету)
СГРУППИРОВАТЬ ПО
СостоянияОСОрганизаций.ОсновноеСредство
ИНДЕКСИРОВАТЬ ПО
ОсновноеСредство
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТОССДрагметаллом.ДрагоценныйМатериал КАК ДрагоценныйМатериал,
СУММА(ВТОССДрагметаллом.Количество) КАК Количество
ПОМЕСТИТЬ ВТДрагметаллПриход
ИЗ
ВТОСПринятыеКУчету КАК ВТОСПринятыеКУчету
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТОССДрагметаллом КАК ВТОССДрагметаллом
ПО ВТОСПринятыеКУчету.ОсновноеСредство = ВТОССДрагметаллом.Ссылка
СГРУППИРОВАТЬ ПО
ВТОССДрагметаллом.ДрагоценныйМатериал
ИНДЕКСИРОВАТЬ ПО
ДрагоценныйМатериал
;
////////////////////////////////////////////////////////////////////////////////
УНИЧТОЖИТЬ ВТОСПринятыеКУчету
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТДрагметаллНаНачало.Драгметалл КАК Драгметалл,
ВТДрагметаллПриход.Количество КАК Приход,
ВТДрагметаллРасход.Количество КАК Расход,
ВТДрагметаллНаКонец.КоличествоНаКонец КАК КоличествоНаКонец,
ВТДрагметаллНаНачало.КоличествоНаНачало КАК КоличествоНаНачало
ИЗ
ВТДрагметаллНаНачало КАК ВТДрагметаллНаНачало
ЛЕВОЕ СОЕДИНЕНИЕ ВТДрагметаллПриход КАК ВТДрагметаллПриход
ПО ВТДрагметаллНаНачало.Драгметалл = ВТДрагметаллПриход.ДрагоценныйМатериал
ЛЕВОЕ СОЕДИНЕНИЕ ВТДрагметаллРасход КАК ВТДрагметаллРасход
ПО ВТДрагметаллНаНачало.Драгметалл = ВТДрагметаллРасход.Драгметалл
ЛЕВОЕ СОЕДИНЕНИЕ ВТДрагметаллНаКонец КАК ВТДрагметаллНаКонец
ПО ВТДрагметаллНаНачало.Драгметалл = ВТДрагметаллНаКонец.Драгметалл
ПоказатьПрикрепленные файлы:

По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Если я внимательно просмотрел запроса, то запрос получения начального остатка содержит ошибку. В нем срезом последних выбираются данные на начало периода, но таблица среза последних учитывает также движения на саму дату. Следовательно в начальный остаток могут попасть данные, включенные в сам период отчета, чего быть не должно.
дочитал пакеты до половины и ничего странного не увидел - хороший стиль языка запросов, текущая как ящерка по валуну логика и бла бла бла.
тут бывает такие скопления инфузорий-туфелек, что хрен разберешь без микроскопа, а тут четкий пацан писал.
давайте обсудим странности вашего предшественника, может он курил сигары?
чес-слово, когда оправдывают свою лень предшественником хочется философить.
тут бывает такие скопления инфузорий-туфелек, что хрен разберешь без микроскопа, а тут четкий пацан писал.
давайте обсудим странности вашего предшественника, может он курил сигары?
чес-слово, когда оправдывают свою лень предшественником хочется философить.
(2) Меня мало интересует, что курил предшественник, меня интересует, как посчитать количество определённого вида ОС. Например, при поступлении тех же 5 станков №1 и 3 станков №2, я должен получить 25 гр золота и условные 6 гр палладия. В данный момент я получаю 5 гр золота и 2 гр палладия на те же 5 станков №1 и 3 станка №2. Вопрос открыт, как мне посчитать в запросе, сколько же именно у меня отдельно станков №1 и станков №2? Вопрос заключается лишь в этом.
(4) Не совсем так. Принятие на учет действительно присваивает статус для ОС "ПринятКУчету", но поскольку регистраторы, оформляющие поступление ОС, имеют табличные части, то в одной записи регистра может содержаться до n основных средств, где n - количество ОС из табличной части регистратора. В то же время, можно сформировать и 5 различных записей, указав в 5 документах по одному станку, тут уж как заказчик документы оформит. :) Такие вот дела.
(5) Какую конфигурацию Вы используете? Указанное количество каким-то образом еще отражается в других регистрах?
В конце-концов быть может Вам добавить свой регистр накопления для отражения оборота драг. металлов? И формировать движения по нему документами принятия и списания ОС.
В конце-концов быть может Вам добавить свой регистр накопления для отражения оборота драг. металлов? И формировать движения по нему документами принятия и списания ОС.
(6)Бухгалтерия 3. Указанное количество д/м нигде, кроме как в табличной части справочника не отражается. Количество ОС тоже. Регистр накопления вводить так же не имеет смысла, потому что конфигурация типовая, а я занимаюсь внешним отчётом. Да, в конфигурации есть определённые корректировки, но не настолько глобальные. :)
(13) Указание количества д/м в табличной части справочника - это идея предшественника, не могу сказать, как это отразится на инвентарных номерах, ибо в тонкостях учёта ОС я сам не разбираюсь, поскольку я программист, и лишь дорабатываю то, что меня просят доработать.
(6) Учет ОС практически идентичен в БП, ЕРП, причем даже в рамках бывших республик похож в 1С, регламенты и формы родом из СССР.
Открывайте любую БП и снимкайте, доки монстроидальные и меняют видимость элементов от ряда факторов: вид ОС, вид операции и пр.
подозреваю, что раз автор вместо 5 грамм видит 2, то кто-то сейчас ходит с колечком)
Открывайте любую БП и снимкайте, доки монстроидальные и меняют видимость элементов от ряда факторов: вид ОС, вид операции и пр.
подозреваю, что раз автор вместо 5 грамм видит 2, то кто-то сейчас ходит с колечком)
по учету драг металлов есть важный нюанс - точность единиц измерений.
как-то времена 7.7. ювелиры пытались меня убедить сделать точность во всех доках до 5 знаков после запятой, отказался - муть мутнейшая.
не представляю как тс учитывает граммы без страха на округлениях потерять
как-то времена 7.7. ювелиры пытались меня убедить сделать точность во всех доках до 5 знаков после запятой, отказался - муть мутнейшая.
не представляю как тс учитывает граммы без страха на округлениях потерять
(14) Граммы - это пример. Как видите, в моём случае данные с точностью аж до 7 знаков после запятой. Все данные уже заложены, мне их только отобразить нужно. Как видите, запрос я написал, данные получаю, только данные эти некорректны, поскольку я не учёл, что количество д/м постоянно и хранится в таб. части справочника. Почему я ругал предшественника - потому что именно он осуществил хранение количества д/м только в ней.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот