База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сформировать документы перемещения запасов в УНФ 3.0 по min-max?
- В этой теме 1 ответ, 2 участника, последнее обновление 8 месяцев назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
23 апреля 2025 в 12:00 #32391
Нужно написать обработку для унф 3.0, чтобы создавать документы перемещения запасов из центрального склада по складам магазинов исходя из значении min-max у номенклатур
-
23 апреля 2025 в 12:00 #32392
Привет, 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/)
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.