Динамический спискок - "реквизит1" таблица на форме.
Функция выгружает динамический список с учетом отбора в таблицу значений "ТаблицаРезультат".

Далее выгружаем ссылки на элементы в массив для дальнейшей передачи клиенту.

&НаСервере
Функция СписокВТЗнаСервере()
// реквизит1 - динамический список на форме
Схема = Элементы.Реквизит1.ПолучитьИсполняемуюСхемуКомпоновкиДанных(); Настройки = Элементы.Реквизит1.ПолучитьИсполняемыеНастройкиКомпоновкиДанных(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных(); МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, , ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТаблицаРезультат = ПроцессорВывода.Вывести(ПроцессорКомпоновки); массивСсылок=ТаблицаРезультат.ВыгрузитьКолонку("Ссылка"); // выгружаем ссылки в массив для передачи клиенту возврат массивСсылок; КонецФункции


Идею взял отсюда: https://forum.infostart.ru/forum9/topic73522/


Приведу весь текст обработки "Групповое перемещение номенклатуры в выбранную группу". Переделать ее можно под что угодно.

Задача была такая:

У клиента более 130 тысяч товаров. Нужно сделать обработку чтобы было удобно перемещать их в нужные группы.

Стандартные обработки типа "Универсальный подбор и обработка объектов 1С 8.3" никак не хотели видеть дополнительные реквизиты, только через запросы.

Поэтому было решено с ними не заморачиваться, а написать свою обработку.

&НаСервере
Функция СписокВТЗнаСервере()
// реквизит1 - динамический список на форме
    Схема = Элементы.Реквизит1.ПолучитьИсполняемуюСхемуКомпоновкиДанных();
    Настройки = Элементы.Реквизит1.ПолучитьИсполняемыеНастройкиКомпоновкиДанных();
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
    МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, Настройки, , ,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
    ТаблицаРезультат = ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	

массивСсылок=ТаблицаРезультат.ВыгрузитьКолонку("Ссылка");  // выгружаем ссылки в массив для передачи клиенту
возврат массивСсылок;
КонецФункции

&наСервере
процедура ПереброситьНоменклатуруНаСервере(эл)
	ном=эл.получитьОбъект();
	ном.родитель=НовыйРодитель;
	ном.записать();
конецПроцедуры


&НаКлиенте
Процедура ПереброситьНоменклатуру(Команда)
	если НЕ ЗначениеЗаполнено(НовыйРодитель) тогда сообщить("Укажите новый каталог"); возврат; конецЕсли;
массивСсылок=СписокВТЗнаСервере();	
 сч = 0; СчМах = МассивСсылок.Количество();

Для каждого эл Из МассивСсылок Цикл
    //    Элементы.Реквизит1.ТекущаяСтрока = эл;
        сч=сч+1; Состояние(эл, сч/СчМах*100,"... обработка", БиблиотекаКартинок.Обработка);
        
        ПереброситьНоменклатуруНаСервере(эл);

        ОбработкаПрерыванияПользователя();
    КонецЦикла;
    
    Элементы.Реквизит1.Обновить();
	
	КонецПроцедуры

Скачать обработку "Групповое перемещение номенклатуры УФ"

Добавить комментарий


Защитный код
Обновить