Остатки по поставщикам в УНФ через расчет партий

28.11.25

Учетные задачи - Логистика, склад и ТМЦ

Отчет позволяет получать остатки по количеству и входящей стоимости по поставщикам, даже если один товар поставляется от разных поставщиков за счет быстрого алгоритма расчета партий от начала времен до текущего момента. Также есть возможность из отчета создавать заявки на оплату.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Остатки по поставщикам в УНФ через расчет партий
.erf 30,86Kb ver:25.11.0201
10 3 000 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Отчет позволяет получать остатки по количеству и входящей стоимости по поставщикам, даже если один товар поставляется от разных поставщиков за счет быстрого алгоритма расчета партий от начала времен до текущего момента. Также есть возможность из отчета создавать заявки на оплату.

 

Описание отчета

Отчет имеет следующий вид:

 

https://geniy1s.ru/wp-content/uploads/2025/11/image-3-1024x564.png

 

На втором уровне группировок показывается поставщик:

 

https://geniy1s.ru/wp-content/uploads/2025/11/image-4.png

 

В шапке отчета нужно задать период и нажать «Сформировать отчет». Дополнительно можно задать отборы по поставщику, номенклатуре, организации, складу.

Штатными средствами настройки отчета на СКД можно установить дополнительные произвольные отбор и группировку по полям:

 

https://geniy1s.ru/wp-content/uploads/2025/11/image-5.png

 

Партии списываются по FIFO оптимизированным быстрым алгоритмом.

Дополнительно определяется фактическая и плановая оплата партии, где партией является документ поступления. Работает, если оплаты поставщикам разносятся по документам поступления.

В колонках показываются:

  • Организация, Контрагент, Номенклатура, Склад — поля данных группировки

  • Партия — документ, которым приходуется товар и с которого потом списываются партии

  • Серия — поле Партия из регистра запасов, чтобы не путалось, названо серией.

  • Регистратор — документ движения

  • «Нач остаток» — начальные остатки по количеству и сумме

  • «Приход» — приход товара по количеству и сумме

  • «Расход» — расход товара по количеству и сумме

  • «Кон остаток» — конечные остатки по количеству и сумме

  • Сумма документа — сумма документа

  • Оплата партии — на какую сумму оплачена документ партии

  • Долг партии — на какую сумму еще нужно оплатить партию

 

Создание заявок на оплату

Для создания заявок на оплату нужно выделить ячейки по документам:

 

https://geniy1s.ru/wp-content/uploads/2025/11/image-6-1024x296.png

 

Выделять ячейки можно с помощью двойного клика по ним или нажатия Enter. При этом они окрашиваются в синий цвет.

После этого нужно нажать «Состав заявки на оплату» и выбранные документы перенесутся на закладку «Состав»:

 

https://geniy1s.ru/wp-content/uploads/2025/11/image-7-1024x210.png

 

Далее можно нажать кнопку «Создать заявки на оплату» и будут созданы заявки на оплату по указанным данным. При этом в окне сообщений будет выведена информация о созданных документах:

 

https://geniy1s.ru/wp-content/uploads/2025/11/image-8.png

 

Создавать заявки на оплату можно нажимать и сразу, без предварительного просмотра состава.

Кнопка «Очистить выделенные расходы» очищает по выделенным строка таблицы состава соответствующие ячейки в таблице отчета.

Проверено на следующих конфигурациях и релизах:

  • Управление нашей фирмой, редакция 3.0, релизы 3.0.10.210

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Логистика, склад и ТМЦ 1С:Предприятие 8 Россия Платные (руб)

Подсистема автоматизированного управления складом AS WMS для конфигураций на платформе 1С 8. AS WMS – готовое решение для эффективного управления, хранения и учета на адресном складе. Внедрение системы AS WMS способствует быстрому отбору товара, ускорению инвентаризации, снижению зависимости от персонала, исключению пересорта. AS WMS встраивается в любую конфигурацию на платформе 1С 8 и работает как единая система без обменов. В учетной системе нет необходимости менять процессы под AS WMS (например, вводить ордерную схему), AS WMS использует стандартные документы по товародвижению вашей учетной системы.

