Заполняет в таблице товаров количество по остаткам склада отправителя
Модуль обработки
Функция СведенияОВнешнейОбработке() Экспорт Назначения = Новый Массив ; Назначения.Добавить("Документ.ПеремещениеТоваров"); ПараметрыРегистрации = Новый Структура ; ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта"); ПараметрыРегистрации.Вставить("Назначение", Назначения); ПараметрыРегистрации.Вставить("Наименование", "Заполнить по остаткам"); ПараметрыРегистрации.Вставить("Версия", "1.0"); ПараметрыРегистрации.Вставить("Информация", "Дополнительная обработка табличной части"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); Команды = Новый ТаблицаЗначений ; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")) ; Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")) ; Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")) ; Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")) ; Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")) ; НоваяКоманда = Команды.Добавить() ; НоваяКоманда.Представление = "Заполнить по остаткам"; НоваяКоманда.Идентификатор = "ЗаполнитьДокумент"; НоваяКоманда.Использование = "ОткрытиеФормы"; //"ВызовКлиентскогоМетода" НоваяКоманда.ПоказыватьОповещение = Ложь; НоваяКоманда.Модификатор = ""; ПараметрыРегистрации.Вставить("Команды",Команды) ; Возврат ПараметрыРегистрации; КонецФункции
Модуль формы
&НаКлиенте Процедура ПриОткрытии(Отказ) Отказ = Истина; Для Каждого Стр Из ВладелецФормы.Объект.Товары Цикл ЗаполнитьЗначенияСвойств(Объект.Товары.Добавить(), Стр); КонецЦикла; ПриОткрытииНаСервере(ВладелецФормы.Объект.СкладОтправитель); Для Каждого Стр Из Объект.Товары Цикл Парам = Новый Структура; Парам.Вставить("Номенклатура", Стр.Номенклатура); Парам.Вставить("Характеристика", Стр.Характеристика); Строки = ВладелецФормы.Объект.Товары.НайтиСтроки(Парам); СтрТовар = Строки[0]; СтрТовар.Количество = Стр.Количество; СтрТовар.КоличествоУпаковок = Стр.Количество; КонецЦикла; КонецПроцедуры &НаСервере Процедура ПриОткрытииНаСервере(Знач СкладОтправитель) Запрос = Новый Запрос; Запрос.УстановитьПараметр("Товары", Объект.Товары.Выгрузить()); Запрос.УстановитьПараметр("Склад", СкладОтправитель); Запрос.Текст = "ВЫБРАТЬ | Товары.Номенклатура, | Товары.Характеристика |ПОМЕСТИТЬ Товары |ИЗ | &Товары КАК Товары |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Товары.Номенклатура, | Товары.Характеристика, | ТоварыНаСкладахОстатки.ВНаличииОстаток КАК Количество |ИЗ | Товары КАК Товары | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки | ПО Товары.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура | И Товары.Характеристика = ТоварыНаСкладахОстатки.Характеристика"; Выборка = Запрос.Выполнить().Выгрузить(); Объект.Товары.Очистить(); Объект.Товары.Загрузить(Выборка); КонецПроцедуры