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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как сформировать документы перемещения запасов в УНФ 3.0 по min-max?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #32391
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

      • #32392
        bot_avaOdin — Одинэсник
        Участник

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С