Конструктор результата системы компоновки данных для работы с деревом значений в тонком клиенте.



Эта статья позволит сократить трудозатраты программиста, который планирует (а может быть, вынужден) вести разработку СКД одновременно для управляемых и обычных форм или выполняет переход на управляемые формы.
Также, предложенный конструктор СКД позволяет работать с таблицей и деревом значений в режиме тонкого клиента без дополнительных трудозатрат.
И в дополнение к заявленному, конструктор СКД может работать с внешними базами, также без дополнительных трудозатрат.
И сверх того, в Конструктор включён сервис чтения файлов *.xls.

Небольшое вступление.

Очень не хочется тратить своё драгоценное время программиста на написание программного кода!

Эта разработка помогает применять Систему Компоновки Данных (СКД), без хлопот, для работы с таблицей и деревом значений, даже в режиме тонкого клиента. А также читать внешние базы методом СКД.

Возможно, возникает вопрос, а зачем использовать СКД для работы с деревом значений?

Некоторые ответы следуют.

  1. Желательно использовать наглядность СКД, например, для обработки проведения.
  2. Существенно сокращаются трудозатраты на исправление кривых баз данных.
  3. Легко получить отчет методами не доступными в СКД.
  4. В режиме запуска «ТонкийКлиент» «ДеревоЗначений» не выводится на экран. Что делать!?

……

  1. Можно разработать удобный пользователю инструмент или отчет на СКД, даже если техническое задание дурацкое.  

С такой же вероятностью, возникает другой вопрос, а причём здесь тонкий клиент?

  1. Запуск типовых конфигураций по умолчанию выполняется в тонком клиенте.
  2. Тонкий клиент необходим для работы с Интернетом.
  3. Тонкий клиент требует меньше аппаратных ресурсов.

 и т.д.

Немного поговорим.

         Программист, поработавший на управляемых формах, не хочет возвращаться к обычному приложению. Это желание объективно и не требует обсуждения.   

Однако, в реальной работе поддержка обычного приложения — это обязательное условие заказчика. Например, базы данных с историей более 3-х лет.

Поэтому, далее будет предложен компромиссный вариант.  В котором программист оставляет себе возможность корректного перехода на управляемое приложение.

Особенностью разработки является корректная работа СКД с таблицей и деревом значений в режиме тонкого клиента.  

Сформулируем цель разработки.

Цель – это сокращение трудозатрат программиста на применение СКД, при работе с ТабличнымДокументом, ТаблицейЗначений, ДеревомЗначений и внешними базами.

Условие №1 (обязательное). Разработка правильно работает в управляемом приложении, в том числе в режиме тонкого клиента.

Условие №2. Если разработка применяется на обычных формах, то условие №1 не нарушается. 

Комментарий к условию №2. Такое условие позволяет программисту не жалеть о зря потраченном времени. 

Условие №3. Информация из внешней базы может быть получена методами СКД при сохранении первых двух условий.

Условие №4 (не обязательное). Разработка позволяет работать с файлами *.xls, так как последнее часто востребовано в техническом задании или требуется программисту для ввода данных.

Пояснение к пяти вариантам конструктора СКД.

Естественный для программиста метод сокращения своих трудозатрат – это использование вложенного труда. Так как предлагаемая разработка реализует именно этот метод, то она не предлагает революционное решение, а очень просто либо автоматически согласовывает заявку с возможностью, либо оповещает о причине отказа.

Так же естественно, что выполнение 4-х указанных в предыдущем параграфе условий потребует не совсем простого программного кода. Назовём этот программный код (вложенный труд) шаблоном. На практике, даже очень хороший шаблон Системы Компоновки Данных приходится корректировать. А это противоречит цели – сокращение трудозатрат программиста.

Поэтому, разработка имеет 6(шесть) вариантов шаблона. Сложность программного кода шаблона растёт вместе с номером варианта. Программисту следует выбирать самый младший вариант из предложенных, руководствуясь таблицей№2. Это сократит трудозатраты на оперативное обслуживание выбранного шаблона. Описание каждого варианта размещено в Help  и продублировано в таблице №1.

ВИДЕО.

Видеоролик наглядно демонстрирует вышеизложенное на примере самого сложного шаблона №6 (универсальный).

Текст к видеоролику прилагается. Если речевое сопровождение отличается от текста, то правильным следует считать письменный текст. Также в тексте размещены примечания, озвучка которых нарушает ритм видеоролика.

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

ТЕКСТОВКА демонстрации видеоролика «Конструктор СКД для тонкого клиента».

00:00. Начинается демонстрация конструктора Системы Компоновки Данных. Запускаем Конструктор одновременно в  трёх режимах запуска: обычный, управляемый Толстый и управляемый Тонкий.

Демонстрация будет выполнена на универсальном отчете по Варианту №6. Этот вариант можно запускать автономно в любой конфигурации. Вариант №6 требует наибольшие трудозатраты на сопровождение. Это плата за универсальность.

 Запускаем  Конструктор СКД в трёх режимах запуска. И демонстрируем 6(шесть) сервисов конструктора.

Экраны расположены по порядку сверху вниз. Вверху Обычный режим, по центру УправляемыйТолстый, внизу справа УправляемыйТонкий.

00:42. На первом Уровне Демонстрации – формируем РезультатСКД только методами доступными в СКД.

На каждой закладке получим результатСКД соответствующего типа: ТабличныйДокумент, ТаблицаЗначений и ДеревоЗначений.

Однако в управляемом приложении не допускается в одной форме использовать Элементы с одинаковыми именами, даже на разных страницах. Поэтому, конструктор проверяет наличие дублей имен колонок и предлагает очистить таблицу, которая препятствует выводу на экран запрошенного РезультатаСКД.

Примечание.  Необходимость защиты от дублей имён является следствием текущей реализации КонструктораСКД. Поэтому, при большом желании программиста это ограничение может быть устранено.  Примечание закончилось.

01:08. В режиме ТонкогоКлиента таблицы Значений автоматически преобразованы в ТабличныйДокумент о чём выдано сообщение пользователю. Такое преобразование вынуждено, так как Платформа1С в режиме ТонкогоКлиента не поддерживает таблиц значений на клиенте.

01:35. На втором уровне демонстрации Конструктора СКД, покажем возможность применения алгоритмов не доступных  в средствах СКД. Например, в  ДеревоЗначений, полученное методом СКД, добавим произвольный знак.

Примечание. Произвольный алгоритм программист вынужден применять в случаях, когда средствами СКД нельзя получить заказанный Результат, то есть требуется последующая программная обработка РезультатаСКД, например, ОбработкаПроведения.  Примечание закончилось.

В режиме тонкого клиента многократное применение алгоритма к таблице не возможно, так как клиент не запоминает таблицу.

Примечание. В тонком клиенте Конструктор СКД каждый раз таблицу создаёт на сервере по схеме СКД. Затем, на сервере обрабатывает её по назначенному алгоритму.  Затем, формирует Табличный Документ по схеме СКД, который выводит на экран. Примечание закончилось.

(+00:32)

02:07. На  третьем уровне демонстрации. Получим данные из внешней базы, параметры которой заданы на закладке «Параметры базы данных (Источника)». В качестве сервиса, конструктор может проверить корректность Com соединения c внешним источником. При удачном соединении будет выведена строка подключения.

0:. Пронаблюдаем, что произвольный алгоритм также применим к внешней базе в каждом из трёх режимов запуска. Обычный. Управляемый Толстый. Особенно отмечаем, что в тонком клиенте всё работает также.

(+01:16)

03:23. На четвертом уровне проверим универсальность конструктора СКД.

В желтом поле выбираем место размещения модулей СКД.

1(первый) вариант размещения — в модуле внешней обработки. Такое размещение модуля позволит запускать конструктор в любой базе.

2(второй) вариант размещения — в конфигурации, в общихМодулях.ОбщегоНазначенияСКД. Такое размещение обеспечивает минимизацию трудозатрат программиста на сопровождение.

Конструктор СКД сам определит доступные модули по факту,  которые и предложит в жёлтом поле.

Покажем, что встроенный сервис от фирмы 1С функционирует нормально.

03:43. Типовой от фирмы 1С  конструктор построения схемы СКД можно вызывать в обычном и управляемом режимах.

0:4. Имя варианта настроек можно задать в обычных и управляемых формах.

На четвертом уровне было показано, что стандартный сервис от фирмы 1С функционирует без изменений, а данная разработка добавляет обработку таблиц и деревьев Значений, в том числе в режиме тонкого клиента.

Минимизация трудозатрат программиста при работе в тонком клиенте является одной из целей конструктора.

(+01:26)

04:49. На пятом уровне проверим методологическую значимость размещения произвольных алгоритмов в модуле обработки, а не в модуле формы.

04:54. Что бы исключить сомнения в том, что общие процедуры с именем «ВыполнитьПоАлгоритму…..» одновременно обслуживают все режимы запуска, изменим алгоритм обработки с «+» на «!».

05:43. Видим, что работает во всех ранее перечисленных режимах.

06:31. И на шестом уровне демонстрации, загрузим таблицу *.XLS. Правила загрузки смотри в Help.

Заключение. Весь заявленный сервис начинает работать:

А) после заполнения макета.

Б) При необходимости применения методов обработки недоступных в СКД, заполняем процедуры с именем «ВыполнитьПоАлгоритму….».

В) Тонкий клиент не является препятствием работе с деревом значений.

06:50. Удобно в предложенном конструкторе СКД то, что на запуск отчета с алгоритмами недоступными в СКД не требуется дополнительных трудозатрат. При этом учтены особенности запуска в тонком клиенте.

Желаю удачи всем и каждому.

07:16. Длительность видеоролика.

//////////////////////////////////////////////////////////////////////////////

Таблица№1.   Help  КонструктораСКД (F1).

  Сервис программисту.

  1. РезультатСКД формируется по кнопке «СформироватьСКД_». Выбор страницы определяет тип результатаСКД – ТабличныйДокумент, ТаблицаЗначений или ДеревоЗначений.
  2. По кнопке «ВыполнитьПоАлгоритмуNN_» таблица значений на экране обрабатывается по назначенному алгоритму, после чего, экран обновляется.
  3. В режиме «ТонкийКлиент». Если РезультатСКД формируется только средствамиСКД, то по кнопке «СформироватьСКД_» таблица или дерево будут автоматически преобразованы в табличный документ, о чём будет выдано сообщение. 
  4. Режим запуска (обычный, толстый или тонкий) объявлен в заголовке формы.
  5. На закладке «Параметры базы данных» можно подключить внешнюю базу, из которой будет получена информация по кнопке «СформироватьСКД_», смотри пункт а) и c).
  6. В режиме запуска «УправляемоеПриложение» автоматически проверяется дублирование имен колонок таблиц Значений. При сообщении о дублирование имён необходимо очистить конфликтующую таблицу, как указано в сообщении.
  7. На закладке «Загрузить *.xls»  можно файл *.xls преобразовать в ТаблицуЗначений для дальнейшего использования.

Вариант №1. Простейший Конструктор СКД для толстого клиента, как объект конфигурации. «РезультатСКДупр1_Толстый».

Шаблон обеспечивает обработку информации в режимах толстого и тонкого клиентов с особенностями изложенными ниже.

Вариант №1 рекомендуется в случаях, когда средств СКД достаточно для получения результата, а в конфигурации размещены «ОбщийМодульСКД», «ФункцииДляОтчетовСерверСКД», «ФункцииДляОтчетовСКД» и «ОбщийМакет.СКДтонкийКлиент».

  1. В режиме толстого клиента, по кнопке «ВыполнитьПоАлгоритмуNN_» допускается обработка Таблицы и Дерева значений.   
  2. В режиме тонкого клиента, по кнопке «СформироватьСКД_» Таблица или Дерево значений автоматически будут преобразованы в табличный документ, о чем выводится сообщение.

Вариант №2. Конструктор СКД для тонкого клиента, как объект конфигурации. «РезультатСКДупр2_Тонкий».

Шаблон обеспечивает обработку информации в режимах толстого и тонкого клиентов с особенностями изложенными ниже.

Вариант №2 рекомендуется,  когда в режиме тонкого клиента  для получения результата необходимо обрабатывать Дерево или Таблицу значений.

А в конфигурации размещены «ОбщийМодульСКД», «ФункцииДляОтчетовСерверСКД», «ФункцииДляОтчетовСКД» и «ОбщийМакет.СКДтонкийКлиент».

  1. В режиме толстого клиента, по кнопке «ВыполнитьПоАлгоритмуNN_» допускается обработка Таблицы и Дерева значений.
  2. В режиме тонкого клиента по кнопке «СформироватьСКД_» Таблица или Дерево значений автоматически будут преобразованы в табличный документ, о чем выводится сообщение.
  3. В режиме тонкого клиента по кнопке «ВыполнитьПоАлгоритмуXX_» будет:
  •  на сервере автоматически  создана таблица или дерево значений по схеме СКД (см. «СформироватьСКД»),
  • на сервере применён АлгоритмNN_ к созданной таблице,
  • полученная таблица будет преобразована в табличный документ по схеме СКД, о чём будет выведено сообщение.

Вариант №3. Простейший Конструктор СКД, как внешний отчет. «ШаблонСКДупр3_CFтонкий.erf»

Шаблон-ВнешнийОтчет обеспечивает обработку информации в Управляемом режиме запуска толстого и тонкого клиентов с особенностями изложенными ниже.

Вариант №3 рекомендуется в случаях, когда средств СКД достаточно для получения результата, а в конфигурации размещены «ОбщийМодульСКД», «ФункцииДляОтчетовСерверСКД», «ФункцииДляОтчетовСКД» и «ОбщийМакет.СКДтонкийКлиент».

  1. В режиме толстого клиента, допускается обработка Таблицы и Дерева значений по кнопке «ВыполнитьПоАлгоритмуNN_».
  2. В режиме тонкого клиента, по кнопке «СформироватьСКД_» Таблица или Дерево значений автоматически будут преобразованы в табличный документ, о чем выводится сообщение.

Вариант №4. Конструктор СКД для тонкого клиента, как внешний отчет. «ШаблонСКДупр4_ВнешнТонкий.erf».

     Шаблон-ВнешнийОтчет обеспечивает обработку информации в Управляемом режиме запуска толстого и тонкого клиентов с особенностями изложенными ниже.

      Вариант №4 рекомендуется,  если в режиме тонкого клиента  для получения результатаСКД необходимо обрабатывать Дерево или Таблицу значений методами не доступными в СКД. Метод обработки формулируется в процедуре «ВыполнитьПоАлгоритмуNN_».

      Вариант размещения МодулейСКД указывается на экране в поле, выделенном жёлтым цветом.

  1. В режиме толстого клиента, по кнопке «ВыполнитьПоАлгоритмуNN_» допускается обработка Таблицы и Дерева значений.
  2. В режиме тонкого клиента, по кнопке «СформироватьСКД_» Таблица или Дерево значений автоматически будут преобразованы в табличный документ, о чем выводится сообщение.
  3. В режиме тонкого клиента по кнопке «ВыполнитьПоАлгоритмуXX_» будет:
  • на сервере автоматически  создана таблица или дерево значений по схеме СКД (см. «СформироватьСКД»),
  • на сервере применён АлгоритмNN_ к созданной таблице,
  • полученная таблица будет преобразована в табличный документ по схеме СКД, о чём будет выведено сообщение.

Вариант №5. Конструктор СКД обычная форма, как внешний отчет. «ШаблонСКДобыч5_CFтонкий.erf».

    Шаблон-ВнешнийОтчет обеспечивает обработку информации в Обычном и Управляемом режимах запуска толстого и тонкого клиентов с особенностями изложенными ниже.

Вариант №5 рекомендуется в случаях, когда в конфигурации размещены «ОбщийМодульСКД», «ФункцииДляОтчетовСерверСКД», «ФункцииДляОтчетовСКД» и «ОбщийМакет.СКДтонкийКлиент».

  1. В любом режиме запуска (Обычный, управляемыйТолстый и управляемыйТонкий), по кнопке «ВыполнитьПоАлгоритмуXX_» допускается обработка Таблицы и Дерева значений.
  2. В Управляемом режиме запуска Тонкого клиента, по кнопке «СформироватьСКД_» Таблица или Дерево значений автоматически будут преобразованы в табличный документ, о чем выводится сообщение.
  3. В Управляемом режиме запуска Тонкого клиента по кнопке «ВыполнитьПоАлгоритмуXX_» будет:
  • на сервере автоматически  создана таблица или дерево значений по схеме СКД («СформироватьСКД»),
  • на сервере к созданной таблице применён АлгоритмNN_,
  • полученная таблица будет преобразована в табличный документ по схеме СКД, о чём будет выведено сообщение.

Универсальность исполнения алгоритмов в обычном и управляемом приложениях, достигнута за счет размещения общих реквизитов в реквизитах обработки и  обработчиков алгоритмов в процедурах модуля внешнего отчета. Это следующие процедуры:

  • ВыполнитьПоАлгоритмуТЗ_01общий(),
  • ВыполнитьПоАлгоритмуДЗ_01общий(),
  • ВыполнитьПоАлгоритмуXLS_01общий,
  • УстановитьСтартовыеПараметрыЭтойФормы(),
  • ЗаполнитьПараметрыСКДсрв(),
  • ЗаполнитьПараметрыСоединенияСрв(),
  • УбратьНедопустимыеЗнаки()

Вариант №6. Конструктор СКД универсальный, как внешний отчет. «ШаблонСКДобыч6_ВнешнТонкий.erf».

    Шаблон-ВнешнийОтчет обеспечивает обработку информации в Обычном и Управляемом режимах запуска толстого и тонкого клиентов с особенностями изложенными ниже.

    Вариант №6 рекомендуется использовать,  если варианты с меньшими номерами не обеспечивают востребованной функциональности.  Вариант №6 самый сложный в обслуживании программисту.

   Вариант размещения МодулейСКД указывается на экране в поле, выделенном жёлтым цветом.

  1. В любом режиме запуска, по кнопке «ВыполнитьПоАлгоритмуXX_» допускается обработка Таблицы и Дерева значений.
  2. В Управляемом режиме запуска Тонкого клиента, по кнопке «СформироватьСКД_» Таблица или Дерево значений автоматически будут преобразованы в табличный документ, о чем выводится сообщение.
  3. В Управляемом режиме запуска Тонкого клиента по кнопке «ВыполнитьПоАлгоритмуXX_» будет:
  • на сервере автоматически  создана таблица или дерево значений по схеме СКД (см. «СформироватьСКД»),
  • на сервере применён АлгоритмNN_ к созданной таблице,
  • полученная таблица будет преобразована в табличный документ по схеме СКД, о чём будет выведено сообщение.

Универсальность исполнения алгоритмов в обычном и управляемом приложениях, достигнута за счет размещения общих реквизитов в реквизитах обработки и  обработчиков алгоритмов в процедурах модуля внешнего отчета. Это следующие процедуры:

  • ВыполнитьПоАлгоритмуТЗ_01общий(),
  • ВыполнитьПоАлгоритмуДЗ_01общий(),
  • ВыполнитьПоАлгоритмуXLS_01общий,
  • УстановитьСтартовыеПараметрыЭтойФормы(),
  • ЗаполнитьПараметрыСКДсрв(),
  • ЗаполнитьПараметрыСоединенияСрв(),
  • УбратьНедопустимыеЗнаки()

Com  соединение с внешней базой

После Выбора варианта размещения данных для СКД следует заполнить параметры подключения. По кнопке «ПроверитьСоединение» конструктор проверит корректность параметров.

По кнопке «СформироватьСКД» конструктор возьмёт данные из выбранной внешней базы. Адрес внешней базы будет объявлен в заголовке страницы РезультатаСКД.

           XLS

Наименование столбцов ТаблицыЗначений берём из указанной строки шапки (номерСтрокиШапки). В большинстве случаев, это нижняя строка шапки. Наименования автоматически будут преобразованы к допустимым в 1С.

Тип значения столбца берем из строки = номерСтрокиШапки+ВысотаШапки. В большинстве случаев, это верхняя строка таблицы xls.

Таблица №2. Условия применимости вариантов КонструктораСКД.

Вариант

Объект конфигурации

Внешний отчет

Модули СКД размещены в конфигурации

Модули СКД размещены во внешнем отчёте

Работа с Деревом Значений в тонком клиенте

РезультатСКДупр1_Толстый

+

+

РезультатСКДупр2_Тонкий

+

+

+

ШаблонСКДупр3_CFтонкий.erf

+

+

+

ШаблонСКДупр4_ВнешнТонкий.erf

+

+

+

ШаблонСКДобыч5_CFтонкий.erf».

+

+

+

ШаблонСКДобыч6_ВнешнТонкий.erf

+

+

+

Здесь изложена информация, необходимая для оперативного обслуживания конструктора СКД.

Конструктор начинает работать сразу после заполнения макета Системы Компоновки Данных.

Если требуется обработка таблицы или дерева Значений, то следует заполнить процедуру «ВыполнитьПоАлгоритму……».

Если программист уверен, что режим ТонкогоКлиента не будет востребован, то рациональнее использовать другие разработки. Например. //infostart.ru/public/272681/  ,  //infostart.ru/public/315653/  ,  //infostart.ru/public/335504/  ,  //infostart.ru/public/303564/   и т.д.

На момент публикации статьи версия конструктора 2.6.15.

В фундаменте конструктораСКД лежат три процедуры.

  1. Функция «СформироватьРезультатСКД( цСтрук)». Функция универсально работает в любом режиме запуска и возвращает результатСКД. Функция может быть размещена в общих модулях конфигурации (рекомендуется) или в модуле внешнего отчета.
  2. Процедура «ОбновитьКолонкиТЗ(ФормаЭта,ИмяРеквизита, ДеревоТаблицаЗначенийАдрес)».  Процедура актуальна только для режима запуска «УправляемоеПриложение». Процедура обеспечивает вывод на экран любой таблицы или дерева значений. Процедура может быть размещена в общих модулях конфигурации (рекомендуется) или в модуле внешнего отчета. Если программист планирует использовать процедуру «ОбновитьКолонкиТЗ()» вне конструктора, то с вариантами её использования можно познакомиться на //infostart.ru/public/547849/
  3. Функция «ВернутьТабДок(РезультатСКД, струкСКД, НастройкиИсточник, СхемаКомпоновкиДанных)». Процедура актуальна только для режима запуска «УправляемоеПриложениеТонкийКлиент». Процедура обеспечивает преобразование любой таблицы или дерева значений в ТабличныйДокумент по схемеСКД. Функция может быть размещена в общих модулях конфигурации (рекомендуется) или в модуле внешнего отчета.

Описание процедур приведено ниже. Идея функций взята из  //infostart.ru/public/276806/     и совместима как старшая версия. Однако разработчику следует обратить внимание, что в текущей разработке в именах общих модулей добавлены буквы «СКД». Буквы добавлены с целью исключения дублирования имен с типовыми конфигурациями.

На рисунке «МодулиКонструктораСКД» указаны обязательные модули конструктора СКД.

Причем, чтение внешней базы конструктор СКД выполнит корректно, если в базе источнике будут размещены два модуля «ФункцииДляОтчетовСКД» и «ФункцииДляОтчетовСерверСКД». Подробнее можно ознакомиться в книге «Разработка сложных отчетов в 1С:Предприятии 8»  автора Е.Ю.Хрусталева.  

Пустой макет «СКДтонкийКлиент» используется для преобразования ДереваЗначения в ТабличныйДокумент в режиме тонкого клиента.

Механизм запуска процедуры обработки ДереваЗначений в режиме ТонкогоКлиента не совсем обычный и изображен на рисунке «ТонкийКлиентВызовПроцедурыНаСервере». Имя исполняемой на сервере процедуры указано в свойстве команды «Имя». Программист может выбрать любой другой метод запуска, если предложенный не нравится.

Программисту следует иметь в виду, что минимизация трудозатрат предполагает активное использование вложенного труда. Поэтому, обращаю внимание на то, что модули внешних отчетов №4 и №6 полностью идентичны общим модулям конфигурации. Это обеспечивает их правильную работу как внешних отчетов в любой конфигурации при минимальных трудозатратах программиста на модернизацию. 

Встроенные примеры использования Конструктора СКД для программирования полностью совпадают с //infostart.ru/public/333001/ ,поэтому, в данной статье отдельно не описаны. В примерах изменена версия конструктора.

Описание основных процедур конструктора СКД.

СформироватьРезультатСКД()

Синтаксис:

СформироватьРезультатСКД(<ПараметрыЗапускаСКД>)

Параметры:

<ПараметрыЗапускаСКД> (обязательный)

Тип: Структура.

Задает настройки и параметры запуска системы компоновки данных: ключ структуры определяет имя параметраЗапускаСКД, а значение структуры — значение параметраЗапускаСКД

ключ1 = «АдресРезультатаСКД», тип:строка. (Необязательный)

Значение1, тип:Строка. Адрес временного хранилища, в которое помещен результат работы системы компоновки данных. Наличие или отсутствие ключа1 определяет тип возвращаемого значения.

ключ2 = «АдресМакетаСКД», тип:строка. (обязательный) 

Значение2, тип: Строка. Адрес временного хранилища, в которое помещен макет схемы компоновки данных (Тип:СхемаКомпоновкиДанных). 

ключ3 = «ВариантНастройкиСКД», тип:Строка. (необязательный).

Значение3= тип:Строка, НастройкиКомпоновкиДанных. Если указано Имя варианта, как указано в схеме компоновки данных, тогда РезультатСКД будет получен с настройками по умолчанию указанного вариантаСКД. Если указаны текущие настройки (КомпоновщикНастроек.Настройки), то с этими настройками будет получен РезультатСКД.    Если ВариантНастройкиСКД не указан, то РезультатСКД будет получен с настройками по умолчанию.     

ключ4 = «ПараметрыСКД», тип:Строка

Значение4 , тип:Структура. Структура4 содержит параметры схемы компоновки данных.

Структура4.Ключ = Имя параметра, как оно задано в схеме компоновки данных.

Структура4.Значение = Значение параметра.

ключ5 = «СтрокаСоединения», тип:Строка. (необязательный).

Значение5 , тип:Строка. Строка соединения с внешней базой.   Если СтрокаСоединения не указана, то источником данных считается текущая база.

Ключ6 = «РезультатСКДТип», тип:Строка. (необязательный).

Значение6 = Тип:Строка,ТабличныйДокумент, ТаблицаЗначений, ДеревоЗначений, ДанныеФормыКоллекция, ДанныеФормыДерево.  Задает тип результатаСКД.  Обрабатываются следующие значения строки: «ТабличныйДокумент» , «ТонкийКлиент», «ТаблицаЗначений» и «ДеревоЗначений». Другие значения строки будут интерпретироваться как «ТабличныйДокумент».

Если РезультатСКДТип не указан, то во временное хранилище будет назначен тип ТабличныйДокумент.

Ключ7 = «ВнешниеНаборыДанныхСКД».  Тип:Строка (необязательный)

Значение7 = ВнешниеНаборыДанныхСКД,

Ключ8 = «ПроверитьНаличие».  Тип:Строка (необязательный)

Значени8, тип Булево.  Используется для определения варианта местоположения ОбщегоМодуляСКД.

Ключ9 = «ЭтоТонкийКлиент».  Тип:Строка (необязательный)

Значение9, тип Булево.  Если Истина, то следует обеспечить ограничения режима тонкого клиента.

Ключ10 = «ВыполнитьАлгоритм».  Тип:Строка (необязательный)

Значение10, тип Строка.  В режиме тонкого клиента задаёт имя процедуры на Сервере, в которой изложен алгоритм обработки таблицы или дерева значений не доступный средствами СКД. Источником информации об имени процедуры служат параметр КомандыФормы.Имя (измение вносится вручную). Причем, параметр КомандыФормы.Действие указывает на процедуру на клиенте по умолчанию.

Возвращаемое значение:

Тип: Строка, Структура. Если тип строка, то возвращен адрес временного хранилища, в котором  размещена структура.  Структура содержит, ТабличныйДокумент, ДанныеРасшифровки, ТаблицаЗначений, ДеревоЗначений.

Возвращаемое значение помещается во временное хранилище по адресу «АдресРезультатаСКД».

Вариант 1 возвращаемого значения.

Структура.РезультатСКД = Тип:ТабличныйДокумент

Структура.ДанныеРасшифровки = Тип:ДанныеРасшифровкиКомпоновкиДанных

Вариант 2 возвращаемого значения.

Структура.РезультатСКД = Тип:ТаблицаЗначений

Структура.ДанныеРасшифровки = Неопределено

Вариант 3 возвращаемого значения.

Структура.РезультатСКД = Тип:ДеревоЗначений

Структура.ДанныеРасшифровки = Неопределено

Вариант 4 возвращаемого значения, для тонкого клиента.

РезультатСКД = Тип:ТабличныйДокумент

Описание:

Возвращает или записывает во временное хранилище структуру, содержащую результат работы Системы компоновки данных (РезультатСКД) и ДанныеРасшифровки. Тип результатаСКД может быть ТабличныйДокумент,  ТаблицаЗначений, ДеревоЗначений.

Возвращаемое значение помещается во временное хранилище по адресу «АдресРезультатаСКД».

Доступность:

Сервер, Толстый клиент, тонкий клиент

Примечание:

Процедура может быть размещена либо в модуле внешнего отчета, либо в общем модуле конфигурации.

—————————————————————————————————————-

ОбновитьКолонкиТЗ()

Синтаксис:

ОбновитьКолонкиТЗ(<ФормаЭта>, <ИмяРеквизита>, <КоллекцияЗначений>)

Параметры:

<ФормаЭта> (обязательный)

Тип:УправляемаяФорма. Форма, в реквизите которой следует определить состав колонок.

<ИмяРеквизита> (обязательный)

Тип:Строка. Имя реквизита как указан в управляемой форме.  Этому реквизиту следует определить состав колонок. Тип реквизита должен быть либо ТаблицаЗначений, либо ДеревоЗначений.

<КоллекцияЗначений> (обязательный)

Тип:ТаблицаЗначений, ДеревоЗначений. Источник данных, который следует вывести на экран.

Описание:

Определяет состав колонок реквизита управляемой формы и выводит на экран результат. Тип реквизита должен быть либо ТаблицаЗначений, либо ДеревоЗначений. Применяется в случаях, когда состав колонок заранее неизвестен.

Доступность:

Сервер, клиент

Примечание:

————————————————————————————————

ВернутьТабДок()   

Синтаксис:

ВернутьТабДок(РезультатСКД, струкСКД, НастройкиИсточник, СхемаКомпоновкиДанных)

Параметры:

< РезультатСКД > (обязательный)

Тип:ТабличныйДокумент, ТаблицаЗначений,ДеревоЗначений. РезультатСКД, который следует преобразовать в ТабличныйДокумент по схемеСКД.

< струкСКД > (обязательный)

Тип:Структура. Описывает параметры запуска СКД.

< НастройкиИсточник > (обязательный)

Тип:НастройкиКомпоновкиДанных. Текущие настройки.

< СхемаКомпоновкиДанных > (обязательный)

Тип: СхемаКомпоновкиДанных. Текущая схема компоновки данных.

Описание:

В режиме запуска «ТонкийКлиент» возвращает ТабличныйДокумент, созданный на основании таблицы или дерева Значений. Причём, ТабличныйДокумент соответсвует текущей СхемеСКД.

Доступность:

Сервер

Примечание:

————————————————————————————————————————

         Перечень вспомогательных процедур, обеспечивающих дополнительный сервис программисту.

А) ЛокальныеПроцедуры:

УстановитьСтартовыеПараметрыЭтойФормы();

ЗаполнитьПараметрыСКДсрв();

ЗаполнитьПараметрыСоединенияСрв();  //внешнее соединение

ВыполнитьПоАлгоритмуТЗ_01общий(); //таблицаЗначений

ВыполнитьПоАлгоритмуДЗ_01общий();  //деревоЗначений

ОбновитьЭкран();  //для конкретной разработки запоминает назначение алгоритмов.

Б) Описание процедур ОбщиеМодули.ОбщегоНазначенияСКД не приводится, так как назначение их очевидно из названия.

ПолучитьСзИменаКолонокСКД();

ПолучитьСзИменаКолонокФормы();

ОчиститьКоллекциюЗначенийНаСервере();

ДЗпреобразоватьвТЗ(); 

ИзменитьИмяКолонокТЗ();

УдалитьПустыеВеткиДЗ();

ЗаполнитьСвойствоСтруктуры();

ОставитьЧисла();

КороткаяСтрокаСоединения();  //не показывать секретные сведения

Рекомендация разработчику.

При разработке отчетов по техническому заданию рационально сделать недоступным невостребованный сервис. Впоследствии, останется возможность активировать необходимые элементы для удовлетворения растущего аппетита заказчика. Но главное, не потребуется тратить время на изменение программного кода конструктора.

На платформе 1cv82  всё работает, но в тексте модулей не поддерживается условное оформление #Область, от которого придётся отказаться.

Желаю успехов всем и каждому.

Продолжение следует.

Предположительно, следующий релиз конструктора будет демонстрировать работу с web-Клиентом или использовать РасширениеКонфигурации.

///////////////////////////////////////////////////////////////////////////////////////////////////

Состав файла ZIP:

1.       Конфигурация шаблона Конструктора,  cf. (версияСКД 2.6.15)

2.       Архив базы с примерами,  dt.

3.       Четыре внешние обработки с вариантами конструктора СКД, erf.

2 Comments

  1. newgluk

    Такое объемное описание, такой труд проделан. Похоже, народ «не осилил много букв» и поэтому не плюсует

    Reply
  2. Lancelot-2M

    Я правильно понимаю, что это не «Конструктор СКД»?) А только его последняя страничка с настройками группировок и пост-обработкой результата? Или я просто близок к коме в конце дня?)

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *