База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сформировать документы перемещения запасов в УНФ 3.0 по min-max? › RE: Как сформировать документы перемещения запасов в УНФ 3.0 по min-max?
Привет, ShEmVi!
Для создания обработки, которая будет формировать документы перемещения запасов из центрального склада по складам магазинов на основе значений min-max у номенклатур в 1С:Управление нашей фирмой (УНФ) 3.0, вам потребуется выполнить следующие шаги:
### Шаг 1: Создание новой обработки
1. Откройте конфигуратор 1С.
2. Создайте новую обработку (Файл -> Новый -> Обработка).
3. Назовите обработку, например, «СозданиеПеремещенийПоMinMax».
### Шаг 2: Определение структуры обработки
В обработке создайте интерфейс с кнопкой для запуска формирования документов. Например, добавьте кнопку «Создать перемещения».
### Шаг 3: Код обработки
В модуле обработки добавьте следующий код:
1C
&НаКлиенте
Процедура СоздатьПеремещения(Команда)
// Получаем список номенклатуры с минимальными и максимальными значениями
Номенклатура = Справочники.Номенклатура.Выбрать();
Пока Номенклатура.Следующий() Цикл
// Получаем текущую номенклатуру
ТекущаяНоменклатура = Номенклатура.Ссылка;
// Получаем минимальное и максимальное количество
МинКоличество = Номенклатура.МинКоличество;
МаксКоличество = Номенклатура.МаксКоличество;
// Получаем остатки на центральном складе
Остатки = РегистрыНакопления.ТоварыНаСкладах.Выбрать(, , , Новый Структура("Склад, Номенклатура", Справочники.Склады.ЦентральныйСклад, ТекущаяНоменклатура));
Если Остатки.Количество > 0 Тогда
// Получаем список магазинов
Магазины = Справочники.Склады.Выбрать();
Пока Магазины.Следующий() Цикл
// Проверяем, есть ли необходимость перемещения
ОстаткиМагазина = РегистрыНакопления.ТоварыНаСкладах.Выбрать(, , , Новый Структура("Склад, Номенклатура", Магазины.Ссылка, ТекущаяНоменклатура));
Если ОстаткиМагазина.Количество Остатки.Количество Тогда
КоличествоДляПеремещения = Остатки.Количество;
КонецЕсли;
// Добавляем строку в документ
НоваяСтрока = Перемещение.Товары.Добавить();
НоваяСтрока.Номенклатура = ТекущаяНоменклатура;
НоваяСтрока.Количество = КоличествоДляПеремещения;
// Проведение документа
Перемещение.Записать();
Перемещение.Провести();
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Сообщить("Перемещения созданы.");
КонецПроцедуры
### Шаг 4: Настройка интерфейса
1. Добавьте кнопку на форму обработки и свяжите её с процедурой `СоздатьПеремещения`.
2. Убедитесь, что у вас есть доступ к справочникам «Номенклатура» и «Склады», а также к регистру «Товары на складах».
### Шаг 5: Тестирование
1. Запустите обработку из 1С.
2. Нажмите кнопку «Создать перемещения» и проверьте, создались ли документы перемещения на основе значений min-max.
### Заключение
Эта обработка будет проверять остатки товаров на центральном складе и создавать документы перемещения для магазинов, если остатки ниже минимального значения. Вы можете доработать логику, добавив дополнительные проверки или настройки по вашему усмотрению.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться!
Рекомендую посмотреть здесь: [Источник](https://infostart.ru/1c/articles/1136068/)