50000 руб.

26.07.2023    11884    63    0    

13

Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 Сельское хозяйство и рыболовство Строительство Горнодобывающая промышленность Розничная и сетевая торговля (FMCG) Транспорт, автопарки, такси Оптовая торговля, дистрибуция, логистика Лесное и деревообрабатывающее хозяйство Управленческий учет Платные (руб)

Позволяет автоматизировать процесс взвешивания ТМЦ в организациях, осуществляющих приемку и отгрузку различным транспортом, для ведения складского учета и контроля остатков на складах. Конфигурация позволяет фиксировать вес вручную, напрямую с весов, а также управлять дополнительным оборудованием и контролировать движение транспорта.

40000 руб.

24.03.2015    138030    352    116    

145

Логистика, склад и ТМЦ Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Модуль ответственное хранения в 1С 8.3 для складов и фулфилмент-операторов: учет чужого товара, приемка на хранение, передача, возвраты, акты, адресный склад и работа с товарами поклажедателей.

89900 руб.

09.06.2020    56787    44    60    

78

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка номенклатуры из файлов Excel (xls, xlsx, ods, csv, mxl) в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

12444 руб.

29.10.2014    233460    755    540    

501
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kobayoshi 25 05.11.25 19:41 Сейчас в теме
На первый взгляд всё работает, выглядит как волшебство)
Сейчас предстоит подбить партии у клиента и сделать сверку, тогда появится возможность оценить отчёт на полную! Но уже большой плюс!
2. fixin 4340 05.11.25 19:51 Сейчас в теме
(1) Старое доброе FIFO, всегда считает от начала времен. Причем алгоритм специально пытался сделать максимально быстрым. Хотя я этим баловался еще когда только 7.7 начиналось, там тоже обсчитывал партии "от начала времен", по 11 тысяч ассортимента отчет считался пару часов, потом сохранялся в файл, зато у руководителя была точная себестоимость.

Сейчас этот отчет все считает намного быстрее, конечно, но это как раз из тех отчетов, где скорость не главное.
6. kobayoshi 25 12.11.25 16:48 Сейчас в теме
(2) Дошло до боевого применения и тут оказалось, что всё, к сожалению, не так, как хотелось бы...
Если всё движение на одном складе, то супер. Но как только делаешь перемещение, то это уже как будто новая пустая партия. Получается, если на Основном складе завести Оприходование и Приход, например, то после перемещения это уже новая партия от неизвестного поставщика. Не смотрел пока внутрянку, поэтому сначал хотел уточнить, возможно ли изменить логику? Ну и по структуре вопрос, в пользовательском режиме её не поменять?
7. fixin 4340 12.11.25 17:21 Сейчас в теме
(6) посмотрел, там надо немного дописать. Думаю, в случае перемещения движения по приходу на склад копировать из движения по расходу на склад, для этого лучше в порядке задать сначала расходные движения, потом приходные в рамках одного регистратора.

Мне тут попросил мой клиент доработать этот возврат в случае возвратов, там тоже при возвратах создается новая партия на документ возврата, а хотят по приемному документу, хотя вроде бы контрагент один и тот же. Возможно, посмотрю, что можно сделать с перемещениями.

