ООО ЭкоЮнит
FAQSearchMemberlistUsergroupsFilesLog inRegisterГлавная
printer-friendly view
 
AuthorMessage
Sergey Gender:Male


Местный босс - администратор


Joined: 06 Jan 2005
Show/Hide

Функция предназначена в основном для изменения типовых конфигураций 1C: Предприятия 8.X линии УТ 10.3, УПП 1.2, БП 2.0, когда хочется что-то добавить, но не хочется сильно менять штатный код и формы.


// Добавляет колонку типа ПолеВвода с данными реквизита табличной части в заданную позицию коллекции колонок табличного поля
// и назначает свойства и действия для созданного элемента
//
// Параметры
//  ПозицияНовойКолонки  - Число - Индекс вставляемой колонки. Если индекс равен количеству колонок или Неопределено, то происходит добавление колонки в конец коллекции.
//  ТабличноеПолеКолонки  - ТабличноеПоле или КолонкиТабличногоПоля  - табличное поле или коллекция колонок табличного поля
//  МетаданныеРеквизита  - Метаданные - Метаданные реквизита табличной части объекта. Данное свойство позволяет указать, какие данные будут отображаться в ячейке табличного поля.
//  ОбработчикиСобытий - Структура - Структура, содержащая список наименований процедур - обработчиков событий элемента управления добавляемой колонки.
//                          Необязательно, по умолчанию неопределён
//  ТекстШапки  - Строка  - Текст, который будет выводиться в заголовке новой колонки табличного поля.
//                          Необязательно, по умолчанию синоним реквизита табличной части объекта
// Возвращаемое значение:
//   КолонкаТабличногоПоля - Вставленная колонка табличного поля.
//
Функция ДобавитьКолонкуТабличногоПоляСДанными(Знач ПозицияНовойКолонки = Неопределено, ТабличноеПолеКолонки, Знач МетаданныеРеквизита, Знач ОбработчикиСобытий = Неопределено, Знач ТекстШапки = "") Экспорт

    Если Не ЗначениеЗаполнено(ТекстШапки) Тогда
        ТекстШапки = МетаданныеРеквизита.Синоним;
    КонецЕсли;
    Если ТипЗнч(ТабличноеПолеКолонки) = Тип("КолонкиТабличногоПоля") Тогда
        КоллекцияКолонок = ТабличноеПолеКолонки;
    Иначе
        КоллекцияКолонок = ТабличноеПолеКолонки.Колонки;
    КонецЕсли;

    ИмяКолонки = МетаданныеРеквизита.Имя;
    Если ПозицияНовойКолонки = Неопределено Тогда
        НоваяКолонка = КоллекцияКолонок.Добавить(ТекстШапки);
    Иначе
        НоваяКолонка = КоллекцияКолонок.Вставить(ПозицияНовойКолонки, ТекстШапки);
    КонецЕсли;
    НоваяКолонка.Имя = ИмяКолонки;
    НоваяКолонка.Данные = ИмяКолонки;
    НоваяКолонка.Видимость = Истина;
    НоваяКолонка.УстановитьЭлементУправления(Тип("ПолеВвода"));
    Если МетаданныеРеквизита.Тип.Типы().Количество() = 1 Тогда
        Если Метаданные.Справочники.Содержит(Метаданные.НайтиПоТипу(МетаданныеРеквизита.Тип.Типы()[0])) Тогда
            НоваяКолонка.ЭлементУправления.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Элементы;
        КонецЕсли;
    КонецЕсли;
    НоваяКолонка.ЭлементУправления.КнопкаОткрытия   = Истина;
    НоваяКолонка.ЭлементУправления.КнопкаВыбора   = Истина;
    НоваяКолонка.ЭлементУправления.КнопкаОчистки   = Истина;

    Если ОбработчикиСобытий <> Неопределено Тогда
        Для каждого Элемент Из ОбработчикиСобытий Цикл

            Если ТипЗнч(Элемент.Значение) = Тип("Строка") Тогда
                ДействиеЭлементаУправления = Новый Действие(Элемент.Значение);
            Иначе
                ДействиеЭлементаУправления = Элемент.Значение;
            КонецЕсли;
            НоваяКолонка.ЭлементУправления.УстановитьДействие(Элемент.Ключ, ДействиеЭлементаУправления);

        КонецЦикла;
    КонецЕсли;

    Возврат НоваяКолонка;

КонецФункции // ДобавитьКолонкуТабличногоПоляСДанными()


Пример использования функции в процедуре ПриОткрытии либо в переопределённом обработчике (подробнее здесь). Предполагается, что функция находится в общем модуле РаботаСФормами.

// Процедура - обработчик события "ПриОткрытии".
//
Процедура ЛксПриОткрытии()

    //Добавим новую колонку ДокументПартии в табличное поле Товары
    РеквизитДокументПартии = ЭтотОбъект.Метаданные().ТабличныеЧасти.Товары.Реквизиты.ДокументПартии;
    ОбработчикиСобытий = Новый Структура("НачалоВыбора", "ТоварыДокументПартииНачалоВыбора");
    //Вставим новую колонку справа от колонки ДокументРезерва
    ИндексДокументРезерва = ЭлементыФормы.Товары.Колонки.Индекс(ЭлементыФормы.Товары.Колонки.ДокументРезерва) + 1;
    РаботаСФормами.ДобавитьКолонкуТабличногоПоляСДанными(ИндексДокументРезерва, ЭлементыФормы.Товары, РеквизитДокументПартии, ОбработчикиСобытий);

    Выполнить(РаботаСФормами.ЛксПолучитьСтароеДействиеФормы(ЭтаФорма, "ПриОткрытии"));

КонецПроцедуры // ЛксПриОткрытии()

//Переопределяем штатный обработчик события ПриОткрытии
РаботаСФормами.ЛксУстановитьДействиеФормы(ЭтаФорма, "ПриОткрытии");

_________________
Профессионал - это тот же дилетант, только знающий где ошибется. Генератор db_update.php для phpBB2 с некоторыми удобствами.
Как ставить моды. Что такое [SQL] и с чем его едят | Как правильно задавать вопросы и получать адекватные ответы | Правила форума
Бесплатная техподдержка только на форуме! Не надо стучаться в аську, скайп, слать емайлы, пытаться писать в приват. Спасибо за понимание. Please do not PM, ICQ, Skype or email me for support help - you won't get any reply. If you have a question or issue, post it in the appropriate forum/topic. Thanks!
Back to topOffline View user's profile Visit poster's website Skype Name
Display posts from previous:   

Summary Rating For >> Функция. Добавление колонки данных в табличное поле формы
Average Rating: 0.00 :: Min Rating: 0 :: Max Rating: 0 :: Number of Ratings: 0
Choose Rating: 1   2   3   4   5  

Similar Topics
Topic Author Forum Replies Last Post
No new posts Sticky: Выгрузка данных из Управления торговлей 10.3 / УТ 10.2 в Бухгалтерию предприятия, редакция 3...
Обработка (управляемое и обычное приложение, обмен данными УТ 10.3/10.2 - БП 3.0)
Предназначена для переноса документов и справочников из базы УТ 10.3/УТ 10.2 в базу БП 3.0 без использования планов обмена. :arrow: Поддерживаемые релизы (для платформ 1С Предприятия 8.1, 8.2, 8.3): Управление торговлей:
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 100 Thu 11 Oct, 2018 20:59 View latest post
Sergey
No new posts Файл шаблонов кода для создания обработчиков событий формы (для конфигураций 1C: Предприятия...
Создание переопределённых обработчиков событий формы и элементов формы
Представленные в файле шаблоны содержат фрагменты кода для создания процедур - переопределённых обработчиков событий формы и элементов. Подробнее в статье Методика переопределения и вызова обработчиков событий формы в 1С
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 2 Wed 28 Dec, 2011 10:54 View latest post
Sergey
No new posts Дубли контрагентов по ИНН/КПП (Бухгалтерия предприятия 3.0.39 и позднее, БГУ 1.0.34 и позднее)
отчет (управляемое и обычное приложение, система компоновки данных)
Показывает наличие дублей контрагентов по ИНН/КПП с выводом состояния контрагентов согласно базы ЕГРН/ФНС и количеством документов в базе данных. Состояние контрагента показывается в случае, если в настройках включена
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 4 Mon 07 Sep, 2015 17:02 View latest post
Sergey
No new posts Функция. Определение размера данных для 1С: Предприятия 8.Х
Универсальная функция, позволяющая определить размер данных (хранилища значения, двоичных данных, картинки, строки). Разработана в ходе реализации проекта по взаимодействию с веб-сервером для контроля размера
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 0 Tue 06 Oct, 2009 02:55 View latest post
Sergey
No new posts Добавление нового варианта для встроенного отчета на СКД для конфигураций на БСП 2.1.X и по...
Обновление предопределенных вариантов отчетов. Управляемое приложение
После добавления нового отчета (варианта) или удаления отчета/варианта в конфигурациях на БСП 2.1.X (УТ 11.1, БП 3.0, Розница 2.1, etc) необходимо или изменить версию конфигурации или запустить базу с ключом /С
Sergey 1Сv8: Программирование, отчёты, обработки, статьи 1 Sun 28 Dec, 2014 01:40 View latest post
Павел2104






All times are UTC + 3 hours
Users browsing this topic:
Registered Users: None

Jump to:   
printer-friendly view
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum
/a
Username:

Password:

Log me on automatically each visit
  Яндекс.Метрика
CrackerTracker © 2004 - 2018 CBACK.de