Пакетная обработка табличной части сервер
ОбработатьСтрокуТЧВЦикле
Описание, пример вызова
// Выполняет обработку строк коллекции в соответствии с операциями, перечисленными в структуре действий.// При выполнении метода происходит предварительное получение данных, необходимых для обработки одним запросом.// Вызов метода должен производиться в цикле обхода коллекции, предварительно нужно определить КэшированныеЗначения.//// Параметры:// ТекущаяСтрока - Структура, ДанныеФормыКоллекция - Приемник действий обработки строки.// Действия - Структура - Действия, которые нужно произвести над строкой. В ключах хранится наименование действия,// в значениях - произвольные данные, необходимые для обработки.// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения// КоллекцияСтрок - ДанныеФормыКоллекция, Массив из Структура, ТаблицаЗначений - Коллекция, которая обходится в цикле// и является источником данных для обработки, на основании этой коллекция сформируется временная// таблица втИсточникДанных. Данные полученной временной таблицы следует использовать, для описания// текстов запроса получения данных, необходимых для обработки всех обрабатываемых строк в методе// ДополнитьТекстыЗапросовИсточниковДанных.// ТекущаяСтрокаВКоллекции - ДанныеФормыЭлементКоллекции, СтрокаТаблицыЗначений, Структура - Итератор обхода коллекции// КоллекцияСтрок, этот параметр требуется для получения данных через метод ДанныеДляОбработкиСтроки.// ТекущаяСтрокаВКоллекции может не совпадать с параметром ТекущаяСтрока, например в тех случаях, когда// обходится массив добавляемых номенклатур в ТЧ Товары, в этом примере ТекущаяСтрока это новая строка// табличной части, а ТекущаяСтрокаВКоллекции это элемент массива из элементов справочника Номенклатура.//// Пример://// 1. Для обработки всех строк табличной части с дополнительной обработкой прикладным кодом без создания промежуточной// структуры://// КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();//// СтруктураДействий = Новый Структура();// СтруктураДействий.Вставить("ЗаполнитьКодТНВЭД", Объект.НалогообложениеНДС);//// Для Каждого СтрокаТЧ Из Объект.Товары Цикл//// ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧВЦикле(// СтрокаТЧ,// СтруктураДействий,// КэшированныеЗначения,// Объект.Товары,// СтрокаТЧ);// //Доп обработка строки// СтрокаТЧ.ЗаполнятьВозвратнуюТару = Истина;//// КонецЕсли;//// 2. Для обработки всех строк табличной части с созданием промежуточной структуры://// КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();//// СтруктураДействий = Новый Структура();// СтруктураДействий.Вставить("ЗаполнитьКоэффициентПоНоменклатуре");//// Для Каждого СтрокаТЧ Из Объект.Товары Цикл//// ДанныеДляОбработки = Новый Структура();// ДанныеДляОбработки.Вставить("Номенклатура", СтрокаТЧ.Номенклатура);// ДанныеДляОбработки.Вставить("Коэффициент", Объект.Коэффициент);//// ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧВЦикле(// ДанныеДляОбработки,// СтруктураДействий,// КэшированныеЗначения,// Объект.Товары,// СтрокаТЧ);//// ЗаполнитьЗначенияСвойств(СтрокаТЧ, ДанныеДляОбработки);//// КонецЕсли;//// 3. Для дополнения табличной части по входящей коллекции, примером может служить подбор товаров://// ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище);//// КэшированныеЗначения = ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();//// СтруктураДействий = Новый Структура();// СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС");//// Для Каждого ПодобранныйТовар Из ТаблицаТоваров Цикл//// НоваяСтрокаТЧ = Объект.Товары.Добавить();// ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧВЦикле(// НоваяСтрокаТЧ,// СтруктураДействий,// КэшированныеЗначения,// ТаблицаТоваров,// ПодобранныйТовар);//// КонецЕсли;//// Случаи некорректного использования:// 1. Для обработки одной строки табличной части, например при изменения номенклатуры в строке, следует использовать ОбработатьСтрокуТЧ// 2. При наличии в структуре действий зависимых обработчиков, см . ПриОписанииЗависимостейОбработчиков, следует// использовать метод ОбработатьСтрокиТЧ. Если требуется обработать не все строки, то требуется сформировать массив// строк табличной части, подлежащих обработки и передать его в параметр КоллекцияСтрок.//Процедура ОбработатьСтрокуТЧВЦикле(ТекущаяСтрока, Действия, КэшированныеЗначения, КоллекцияСтрок, ТекущаяСтрокаВКоллекции) Экспорт
Пример вызова
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧВЦикле(ТекущаяСтрока, Действия, КэшированныеЗначения, КоллекцияСтрок, ТекущаяСтрокаВКоллекции)
ОбработатьСтрокиТЧ
Описание, пример вызова
// Выполняет обработку нескольких строк коллекции в соответствии с операциями, перечисленными в структуре действий.// При выполнении метода происходит предварительное получение данных, необходимых для обработки одним запросом.// Следует использовать когда требуется обработать некоторые строки табличной части, предварительно сформировать массив// строк табличной части и передавать его в параметр КоллекцияСтрок,// указав в параметре ТабЧасть табличную часть, к которой относятся элементы этого массива.// Так же метод следует использовать, когда в структуре действий присутствуют зависимые обработчики.//// Параметры:// КоллекцияСтрок - см. ОбработатьСтрокуТЧВЦикле.КоллекцияСтрок.// СтруктураДействий - см. ОбработатьСтрокуТЧВЦикле.Действия.// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения.// ТабЧасть - ДанныеФормыКоллекция - Табличная часть, приемник действий над строками.//Процедура ОбработатьСтрокиТЧ(КоллекцияСтрок, СтруктураДействий, КэшированныеЗначения = Неопределено, ТабЧасть = Неопределено) Экспорт
Пример вызова
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокиТЧ(КоллекцияСтрок, СтруктураДействий, КэшированныеЗначения, ТабЧасть);
ОбработатьСтрокуТЧ
Описание, пример вызова
// Выполняет обработку одной строки коллекции в соответствии с операциями, перечисленными в структуре действий.// При выполнении метода происходит предварительное получение данных, необходимых для обработки одним запросом.// Следует применять в тех случаях, когда обработка происходит не в цикле, например при заполнении Ставки НДС при// изменении номенклатуры в табличной части.//// Параметры:// СтрокаКоллекции - см. ОбработатьСтрокуТЧВЦикле.ТекущаяСтрока.// СтруктураДействий - см. ОбработатьСтрокуТЧВЦикле.Действия.// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения.// Коллекция -см. ОбработатьСтрокиТЧ.ТабЧасть.//Процедура ОбработатьСтрокуТЧ(СтрокаКоллекции, СтруктураДействий, КэшированныеЗначения, Коллекция = Неопределено) Экспорт
Пример вызова
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(СтрокаКоллекции, СтруктураДействий, КэшированныеЗначения, Коллекция);
ОбработатьТЧ
Описание, пример вызова
// Выполняет обработку всей коллекции в соответствии с операциями, перечисленными в структуре действий.// При выполнении метода происходит предварительное получение данных, необходимых для обработки одним запросом.//// Параметры:// ТабличнаяЧасть - см. ОбработатьСтрокуТЧВЦикле.КоллекцияСтрок.// СтруктураДействий - см. ОбработатьСтрокуТЧВЦикле.Действия.// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения.//Процедура ОбработатьТЧ(ТабличнаяЧасть, СтруктураДействий, КэшированныеЗначения = Неопределено) Экспорт
Пример вызова
ПакетнаяОбработкаТабличнойЧастиСервер.ОбработатьТЧ(ТабличнаяЧасть, СтруктураДействий, КэшированныеЗначения);
ДобавитьИсточникДанных
Описание, пример вызова
// Добавляет описание текста запросов для получения всех необходимых данных, нужных для обработки строк табличной части.//// Параметры:// ОписаниеЗапроса - см. ОписаниеЗапроса// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения.//Процедура ДобавитьИсточникДанных(ОписаниеЗапроса, КэшированныеЗначения) Экспорт
Пример вызова
ПакетнаяОбработкаТабличнойЧастиСервер.ДобавитьИсточникДанных(ОписаниеЗапроса, КэшированныеЗначения)
ЕстьКолонкаВИсточникеДанных
Описание, пример вызова
// Проверяет наличие колонки в обрабатываемой коллекции.//// Параметры:// ИмяКолонки - Строка - Имя колонки, наличие которой требуется проверить.// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения//// Возвращаемое значение:// Булево - Признак наличия колонки в обрабатываемой коллекции.//Функция ЕстьКолонкаВИсточникеДанных(ИмяКолонки, КэшированныеЗначения) Экспорт
Пример вызова
Результат = ПакетнаяОбработкаТабличнойЧастиСервер.ЕстьКолонкаВИсточникеДанных(ИмяКолонки, КэшированныеЗначения)
ТипКолонкиВИсточникеДанных
Описание, пример вызова
// Возвращает тип колонки в обрабатываемой коллекции.//// Параметры:// ИмяКолонки - Строка - Имя колонки, которая будет добавлена в временную таблицу, построенную на основании всей коллекции.// ОписаниеЗапроса - см. ОписаниеЗапроса//// Возвращаемое значение:// ОписаниеТипов - ОписаниеТипов - Тип колонки в обрабатываемой коллекции.//Функция ТипКолонкиВИсточникеДанных(ИмяКолонки, ОписаниеЗапроса) Экспорт
Пример вызова
Результат = ПакетнаяОбработкаТабличнойЧастиСервер.ТипКолонкиВИсточникеДанных(ИмяКолонки, ОписаниеЗапроса)
ОписаниеЗапроса
Описание, пример вызова
// Возвращает описание запроса, необходимое для получения необходимых данных для обработки строк коллекции.//// Возвращаемое значение:// Структура:// * ТекстыЗапросов - СписокЗначений из Строка - Тексты запросов, результат выполнения которых вернет// все необходимые данные для обработки строк. В значении следует поместить текст запроса.// В представлении наименование запроса, его следует передавать в параметр ИмяИсточника при использовании// метода ДанныеДляОбработкиСтроки.// * ПараметрыЗапроса - Структура - Параметры пакета запросов. В ключах структуры содержатся имена параметров,// которое используется в запросе, в значениях значения параметров, передаваемых в запрос.// * ИсточникДанных - ТаблицаЗначений - Обрабатываемая коллекция, преобразованная в таблицу значений.// * ДопКолонки - Структура - Описание дополнительных колонок.// * ПривилегированныйРежим - Булево - Признак необходимости установки привилегированного режима перед выполнением запроса.//Функция ОписаниеЗапроса() Экспорт
Пример вызова
Результат = ПакетнаяОбработкаТабличнойЧастиСервер.ОписаниеЗапроса()
ДанныеДляОбработкиСтроки
Описание, пример вызова
// Возвращает данные, необходимые для обработки текущей строки табличной части.//// Параметры:// ИмяИсточника - Строка - Имя таблицы в запросе, которая описана в методе ДополнитьТекстыЗапросовИсточниковДанных// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения.//// Возвращаемое значение:// ТаблицаЗначений, Неопределено - Результат запроса с отбором по имени запроса и текущей обрабатываемой строке://Функция ДанныеДляОбработкиСтроки(ИмяИсточника, КэшированныеЗначения) Экспорт
Пример вызова
Результат = ПакетнаяОбработкаТабличнойЧастиСервер.ДанныеДляОбработкиСтроки(ИмяИсточника, КэшированныеЗначения)
ТребуетсяВыполнитьДействие
Описание, пример вызова
// Проверяет необходимость выполнения действия со строкой, исходя из наличия действия в структуре действий и зависимости// обработчиков. Устанавливает значения переданных параметров из действия в переменную Параметр.//// Параметры:// ИмяДействия - Строка - Имя действия, которое требуется выполнить над строкой, например "ЗаполнитьСтавкуНДС".// СтруктураДействий - см. ОбработатьСтрокуТЧВЦикле.Действия.// КэшированныеЗначения - см. ПакетнаяОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения.// Параметры - Произвольный - Дополнительные параметры, необходимые для обработки строки текущим действием.//// Возвращаемое значение:// Булево - Признак необходимости выполнения действия.//Функция ТребуетсяВыполнитьДействие(ИмяДействия, СтруктураДействий, КэшированныеЗначения, Параметры = Неопределено) Экспорт
Пример вызова
Результат = ПакетнаяОбработкаТабличнойЧастиСервер.ТребуетсяВыполнитьДействие(ИмяДействия, СтруктураДействий, КэшированныеЗначения, Параметры);
ДополнитьКолонкиИсточникаДанных
Описание, пример вызова
// Описание дополнительных колонок, которые будут заполнены программно. Данные в колонках требуется для более удобной// обработки строк, нежели переноса логики на сторону СУБД.//// Параметры:// ОписаниеЗапроса - см. ОписаниеЗапроса// ИмяКолонки - Строка - Имя колонки, которую требуется добавить в временную таблицу с обрабатываемой коллекцией.// ОписаниеТипа - ОписаниеТипов - Тип добавляемой колонки.//Процедура ДополнитьКолонкиИсточникаДанных(ОписаниеЗапроса, ИмяКолонки, ОписаниеТипа) Экспорт
Пример вызова
ПакетнаяОбработкаТабличнойЧастиСервер.ДополнитьКолонкиИсточникаДанных(ОписаниеЗапроса, ИмяКолонки, ОписаниеТипа)
© 2024, ООО 1С-Софт
Все права защищены. Эта программа и сопроводительные материалы предоставляются
в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0).