Содержание:
1. Как использовать 1C макет СКД
2. Как использовать таблицу значений в реквизитах формы 1С 8.3
1. Как использовать 1C макет СКД
Часто необходимо делать отборы объектов по различным условиям. Для этого как нельзя лучше подходит схема 1C компоновки данных. Допустим, мы хотим очистить картинки номенклатуры и 1С присоединенные файлы по некоторым условиям, определяемым пользователем, т.е. хотим получить форму как на рисунке:
Делаем 1C макет СКД, где пропишем запрос к справочнику номенклатура в 1С. Можем добавить дополнительное поле для более детального отбора в отобранных объектах.
В настройках выбираем детальные записи и в выбранные поля помещаем поле Ссылка.
На закладке Отбор можем указать первоначальные отборы, хотя делать это необязательно, т.к. пользователь сам сможет его изменять.
Далее делаем форму и реквизит 1С 8.3 типа КомпоновщикНастроекКомпоновкиДанных (в примере он называется КомпоновщикНастроекСКД), и реквизит АдресСхемы, чтобы меньше «дергать» объекты.
Выводим на форму элемент системы Объект – КомпоновщикНастроекСКД – Настройки – Отбор (при необходимости ставим признак сохранения).
2. Как использовать таблицу значений в реквизитах формы 1С 8.3
Создаем макет типа 1С «Схема компоновки данных» (в примере он называется макет).
Делаем таблицу значений в реквизитах формы 1с 8.3 и размещаем на форме (при необходимости).
Далее процедуры:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РеквизитОбъект = РеквизитФормыВЗначение("Объект");
Схема = РеквизитОбъект.ПолучитьМакет("Макет");
АдресСхемы = ПоместитьВоВременноеХранилище(Схема, УникальныйИдентификатор);
КомпоновщикНастроекСКД.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));
КомпоновщикНастроекСКД.ЗагрузитьНастройки(Схема.НастройкиПоУмолчанию);
КонецПроцедуры
И команду «Заполнить» с обработчиками (для заполнения нашей таблицы для показа, при необходимости).
&НаСервере
Процедура ЗаполнитьНаСервере()
СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(АдресСхемы);
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
КомпоновщикНастроек.Инициализировать(
Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(КомпоновщикНастроекСКД.ПолучитьНастройки());
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(
СхемаКомпоновкиДанных,
КомпоновщикНастроекСКД.ПолучитьНастройки(),,,
Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ТаблицаРезультата = Новый ТаблицаЗначений;
ПроцессорВывода.УстановитьОбъект(ТаблицаРезультата);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
ТаблицаНоменклатуры.Загрузить(ТаблицаРезультата);
КонецПроцедуры
&НаКлиенте
Процедура Заполнить(Команда)
ЗаполнитьНаСервере();
КонецПроцедуры
Далее обрабатываем полученную таблицу так, как нам необходимо по заданию. В приложенной обработке использование на примере очистки картинок и присоединенных файлов справочника «Номенклатура» для 1С:УТ 11, ERP и т.д.
Специалист компании ООО «Кодерлайн»
Алексей Новоточинов.