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