Программное заполнение вариантов обеспечения (отгрузка) в документе Заказ клиента на сервере
Задачи пользователя - Мастера заполнения
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Процедура полностью для сервера, при этом повторяет поведение такое же, как в форме самого заказа - автоматически подбирает доступное обеспечение из заданных, разбивает строки заказа, при необходимости (когда часть товара есть на складе и отгружается, а части нет и она резервируется при поступлении, или просто обеспечивается (ничего не происходит)). Код можно использовать в модуле объекта или в общем модуле.
Перечень вариантов обеспечения можно менять в массиве под нужные. Порядок имеет значение - именно в этом порядке 1С будет подбирать доступный вариант обеспечения.
Уже давно сделал шпаргалку. Код протестирован на УТ 11.4.13.57:
&НаСервере
Процедура ЗаполнитьОбеспечениеОтгрузить(ЗаказСсылка)
Заказ = ЗаказСсылка.ПолучитьОбъект();
ИндексыСтрок = Новый Массив;
Для Каждого Строка Из Заказ.Товары Цикл
ИндексыСтрок.Добавить(Заказ.Товары.Индекс(Строка));
КонецЦикла;
ПараметрыУказанияСерий = Новый ФиксированнаяСтруктура(НоменклатураСервер.ПараметрыУказанияСерий(Заказ, Документы.ЗаказКлиента));
Пути = ОбеспечениеСервер.ПутиКДаннымПоУмолчанию();
ПутиКДанным = Новый Структура(Пути);
ПутиКДанным = Новый Соответствие; //Описание особенностей формы
ПутиКДанным.Вставить("ДатаОтгрузкиРабот", "ДатаОтгрузки"); // дату отгрузки работ необходимо брать из поля "Дата отгрузки".
ПараметрыЗаказа = Новый Структура;
ПараметрыЗаказа.Вставить("ИмяТабличнойЧасти", "Товары");
ПараметрыЗаказа.Вставить("СтатусКВыполнению", Истина);
ПараметрыЗаказа.Вставить("ГруппаСкладов", Заказ.Склад);
ПараметрыЗаказа.Вставить("МенеджерРегистра", РегистрыНакопления.ЗаказыКлиентов);
ПараметрыЗаказа.Вставить("ПутиКДанным", ПутиКДанным);
ПереченьВариантов = Новый Массив;
ПереченьВариантов.Добавить(Перечисления.ВариантыОбеспечения.Отгрузить);
ПереченьВариантов.Добавить(Перечисления.ВариантыОбеспечения.ОтгрузитьОбособленно);
ПереченьВариантов.Добавить(Перечисления.ВариантыОбеспечения.Требуется);
Таблица = ОбеспечениеСервер.ТаблицаЗаполнениеОбеспеченияДокумента(
Заказ,
ПереченьВариантов,
ПараметрыЗаказа,
ИндексыСтрок);
// Перенос результатов в документ.
ТекстОповещения = Документы.ЗаказКлиента.ЗаполнитьВариантОбеспечения(
Заказ, Неопределено, "ИндексыСтрок", Таблица, ПараметрыУказанияСерий, Неопределено);
КонецПроцедуры
Вступайте в нашу телеграмм-группу Инфостарт