При работе в 1С:Управление торговлей 10.3 часто возникает задача определить, из каких конкретно документов поступления сформирован текущий товарный остаток. Это необходимо для реализации метода оценки запасов ФИФО (FIFO), когда мы должны списать в первую очередь товары из тех документов, которые пришли раньше всего. Давайте разберем, как подступиться к этой задаче, учитывая архитектурные особенности системы.
Прежде чем приступать к написанию собственного алгоритма, давайте проанализируем, почему штатные средства могут оказаться достаточными. Основным инструментом в УТ 10.3 для этих целей является регистр накопления Партии товаров на складах.
Учетной политике партионный учет.Партии товаров на складах уже хранятся в разрезе документов поступления (измерение ДокументОприходования).Это самый надежный способ, так как система автоматически «закрывает» партии при проведении документов расхода. Если данные в этом регистре расходятся с данными регистра Товары на складах, это свидетельствует о проблемах в учете или некорректных корректировках, которые нужно устранить, а не обходить программно.
Если по какой-либо причине партионный учет в системе отключен или не соответствует вашим требованиям, приходится реализовывать расчет «на лету». Суть метода заключается в имитации движения товаров по принципу ФИФО путем последовательного вычисления накопленного итога.
Разберем алгоритм по шагам:
Поступление товаров и услуг, Оприходование товаров, Возврат товаров от покупателя).ФИФО.Реализовать это с помощью запроса 1С можно через использование временных таблиц. Посмотрим на логику построения такого запроса:
ВЫБРАТЬ
Приходы.ДокументОприходования,
Приходы.Количество КАК КоличествоВПартии,
СУММА(Приходы.Количество) КАК НакопленноеКоличество
ПОМЕСТИТЬ ВременнаяТаблицаПриходов
ИЗ
ДокументыПрихода КАК Приходы
СГРУППИРОВАТЬ ПО
Приходы.ДокументОприходования, Приходы.Количество
;
ВЫБРАТЬ
Т1.ДокументОприходования
ИЗ
ВременнаяТаблицаПриходов КАК Т1
ГДЕ
Т1.НакопленноеКоличество <= &ТекущийОстаток
При самостоятельной разработке учитывайте следующие факторы:
Комплектацию, Передачу между организациями и Возвраты. Если вы игнорируете эти операции, расчет будет неточным.Ведомость по партиям товаров. Он часто уже содержит всю необходимую аналитику, которую можно вывести в табличный документ или использовать в модуле через КомпоновщикНастроек.В заключение, старайтесь максимально использовать встроенный механизм партионного учета УТ 10.3. Если партионный учет не ведется, разработка алгоритма требует строгого соблюдения хронологической последовательности движений, в противном случае корректное определение ФИФО невозможно.