Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 12:05

Изменение ВариантаОбеспечения в строчке заказа клиента. УТ 3.1.1.122

Автор casper21, 15 ноя 2016, 15:48

0 Пользователей и 1 гость просматривают эту тему.

casper21

1С:Предприятие 8.3 (8.3.7.2008)
Создаем заказы клинта. Вариант обеспечения ("Действие") в строках в табличной части "К обеспечению".Теперь дополнительно выделим все строки заказа (Ctrl+A) и выполним команду над табличной частью «Заполнить обеспечение».Так как нам нужно зарезервировать имеющиеся остатки, зарезервировать ожидаемый товар и обеспечить товар, которого нет в наличии, то установим три флажка:
«Резервировать на складе»,
«Резервировать к дате отгрузки» и
«К обеспечению».
Нажмем кнопку Заполнить.
Скриншоти
Программа немного изменит имеющиеся строки. Для товара, который есть в наличии, будет установлен вариант обеспечения «Резервировать на складе» и дата отгрузки как текущая. Ожидаемый товар останется без изменений с вариантом обеспечения «Резервировать к дате отгрузки» и датой отгрузки – дата ожидаемого поступления товара от поставщика.

А теперь мне необходимо сделать все то же самое, но с внешней обработки для нескольких документов программно.
Вот команда, которая выполняется при нажатии кнопки "ЗаполнитьОбеспечение"


#Область Обеспечение
&НаКлиенте
Процедура ЗаполнитьОбеспечение(Команда)

    ПараметрыПроверки = ОбеспечениеКлиентСервер.ИнициализироватьПараметрыПроверкиЗаполнения();

    Если ОбеспечениеКлиентСервер.ПроверитьЗаполнение(
        Объект, Объект.Товары, Элементы.Товары.ВыделенныеСтроки, ПараметрыПроверки, Неопределено, Объект.Склад) Тогда

        ПараметрыФормы = Новый Структура("Тип", ТипЗнч("Объект.Ссылка"));
        ОткрытьФорму("Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа", ПараметрыФормы,
            ЭтаФорма, УникальныйИдентификатор);

    КонецЕсли;

КонецПроцедуры




Она вызывает "Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа"
и после выбора Вариантов Обеспечения нажимаем "Выполнить" и выполняется вот такой код:


#Область КомандыФормы

&НаКлиенте
Процедура Заполнить(Команда)

    ПереченьВариантов = Новый Массив();
    Если Отгрузить Тогда
       

        Если Параметры.СписокВыбора = Неопределено
            Или Параметры.СписокВыбора.НайтиПоЗначению(
                ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Отгрузить")) <> Неопределено Тогда

            ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Отгрузить"));

        КонецЕсли;

        Если Параметры.СписокВыбора = Неопределено
            Или Параметры.СписокВыбора.НайтиПоЗначению(
                ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ОтгрузитьОбособленно")) <> Неопределено Тогда

            ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ОтгрузитьОбособленно"));

        КонецЕсли;

    КонецЕсли;

    Если Резервировать Тогда
        ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.СоСклада"));
    КонецЕсли;

    Если РезервироватьКСроку Тогда
        ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ИзЗаказов"));
    КонецЕсли;

    Если Обособленно Тогда
        ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Обособленно"));
    КонецЕсли;

    Если Требуется Тогда
        ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Требуется"));
    КонецЕсли;

    Если НеТребуется Тогда
        ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.НеТребуется"));
    КонецЕсли;

    Если ПереченьВариантов.Количество() = 0 Тогда
        Текст = НСтр("ru='Для заполнения необходимо установить хотя бы одну отметку';uk='Для заповнення необхідно встановити хоча б одну позначку'");
        ПоказатьПредупреждение(, Текст);
    Иначе
        ОповеститьОВыборе(ПереченьВариантов);
    КонецЕсли;

КонецПроцедуры
#КонецОбласти



И она извещает кого об этом действии, но кто это и где оно находится я не знаю. В форме объекта, модуле объекта и менеджера нет обработчика оповещения для этого варианта. Я читал что где-то на форме с реквизитами присоединяют, но найти этого не могу.

Главная задача - перевыбор "ВариантаОбеспечения" в нескольких заказов
Кнопка "ЗаполнитьОбеспечение" - но с внешней обработки  для нескольких заказов. Возможно кто-то сталкивался с такой проблемой. Буду рад любимой помощи. СПАСИБО!

casper21

Нашол. В Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск