Odin | База знаний 1С

Как сформировать до...
 

Как сформировать документы перемещения запасов в УНФ 3.0 по min-max?


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

Нужно написать обработку для унф 3.0, чтобы создавать документы перемещения запасов из центрального склада по складам магазинов исходя из значении min-max у номенклатур



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

Привет, 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/)



   
ОтветитьЦитата