|
Изменение ВариантаОбеспечения в строчке заказа клиента. УТ 3.1.1.122 | ☑ | ||
---|---|---|---|---|
0
Casper211
15.11.16
✎
15:27
|
1С:Предприятие 8.3 (8.3.7.2008)
Создаем заказы клинта. Вариант обеспечения ("Действие") в строках в табличной части "К обеспечению".Теперь дополнительно выделим все строки заказа (Ctrl+A) и выполним команду над табличной частью «Заполнить обеспечение».Так как нам нужно зарезервировать имеющиеся остатки, зарезервировать ожидаемый товар и обеспечить товар, которого нет в наличии, то установим три флажка: «Резервировать на складе», «Резервировать к дате отгрузки» и «К обеспечению». Нажмем кнопку Заполнить. Скриншоти - http://xn----1-bedvffifm4g.xn--p1ai/ut11/65-cases/case71/ Программа немного изменит имеющиеся строки. Для товара, который есть в наличии, будет установлен вариант обеспечения «Резервировать на складе» и дата отгрузки как текущая. Ожидаемый товар останется без изменений с вариантом обеспечения «Резервировать к дате отгрузки» и датой отгрузки – дата ожидаемого поступления товара от поставщика. А теперь мне необходимо сделать все то же самое, но с внешней обработки для нескольких документов программно. Вот команда, которая выполняется при нажатии кнопки "ЗаполнитьОбеспечение" #Область Обеспечение &НаКлиенте Процедура ЗаполнитьОбеспечение(Команда) ПараметрыПроверки = ОбеспечениеКлиентСервер.ИнициализироватьПараметрыПроверкиЗаполнения(); Если ОбеспечениеКлиентСервер.ПроверитьЗаполнение( Объект, Объект.Товары, Элементы.Товары.ВыделенныеСтроки, ПараметрыПроверки, Неопределено, Объект.Склад) Тогда ПараметрыФормы = Новый Структура("Тип", ТипЗнч("Объект.Ссылка")); ОткрытьФорму("Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор); КонецЕсли; КонецПроцедуры Она вызывает "Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа" и после выбора Вариантов Обеспечения нажимаем "Выполнить" и выполняется вот такой код: #Область КомандыФормы &НаКлиенте Процедура Заполнить(Команда) ПереченьВариантов = Новый Массив(); Если Отгрузить Тогда Если Параметры.СписокВыбора = Неопределено Или Параметры.СписокВыбора.НайтиПоЗначению( ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Отгрузить")) <> Неопределено Тогда ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Отгрузить")); КонецЕсли; Если Параметры.СписокВыбора = Неопределено Или Параметры.СписокВыбора.НайтиПоЗначению( ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ОтгрузитьОбособленно")) <> Неопределено Тогда ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ОтгрузитьОбособленно")); КонецЕсли; КонецЕсли; Если Резервировать Тогда ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.СоСклада")); КонецЕсли; Если РезервироватьКСроку Тогда ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.ИзЗаказов")); КонецЕсли; Если Обособленно Тогда ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Обособленно")); КонецЕсли; Если Требуется Тогда ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.Требуется")); КонецЕсли; Если НеТребуется Тогда ПереченьВариантов.Добавить(ПредопределенноеЗначение("Перечисление.ВариантыОбеспечения.НеТребуется")); КонецЕсли; Если ПереченьВариантов.Количество() = 0 Тогда Текст = НСтр("ru='Для заполнения необходимо установить хотя бы одну отметку';uk='Для заповнення необхідно встановити хоча б одну позначку'"); ПоказатьПредупреждение(, Текст); Иначе ОповеститьОВыборе(ПереченьВариантов); КонецЕсли; КонецПроцедуры #КонецОбласти И она извещает кого об этом действии, но кто это и где оно находится я не знаю. В форме объекта, модуле объекта и менеджера нет обработчика оповещения для этого варианта. Я читал что где-то на форме с реквизитами присоединяют, но найти этого не могу. Главная задача - перевыбор "ВариантаОбеспечения" в нескольких заказов Кнопка "ЗаполнитьОбеспечение" - но с внешней обработки для нескольких заказов. Возможно кто-то сталкивался с такой проблемой. Буду рад любимой помощи. СПАСИБО! |
|||
1
Casper211
15.11.16
✎
16:20
|
&НаКлиенте
Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора) Если ИсточникВыбора.ИмяФормы = "Перечисление.ВариантыОбеспечения.Форма.ИсполнениеЗаказа" Тогда Детали = ЗаполнитьОбеспечениеВУстановленномПорядке(ВыбранноеЗначение); Если Детали.Ошибки <> Неопределено Тогда ОчиститьСообщения(); ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю(Детали.Ошибки); КонецЕсли; ПоказатьОповещениеПользователя(ОбеспечениеКлиентСервер.ТекстЗаполнениеОбеспечения(), , Детали.Оповещение); СкидкиНаценкиКлиент.СброситьФлагСкидкиРассчитаны(ЭтаФорма); НДСИсходящийКлиент.СброситьПроверитьФлагПерерасчетПроизведен(ЭтаФорма); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |