8.х Помогите переделать в управляемую форму

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Troyan_IV, 12 апр 2017.

  1. TopicStarter Overlay
    Troyan_IV
    Offline

    Troyan_IV

    Регистрация:
    12 апр 2017
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Помогите переделать обычную форму в управляемую

    код в модуле формы:
    Процедура СфорОстат(Элемент)
    ВременнаяТаблица1=ИзТКС();
    ЭлементыФормы.ВременнаяТаблица1.СоздатьКолонки();
    КонецПроцедуры
    ----------------------------------------------------------
    В модуле Объекта:

    Функция ИзТКС() экспорт
    ПодключБаза();

    НаборЗаписей = Новый ComObject("ADODB.RecordSet");
    Попытка

    Организ="""МОРИОН""";
    Команда = Новый COMОбъект("ADODB.Command");
    Команда.CommandTimeout = 600;
    Команда.ActiveConnection = Connection;
    Команда.CommandText ="SEL ECT ComponentName as component,Sum(Quantity) Количество FR OM mydata_common_db.mydbcarrview_10.carrier_magname

    | GROUP BY ComponentName order by ComponentName";


    НаборЗаписей = Команда.Execute();
    //Состояние("Данные получены.");
    Исключение
    Сообщить("Нет данных.");
    //Возврат 0;
    КонецПопытки;

    ВременнаяТаблица = Новый ТаблицаЗначений;

    //Добавление колонок во временную таблицу
    Для НомерСтолбца = 0 По НаборЗаписей.Fields.Count - 1 Цикл
    ИмяСтолбца = НаборЗаписей.Fields.Item(НомерСтолбца).Name;
    ВременнаяТаблица.Колонки.Добавить(ИмяСтолбца);
    КонецЦикла;

    Пока НЕ НаборЗаписей.EOF Цикл

    НоваяСтрока = ВременнаяТаблица.Добавить();
    Для НомерСтолбца = 0 По НаборЗаписей.Fields.Count-1 Цикл
    Попытка

    НоваяСтрока.Установить(НомерСтолбца, СокрЛП(НаборЗаписей.Fields(НомерСтолбца).Value));
    Исключение
    Сообщить("Нет данных.");

    КонецПопытки;

    КонецЦикла;

    НаборЗаписей.MoveNext();

    КонецЦикла;

    Возврат ВременнаяТаблица;

    КонецФункции
    -----------------------------
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.411
    Симпатии:
    974
    Баллы:
    204
    Читаем литературу по программированию УФ и переделываем.
    Что именно не получается?
  3. Profaner
    Offline

    Profaner

    Регистрация:
    8 авг 2016
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Вопрос в отображении произвольной таблицы значений на форме? Да, просто было это на ОФ :)
    Изначально у тебя на форме не должно быть таблицы, она появится программно.
    &НаКлиенте
    Процедура СфорОстат(Элемент)
    СфорОстатСервер();
    КонецПроцедуры

    &НаСервере
    Процедура СфорОстатСервер()
    Модуль = РеквизитФормыВЗначение("Объект");
    ВременнаяТаблица1=Модуль.ИзТКС();
    //А тут программно создаешь таблицу значений из полученной таблицы
    //Модуль объекта не меняется вроде
    //Готовый пример создания и отображения ТЗ на упр. форме есть уже на инфостарте
    http://infostart.ru/public/296433/
    КонецПроцедуры
  4. TopicStarter Overlay
    Troyan_IV
    Offline

    Troyan_IV

    Регистрация:
    12 апр 2017
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Таблицу программно на форме я создаю, а как передать значение колонок из временной таблицы(в функции в модуле объекта) не понимаю, но попутно всё читаю, пока помогает слабо( и функция с модуля объекта в форме не вызывается, хоть и глобальная(
  5. Profaner
    Offline

    Profaner

    Регистрация:
    8 авг 2016
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Почему процедура из модуля не вызывается? Пробовали, как я выше написал? Если ругается, то что пишет? И вообще где происходит всё сие действие? (обработка, отчет, объект...)
  6. TopicStarter Overlay
    Troyan_IV
    Offline

    Troyan_IV

    Регистрация:
    12 апр 2017
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Сие действо во внешней обработке,читаю инфостарт, пробую)
  7. Profaner
    Offline

    Profaner

    Регистрация:
    8 авг 2016
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Тогда должно взлететь, пробуйте)
  8. TrasserZero
    Offline

    TrasserZero Опытный в 1С

    Регистрация:
    26 окт 2016
    Сообщения:
    57
    Симпатии:
    2
    Баллы:
    29
    Сумбурное объяснение.. Но я так понял основная проблема в передаче таблицы значений на форму? ну дык передайте массив.. недавненько сталкивался - решил типа как-то так:
    &НаСервере
    Функция ТаблицаЗначенийВМассив(ТекДок)
    ТаблицаЗначений = ТекДок.Товары.Выгрузить();
    Массив =Новый Массив(); СтруктураСтрокой ="";
    НужнаЗапятая =Ложь;
    Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
    Если НужнаЗапятая Тогда СтруктураСтрокой = СтруктураСтрокой +",";
    КонецЕсли;
    СтруктураСтрокой = СтруктураСтрокой + Колонка.Имя;
    НужнаЗапятая =Истина;
    КонецЦикла;
    Для Каждого Строка Из ТаблицаЗначений Цикл
    НоваяСтрока =Новый Структура(СтруктураСтрокой);
    ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
    Массив.Добавить(НоваяСтрока);
    КонецЦикла;
    Возврат Массив;
    КонецФункции

Поделиться этой страницей