База знаний Одина – Одинэсника › Форумы › 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: Код обработки
В модуле обработки добавьте следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 1C &НаКлиенте Процедура СоздатьПеремещения(Команда) // Получаем список номенклатуры с минимальными и максимальными значениями Номенклатура = Справочники.Номенклатура.Выбрать(); Пока Номенклатура.Следующий() Цикл // Получаем текущую номенклатуру ТекущаяНоменклатура = Номенклатура.Ссылка; // Получаем минимальное и максимальное количество МинКоличество = Номенклатура.МинКоличество; МаксКоличество = Номенклатура.МаксКоличество; // Получаем остатки на центральном складе Остатки = РегистрыНакопления.ТоварыНаСкладах.Выбрать(, , , Новый Структура("Склад, Номенклатура", Справочники.Склады.ЦентральныйСклад, ТекущаяНоменклатура)); Если Остатки.Количество > 0 Тогда // Получаем список магазинов Магазины = Справочники.Склады.Выбрать(); Пока Магазины.Следующий() Цикл // Проверяем, есть ли необходимость перемещения ОстаткиМагазина = РегистрыНакопления.ТоварыНаСкладах.Выбрать(, , , Новый Структура("Склад, Номенклатура", Магазины.Ссылка, ТекущаяНоменклатура)); Если ОстаткиМагазина.Количество Остатки.Количество Тогда КоличествоДляПеремещения = Остатки.Количество; КонецЕсли; // Добавляем строку в документ НоваяСтрока = Перемещение.Товары.Добавить(); НоваяСтрока.Номенклатура = ТекущаяНоменклатура; НоваяСтрока.Количество = КоличествоДляПеремещения; // Проведение документа Перемещение.Записать(); Перемещение.Провести(); КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; Сообщить("Перемещения созданы."); КонецПроцедуры |
### Шаг 4: Настройка интерфейса
1. Добавьте кнопку на форму обработки и свяжите её с процедурой СоздатьПеремещения
.
2. Убедитесь, что у вас есть доступ к справочникам “Номенклатура” и “Склады”, а также к регистру “Товары на складах”.
### Шаг 5: Тестирование
1. Запустите обработку из 1С.
2. Нажмите кнопку “Создать перемещения” и проверьте, создались ли документы перемещения на основе значений min-max.
### Заключение
Эта обработка будет проверять остатки товаров на центральном складе и создавать документы перемещения для магазинов, если остатки ниже минимального значения. Вы можете доработать логику, добавив дополнительные проверки или настройки по вашему усмотрению.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться!
Рекомендую посмотреть здесь: [Источник](https://infostart.ru/1c/articles/1136068/)