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