Ну а что касается настроек, поменять нельзя, они зашиты в макете. Как-то это можно, наверное разрулить, но пока в планах нет.
8. kobayoshi 25 13.11.25 10:46 Сейчас в теме
(7) Ну с макетом не критично, а вот с перемещениями прям очень надо)
Не подскажите, когда получится обновить отчёт?
9. fixin 4340 13.11.25 12:58 Сейчас в теме
(8) пока что не могу дать никаких сроков. если получится на выходных, напишу.
kobayoshi; +1 Ответить
12. kobayoshi 25 25.11.25 17:20 Сейчас в теме
(9) Доброго времени суток!
Не было ещё возможности доработать отчёт?
13. fixin 4340 26.11.25 13:17 Сейчас в теме
(12) Пока еще нет. Постараюсь на этой неделе или выходных.
15. fixin 4340 28.11.25 20:30 Сейчас в теме
(12) доработал версия 25.11.2801
3. ОператорПК 2 10.11.25 11:41 Сейчас в теме
Один отчет - это конечно хорошо (лучше чем ничего), но вот было б много больше интересно если б была подсистема которая могла похвастаться "среднескользящим ФИФО" по всем отчетам - это ИМХО скорее всего утопия... ну так помечтать то можно.... К слову сказать я писал в 1С типа "какого художника" в УНФ у вас ФИФО - это не ФИФО, на что мне прислали ссылку на какой то закон что типа у них вполне себе ФИФО, но только не по среднескользящей а типа по средневзвешенной вроде называется, но хрен не слаще редьки... как оно называется это недоФИФО всем без разницы, всем подавай нормальные партии иначе УНФ "не канает" вот так вот... Я просил зарегить пожелание - реализации нормального ФИФО так мне отказали, т.е. даже зарегить пожелание они не могут!!! Типа реализовываться это не будет и все, такова концепция УНФ...
4. fixin 4340 10.11.25 11:45 Сейчас в теме
(3) я реализовывал нормальное FIFO в УТ и УНФ, но там не по всем документам, т.е. например корректировка реализации не поддерживается. Заводил параллельную организацию и по ней дублировал движения. В целом норм, по работе объемно немного, часов 30. Но работает.
5. ОператорПК 2 10.11.25 18:05 Сейчас в теме
(4) Ну вот про это любопытно бы статью почитать. А то вопросов много... К каждой организации отдельную дополнительную? В какой момент инициировалось проведение? Почему корректировка реализации не поддерживается?
10. user636943_e.veysov 17.11.25 12:21 Сейчас в теме
Добрый день.
Подскажите, я правильно понял, что можно сделать группировку по номенклатуре?

Номенклатура | конечный остаток | сумма кон. остаток
- поставщик 1 | |
- поставщик 2 | |
- поставщик 3 | |
11. fixin 4340 17.11.25 13:42 Сейчас в теме
(10) можно, но если поменять в структуре СКД-макета (в конфигураторе). На пользовательском уровне я еще не сделал возможность настройки структуры отчета.
А так то да, отчет поступает в СКД уже с расчитанными данными, крутить его можно как угодно.
14. fixin 4340 28.11.25 20:27 Сейчас в теме
В версии 25.11.2801 доработал - стало на 5% (на глаз) медленнее считать по складам, но сохраняет партию при перемещениях.
16. kobayoshi 25 01.12.25 15:49 Сейчас в теме
(14) Спасибо, скачал.
Но мне кажется, или я что-то не так делаю, или что-то не то с расчетами...
Взял простой пример, товар 24 шт на 7920 руб. пришёл, потом перемещениями разошёлся по точкам. На основном складе всё верно, а вот на точках Перемещение почему-то воспринимается в минус (расход). Из-за этого видимо и итоги минусовые... (скрин прилагаю)
Прикрепленные файлы:
17. fixin 4340 01.12.25 16:15 Сейчас в теме
(16) Сейчас проверю. По скриншоту да, что-то не то.
18. fixin 4340 01.12.25 18:52 Сейчас в теме
(16) да, была ошибка, чтобы не качать заново, вот код для исправления:
							Если ЭтоПриходПоПеремещению Тогда
								//Копируем движения из расхода по перемещению
								ИскСтроки = ТЗ_Партии.НайтиСтроки(Новый Структура("Регистратор, Номенклатура", Выборка.Регистратор, Выборка.Номенклатура));
								Для Каждого Строка ИЗ ИскСтроки Цикл
									НСтр = ТЗ_Партии.Добавить();
									ЗаполнитьЗначенияСвойств(НСтр, Строка);
									//НСтр.Партия = Выборка.Регистратор; 
									НСтр.Склад = Выборка.СкладДвижения; //Важно - склад-получатель (он сохранен в складе движения)
									НСтр.Приход = Строка.Расход;       
									НСтр.Расход = 0;       
									НСтр.ОстатокПартии = Строка.Расход; //Формируем новую партию и ее остаток, доступный для списания      
									НСтр.СуммаПриход = Строка.СуммаРасход; 
									НСтр.СуммаРасход = 0; 
									НСтр.СуммаПартии = Строка.СуммаПартии; 
									ДобавитьДоступнуюПартию(ДоступныеПартии, НСтр.Склад, Нстр);
									ОбновитьОстаток(Дата1, НСтр, НСтр); //Обновление остатков
								КонецЦикла;
							Иначе
								НСтр = ТЗ_Партии.Добавить();
								ЗаполнитьЗначенияСвойств(НСтр, Выборка);
								НСтр.Партия = Выборка.Регистратор;
								НСтр.Приход = Количество;       
								НСтр.ОстатокПартии = Количество;       
								НСтр.СуммаПриход = Выборка.СуммаПриход; 
								НСтр.СуммаПартии = Выборка.СуммаДокумента; 
								ДобавитьДоступнуюПартию(ДоступныеПартии, НСтр.Склад, Нстр);
								ОбновитьОстаток(Дата1, НСтр, НСтр); //Обновление остатков
							КонецЕсли;

Показать
19. kobayoshi 25 02.12.25 16:19 Сейчас в теме
(18) Заменил, теперь вроде всё как надо! Спасибо!
20. fixin 4340 02.12.25 16:20 Сейчас в теме
(19) удачи! Возможно конечно есть еще движения типа корректировки реализации и производства, я их обрабатываю на общих основаниях - приход создает партию, расход - ее списывает. Но нет предела совершенству, как показал опыт с перемещениями.
21. kobayoshi 25 10.12.25 11:30 Сейчас в теме
(20) Я тут заметил, что общий запрос вытягивает все позиции за период. Но в случае, когда указан Поставщик, нам все не нужны, я добавил пару моментов:
Во-первых, другое формирование МассиваНоменклатуры с фильтром Т.Регистратор.ХозяйственнаяОперация = &ПоступлениеОтПоставщика.
Во-вторых, и это уже существеннее, МассивПоступленийПоставщика из запроса:
			"ВЫБРАТЬ
			|	ПриходнаяНакладная.Ссылка КАК Ссылка
			|ИЗ
			|	Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
			|ГДЕ
			|	ПриходнаяНакладная.Контрагент В(&Контрагент)
			|	И ПриходнаяНакладная.ВидОперации = &ПоступлениеОтПоставщика";
Показать

И затем перед НСтр = ТЗ_Партии.Добавить() проверяю, есть ли эта партия в МассивПоступленийПоставщика. На первый взгляд отчёт верный и работает шустрее, а то бывало и зависал на больших объемах.
Всё ли верно, можно так делать или я что-то упускаю?
22. fixin 4340 10.12.25 17:17 Сейчас в теме
(21) Ну да, такая оптимизация имеет место быть. Но если у вас редко встречаются ситуации, когда один товар приходит от разных поставщиков, можно оптимизировать и по-другому: отобрать все те товары, которые приходили от этого поставщика и сделать отбор уже по номенклатуре. Можно совместить оба этих метода. Будет вообще быстро. Как-нибудь сделаю в обновлениях.
23. kobayoshi 25 11.12.25 11:53 Сейчас в теме
(22) Извиняюсь, я уже наверное надоел с этим отчётом))
Но я заметил, что Возвраты не фиксируются никак. Может это связано с тем, что разработчики УНФ почему-то решили не делать отдельный документ и запихнуть возвраты в Приходные накладные (весьма странное решение).
По хорошему бы конечно отслеживать партии при возврате из документа Реализации. Но, если так не получается (или если не указано основание), было бы неплохо, если бы эти возвраты по аналогии с оприходованием хотя бы создавали бы новую партию.
24. fixin 4340 11.12.25 12:08 Сейчас в теме
(23) а что, разве не создают?
Возврат от покупателя - это обычный приход.
Возврат поставщику - это сторно прихода, я его тоже обыгрываю:
ЭтоПриход = Выборка.Приход > 0;
Если ЭтоПриход Тогда
	
	...							
	
Иначе                   
	
	Если Выборка.Расход > 0 Тогда
		Количество = Выборка.Расход;
		Сумма = Выборка.СуммаРасход;
	ИначеЕсли Выборка.Приход < 0 Тогда
		//Возврат в УНФ как сторно прихода
		Количество = - Выборка.Приход;
		Сумма = - Выборка.СуммаПриход;
	Иначе
		Количество = 0;
		Сумма = 0;
	КонецЕсли;

Показать


Было замечание от клиента, что возврат поставщику не попадает, вот после него я и поправил, но это уже давно, хотя и после первой публикации.
25. kobayoshi 25 11.12.25 16:17 Сейчас в теме
(24) У меня вот так получается (прикладываю). Недавно заметил, что в УТ тоже вроде бы в документах возврата менял что-то (была отрицательная продажа, а стал положительный приход или наоборот, уже не помню). Может здесь тоже поменялась логика?
Заменил на Расход, появились возвраты как новая партия:
							Если Выборка.Расход > 0 Тогда
								Количество = Выборка.Расход;
								Сумма = Выборка.СуммаРасход;
							ИначеЕсли Выборка.Расход < 0 Тогда
								//Возврат в УНФ как сторно прихода
								Количество = - Выборка.Расход;
								Сумма = - Выборка.СуммаРасход;
							Иначе
								Количество = 0;
								Сумма = 0;
							КонецЕсли;
Показать

Кажется это правильно, буду смотреть ещё)
Прикрепленные файлы:
26. kobayoshi 25 11.12.25 16:59 Сейчас в теме
(25) (25) Не, так плохо. Я сделал отдельное "ИначеЕсли":
						ИначеЕсли ТипЗнч(Выборка.Регистратор) = Тип("ДокументСсылка.ПриходнаяНакладная") И Выборка.Расход < 0 Тогда //Возврат в УНФ как отрицательный расход
							Количество = - Выборка.Расход;
							Сумма = - Выборка.СуммаРасход;
							
                            НСтр = ТЗ_Партии.Добавить();
                            ЗаполнитьЗначенияСвойств(НСтр, Выборка);
							НСтр.Расход = 0; //иначе из ЗаполнитьЗначенияСвойств приходит минус 
							НСтр.СуммаРасход = 0; //иначе из ЗаполнитьЗначенияСвойств приходит минус 
							НСтр.Контрагент = ""; //это будет новая пустая партия (как оприходование)
							НСтр.Партия = Выборка.Регистратор;
                            НСтр.Приход = Количество;       
                            НСтр.ОстатокПартии = Количество;       
                            НСтр.СуммаПриход = Сумма; 
                            НСтр.СуммаПартии = Выборка.СуммаДокумента; 
                            ДобавитьДоступнуюПартию(ДоступныеПартии, НСтр.Склад, Нстр);
                            ОбновитьОстаток(Дата1, НСтр, НСтр); //Обновление остатков
						Иначе
Показать

В идеале бы ещё подтягивать поставщика из ДокументаОснование этого Возврата. Но это мне пока не осилить)
Для отправки сообщения требуется регистрация/авторизация