СрезПоследних в табличной части Требования-Накладной #467875


#0 by Gill
Народ прошу помощи.Конфигурация УСХП 8 (на базе УПП.)Задача следующая: В документе Требование-Накладная добавил реквизит таб.части "Норма" числовой тип. Необходимо при указании количества списываемой номенклатуры выводить "Норму" определяя её по следующему условию: Есть регистр сведений "Размещение животных" в котором содержится информция по животному и месту содержания (Например Животное №50020 место "Ферма №1").Добавил функцию для расчета количества животных на конкретной ферме,в итоге это количество нужно умножить на норму (для этого создал соответствующий Регистр сведений где храню Номенклатуру с соответствующей нормой списания).Привожу пример функции.Голову уже сломал незнаю почему не высчитывает: Функция ПолучитьКоличествоЖивотных (Животное,Дата,ПодразделениеОрганизации) Экспорт    КонецФункции В процедуре трею-накл пишу следующее: Процедура МатериалыКоличествоПриИзменении(Элемент,ПодразделениеОрганизации,Животное)
#1 by luckyluke
И Точно те параметры?
#2 by Gill
А как нужно?
#3 by Нуф-Нуф
а может проще левым соединением к табличной части?
#4 by hhhh
ну ты определись, что у тебя на первом месте: животное или номенклатура? в функции у тебя животное - это первый параметр
#5 by Gill
Да, но ведь в табличной части Треб-накладной нет реквизита "Животное"
#6 by luckyluke
И ведь прав же! Не придерешься! Нет там реквизита "Животное"!
#7 by luckyluke
Странно вообще называть дату для среза именем: "ПодразделениеОрганизации", я бы на такое не решился.
#8 by Gill
Какие есть предложения?
#9 by luckyluke
Ну я бы назвал ДатаСреза.
#10 by Gill
ДатаСреза пробовал не работает
#11 by hhhh
и ты решил вместо даты подсунуть подразделение, а вместо подразделения - животное?
#12 by Gill
подскажите уже как это сделать...
#13 by Stim
спс, хорошее название для функции выборки количества пользователей базы..
#14 by hhhh
не можем просто понять? Что такое у тебя "Животное"? Это какое-то число?
#15 by Gill
Животное-это ссылка на справочник "Животные"
#16 by Gill
А в регистре "Размещение" - это измерение, а ПодразделениеОрганизации-это ресурс
#17 by hhhh
а что же тогда пишешь: Прикалываешься?
#18 by Gill
Ну в запросе же я получаю КОЛИЧЕСТВО(Животное).Я и ПодразделениеОрганизации пытался считать)))
#19 by luckyluke
"Добавил функцию для расчета количества животных на конкретной ферме" Нафига тогда в отборе по срезу: СрезПоследних(&НаДату, Животное = &Животное) У тебя животное всегда будет <= 1
#20 by luckyluke
КОЛИЧЕСТВО(Животное) - это надо в поле писать и группировать по подразделению, итог здесь излишни, и отбирать надо подразделение, а не животное и еще у Выборки есть метод Следующий, а еще в запрос ты вместо даты передаешь подразделение... и еще и еще, попробовал(а) бы отладить что ли своё творчество.
#21 by mikecool
держи ссылку, меня здесь на путь истинный наставили может поможет
#22 by hhhh
правда, КОЛИЧЕСТВО. Извини, не посмотрел. Но всё-таки с параметрами функции ещё раз проверь.
#23 by Wasssaby
Джил, если ты корректно написал изначальное условие - то твой запрос (и регистр сведений) в данном случае вообще не в кассу. В твоем запросе ты делаешь выборку по конкретному животному - если я правильно понимаю, животное всегда одно, то есть результат такого запроса - число 1 или 0. Если же ты не знаешь, на какой конкретной ферме стоит животное из строки табличной чати документа, то алгоритм должен быть таким: 1. Определяем в каком подразделении и на какой ферме животное 2. Берем Остатки по ферме (или по подразделению, не знаю как тебе надо) из регистра НАКОПЛЕНИЯ. 3. Умножаем из на норму. Вообще все перечисленное можно сделать одним сложным запросом, но можно и двумя.
#24 by Wasssaby
Немного подумав, поправлюсь. Можно конечно и через регистр сведений, выбрав КоличествоРазличные(Животное) с отбором по ферме. Но для этого нужен гиморный способ "списания" животных, которых на этой ферме больше нет, скажем, путем заведения новой фермы "Мясокомбинат" и перевода туда животных, которых вы отправили на еду.   У тебя куда попадают животинки, когда их с вашей фермы увозят? (имею в виду в учете конечно, куда они в реале едут мне неинтересно =)
#25 by Gill
Мы пытаемся реализовать механизм списания не животных, а кормов для этих самых животных. А списание кормов должно быть в соответствии количества голов на ферме.Так вот это количество я и пытаюсь получить из соответствующего регистра "Размещение животных".Далее после получения общего количества животных мы это количество должны умножить на соответствующий норматив (ну например Номенклатура-Фураж, Норма= 2,5 кг * кол-во голов).В итоге при формировании документа "Треб-накл" нужно чтобы при вводе фактического количества машина выдала в колонке "Норма" то количество, которое положено списать на имеющееся количество голов животных.
#26 by Wasssaby
То есть тебе нужно выбрать количество голов на конкретной ферме, так? Без указания конкретного животного?
#27 by Gill
именно
#28 by Wasssaby
ВЫБРАТЬ   Количество(ИнтекоРазмещениеЖивотныхСрезПоследних.Животное) КАК КоличествоЖивотных
#29 by Wasssaby
Но чуствую я камрад, что лажа какая то у тебя с методикой учета поголовья =)
#30 by Gill
^
#31 by Gill
И так не получается...
#32 by luckyluke
ВЫБРАТЬ
#33 by Wasssaby
Джил, тебе уже дважды текст запроса написали, и
#34 by Gill
А в Процедуре МатериалыКоличествоПриИзменении как написать?
#35 by Wasssaby
А почему МатериалыКоличествоПриИзменении ? 1. Подразделение организации - это реквизит шапки. Следовательно, поголовье расчитывается только при изменении подразделения, т.е. 1 раз. Можно создать переменную модуля и по наступлению события "смена подразделения" пересчитывать количество голов. А при изменении строки уже брать значение из этой переменной, не гоняя 100 раз один и тот же запрос. 2. Норма списания (коли это норма) - меняется только при изменении номенклатуры. Причем тут процедура  МатериалыКоличествоПриИзменении ?? Тогда уж наверно МатериалыНоменклатураПриИзменении, ведь у разной номенклатуры разные коэффициенты?
#36 by Wasssaby
Я бы сделал так: КонецПроцедуры
#37 by Gill
Ура!!!  Wasssaby, спасибо заработало...
#38 by Wasssaby
Не за что. Ты на ферме трудишься?
#39 by hhhh
навоз гребет? Проверено. Очень интеллектуальная работа.
#40 by Wasssaby
Ну, я сам не проверял =) Но тебе поверю на слово.
#41 by Gill
Нет,ребята я пытаюсь автоматизировать учет на сельхозпредприятии...Спасибо всем за помощь!!!
#42 by Wasssaby
Слушай, а твое сельхозпредприятие не на ЕСХН случайно?
#43 by Gill
Нет, мы на ОСНО
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С