Лишние остатки в регистре Распределение запасов
Задачи пользователя - Корректировка данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Обработка получает и показывает на форме таблицу с лишними остатками.
Запрос.Текст =
"ВЫБРАТЬ
| РаспределениеЗапасов.Номенклатура КАК Номенклатура,
| РаспределениеЗапасов.Характеристика КАК Характеристика,
| РаспределениеЗапасов.Склад КАК Склад,
| РаспределениеЗапасов.Назначение КАК Назначение,
| СУММА(РаспределениеЗапасов.ВНаличии) КАК ВНаличии,
| СУММА(ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0)) КАК Результат
|ИЗ
| РегистрСведений.РаспределениеЗапасов КАК РаспределениеЗапасов
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
| ПО РаспределениеЗапасов.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
| И РаспределениеЗапасов.Характеристика = ТоварыНаСкладахОстатки.Характеристика
| И РаспределениеЗапасов.Склад = ТоварыНаСкладахОстатки.Склад
| И РаспределениеЗапасов.Назначение = ТоварыНаСкладахОстатки.Назначение
|ГДЕ
| РаспределениеЗапасов.Состояние = ЗНАЧЕНИЕ(Перечисление.РаспределениеЗапасовСостояния.ОстатокНаСкладе)
|
|СГРУППИРОВАТЬ ПО
| РаспределениеЗапасов.Номенклатура,
| РаспределениеЗапасов.Характеристика,
| РаспределениеЗапасов.Склад,
| РаспределениеЗапасов.Назначение
|
|ИМЕЮЩИЕ
| СУММА(ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0)) < СУММА(РаспределениеЗапасов.ВНаличии)";
Далее можно выбрать те записи, которые требуется исправить, и нажать кнопку "Исправить".
Записи в регистре сведений удаляются или перезаписываются с меньшим количеством:
Если СтрТз.Пометка Тогда
НаборЗаписей = РегистрыСведений.РаспределениеЗапасов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Состояние.Установить(Перечисления.РаспределениеЗапасовСостояния.ОстатокНаСкладе);
НаборЗаписей.Отбор.Номенклатура.Установить(СтрТз.Номенклатура);
НаборЗаписей.Отбор.Характеристика.Установить(СтрТз.Характеристика);
НаборЗаписей.Отбор.Назначение.Установить(СтрТз.Назначение);
НаборЗаписей.Отбор.Склад.Установить(СтрТз.Склад);
НаборЗаписей.Прочитать();
Для Каждого Запись ИЗ НаборЗаписей Цикл
Если СтрТз.Результат = 0 Тогда
НаборЗаписей.Очистить();
Иначе
Запись.ВНаличии = СтрТз.Результат;
Запись.Свободно = Мин(СтрТз.Результат,Запись.Свободно);
Запись.Запас = СтрТз.Результат;
КонецЕсли;
КонецЦикла;
НаборЗаписей.Записать();
КонецЕсли;
После этого действия данные отчетов Ведомость по товарам на складах и Остатки и доступность товаров совпадают.
Проверено на версии 1С 8.3.20.1789 для конфигурации Управление торговлей, редакция 11 (11.5.8.267).
Вступайте в нашу телеграмм-группу Инфостарт