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

Опубликовал pavley2002 в раздел Программирование - Инструментарий

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

Зачем нужен файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?

Примечание. Нижеследующие ответы перенесены из обсуждения.
Ответ_1.
В платформе 8.2 предусмотрена совместная работа обычного (ОП) и управляемого приложений(УП). В типовых программах постепенно УП вытесняет ОП. Наблюдая эту тенденцию, следует заранее готовиться к переходу на УП и, желательно, избежать авральных ситуаций.
При плановом переходе с ОП на УП неизбежен некоторый период, в течение которого обе формы должны работать параллельно. Длительность периода включает время отладки программистом, время обучения персонала и тестирование. В течение этого периода могут поступать заявки на изменение алгоритма функционирования ОП. В предложенном инструменте все изменения алгоритма в ОП синхронно транслируются в УП. Этот эффект получен за счёт того, что макет и процедуры (функции), определяющие результат СКД, общие для ОП И УП. Этими процедурами являются: УстановитьСтартовыеПараметрыЭтойФормы(), УстановитьЗаголовокЭкрана(), ЗаполнитьПараметрыСКД(), ВыполнитьПоАлгоритмуНажатие1_общ(), УбратьНедопустимыеЗнаки().
В итоге имеем, что после изменения алгоритма в ОП , не требуется корректировать алгоритм в УП. Результат СКД будет одинаковым.

Зачем нужен файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?
Ответ_2. Рассмотрим вариант тонкого клиента.
Тонкий клиент не работает с коллекциями значений и не поддерживает функционал "данные расшифровки". Поэтому, в существующей версии инструмента предусмотрено принудительное переключение результатаСКД на тип «ТабличныйДокумент». Однако, такое решение не может быть удовлетворительным. Правильнее, вначале, выполнить на сервере процедуру «ВыполнитьПоАлгоритмуНажатие1_общ()». Затем, преобразовать полученную коллекциюЗначений в ТабличныйДокумент, который поместить во временноеХранилище по адресуРезультатСКД.

Зачем нужен файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?
Ответ_3. Распределенные базы данных.
При работе с распределенными базами данных, тождественность ОП и УП на период совместной работы обеспечивает функционал страницы «Параметры базы данных (Источник)». Чтение внешней базы с применением СКД  возможно, если текст запроса одновременно корректен в базах принимающей и передающей.

Зачем нужен файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?
Ответ_4. Удобство программирования.
Две ключевые процедуры СформироватьРезультатСКД() и ОбновитьКолонкиТЗ() обеспечивают удобство программирования. Процедуры упрощают вызов СКД.
Например, чтобы изменить тип РезультатаСКД с ТабличныйДокумент на ДеревоЗначений или ТаблицаЗначений, достаточно указать требуемый тип в параметре РезультатСКДТип.
Поэтому, эти процедуры, желательно, поместить в глобальный модуль. Выбранный вариант размещения процедур указан в переменной «ВариантРазмещенияМодуля».

Зачем нужен файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?
Ответ_5. Удобство программирования_2.
Обработку можно использовать в качестве шаблона для СКД. Так как, она работает одинаково в Управляемом и Обычном приложениях, то через некоторое не приходится сожалеть о неправильно  выбранной среде разработки.

 

Описание возможностей инструмента.

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

Детализация возможностей инструмента:

a)      Инструмент  представляет результат работы СКД на двух страницах в форматах табличного документа и  дереваЗначений или ТаблицыЗначений.

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

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

d)      В инструмент добавлена  часто востребованная функция -  преобразовывание файл.xls  в таблицу значений.

e)   Конвертация на платформу 8.3 выполняется обычным способом.

 

Порядок работы.

  1. Заполнить макет СхемыКомпоновкиДанных или использовать тестовый пример.
  2. Запустить Процедуру «Сформировать СКД» в режимах:
    1. Обычное приложение, страница «Табличный документ».
    2. Обычное приложение, страница «Коллекция значений».
    3. Управляемое приложение, толстый клиент, страница «Табличный документ».
    4. Управляемое приложение, толстый клиент, страница «Коллекция значений».
    5.  Управляемое приложение, тонкий клиент, страница «Табличный документ».

Проверить, что результат СКД одинаковый во всех режимах.

Рекомендация. Удобно из конфигуратора  одновременно запустить приложения обычное, управляемое-толстыйКлиент и управляемое-тонкийКлиент. Далее, одновременно наблюдать работу инструмента по позициям 2.1 – 2.5. Следует иметь в виду, что разделение исполнения кода &НаКлиенте или &НаСервере можно наблюдать только в базе SQL.

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

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

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

Синтаксис:

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

Параметры:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

 

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

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

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

 

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

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

 

Описание:

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

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

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

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

Примечание:

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

 

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

Синтаксис:

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

Параметры:

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

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

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

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

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

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

Описание:

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

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

Сервер

Примечание.

Процедура ОбновитьКолонкиТЗ() используется  для управляемого приложения.

 

 

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

////Обычное приложение /////

Процедура ПриОткрытии()

 

    цУникальныйИдентификатор = Новый УникальныйИдентификатор

    АдресРезультатаСКД = ПоместитьВоВременноеХранилище(Неопределено ,цУникальныйИдентификатор);

    цУникальныйИдентификатор = Новый УникальныйИдентификатор;

    МакетСКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных") ;

    АдресМакетаСКД  = ПоместитьВоВременноеХранилище( МакетСКД ,цУникальныйИдентификатор); 

 

КонецПроцедуры

 

//Вариант 1. Формируем табличный документ с настройками по умолчанию.

 

Процедура ДействияФормыСформироватьСКД(Кнопка)

 

    цПараметрыСКД =Новый Структура();

    цПараметрыСКД.Вставить("ДатаНач", ДатаНач);

    // и так далее   

 

    струк =Новый Структура("АдресРезультатаСКД, АдресМакетаСКД, ПараметрыСКД" , АдресРезультатаСКД, АдресМакетаСКД,    цПараметрыСКД) ;   

    ВариантРазмещенияМодуля=1;

   //ВариантРазмещенияМодуля=2;

    Если ВариантРазмещенияМодуля=1 Тогда

        ОбщегоНазначенияСКД_СформироватьРезультатСКД(струк); //модуль обработки

    ИначеЕсли ВариантРазмещенияМодуля=2 Тогда

        //ОбщегоНазначенияСКД.СформироватьРезультатСКД(струк);//общий модуль

 

    КонецЕсли;

 

    струкРезультатСКД = ПолучитьИзВременногоХранилища(АдресРезультатаСКД);

    цРезультатСКД = струкРезультатСКД.РезультатСКД;

    ДанныеРасшифровки = струкРезультатСКД.ДанныеРасшифровки;

    текЭлФрм = ЭлементыФормы.ТабДок;

    текЭлФрм.Очистить();

 

    текЭлФрм.Вывести(цРезультатСКД);

 

КонецПроцедуры

 

 

//Вариант 2. Формируем таблицуЗначений по текущим настройкам схемы компоновки данных.

 

Процедура ДействияФормыСформироватьСКД(Кнопка)

 

    РезультатСКД   = ЭтаФорма[СтраницаВывода_Имя];

    цПараметрыСКД =Новый Структура();

    цПараметрыСКД.Вставить("ДатаНач", ДатаНач)

    // и так далее

 

    цНастройки = КомпоновщикНастроек.Настройки;

 

    струк =Новый Структура("АдресРезультатаСКД,АдресМакетаСКД, ВариантНастройкиСКД,ПараметрыСКД,СтрокаСоединения,РезультатСКДТип,ОбщиеФормулы" ,АдресРезультатаСКД,АдресМакетаСКД, цНастройки ,ПараметрыСКД,    , «ТаблицаЗначений»,  Истина) ;

 

    ВариантРазмещенияМодуля=1;

    //ВариантРазмещенияМодуля=2;

    Если ВариантРазмещенияМодуля=1 Тогда

        ОбщегоНазначенияСКД_СформироватьРезультатСКД(струк); //модуль обработки

    ИначеЕсли ВариантРазмещенияМодуля=2 Тогда

        //ОбщегоНазначенияСКД.СформироватьРезультатСКД(струк);//общий модуль

 

    КонецЕсли;

    струкРезультатСКД = ПолучитьИзВременногоХранилища(АдресРезультатаСКД);

    цРезультатСКД = струкРезультатСКД.РезультатСКД;

   

    текЭлФрм = ЭлементыФормы.ТаблицаЗначений; 

    текЭлФрм.Значение.Колонки.Очистить();

    текЭлФрм.Значение = цРезультатСКД;

    текЭлФрм.СоздатьКолонки();

 

КонецПроцедуры

 

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

////Управляемое приложение //////

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

 

    цОтчОб =    РеквизитФормыВЗначение("Отчет");

    МакетСКД = цОтчОб.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

    АдресМакетаСКД  = ПоместитьВоВременноеХранилище(МакетСКД ,УникальныйИдентификатор);

    ЭтаФорма.КлючТекущегоВарианта = МакетСКД.ВариантыНастроек[0].Имя;

 

КонецПроцедуры

 

//Вариант 3. Формируем табличный документ по выбранному варианту схемы компоновки данных.

&НаКлиенте

Процедура ДействияФормыСформироватьСКД(Команда)

 

    ДанныеФормы = ЭтаФорма.КоллекцияЗначений;

    цПараметрыСКД =Новый Структура();

    цПараметрыСКД.Вставить("ДатаНач", ДатаНач);

    // и так далее

    цВариантСКД = этаформа.КлючТекущегоВарианта;

 

    структ =Новый Структура("АдресРезультатаСКД,АдресМакетаСКД,ВариантНастройкиСКД,ПараметрыСКД,СтрокаСоединения,РезультатСКДТип,ОбщиеФормулы" ,АдресРезультатаСКД,АдресМакетаСКД, цВариантСКД , цПараметрыСКД ,     , ДанныеФормы , Истина) ;

 

    ВариантРазмещенияМодуля=1;

    //ВариантРазмещенияМодуля=2;

 

    Если ВариантРазмещенияМодуля=1 Тогда

       ОбщегоНазначенияСКД_СформироватьРезультатСКД(струк); //модуль обработки

 

    ИначеЕсли ВариантРазмещенияМодуля=2 Тогда

        //ОбщегоНазначенияСКД.СформироватьРезультатСКД(струк);//общий модуль

 

    КонецЕсли;

 

    струкРезультатСКД = ПолучитьИзВременногоХранилища(АдресРезультатаСКД);

    цРезультатСКД = струкРезультатСКД.РезультатСКД;

    ИмяРеквизита =ИмяРеквизита;

    ОбновитьКолонкиТЗсрв( ИмяРеквизита, цРезультатСКД, ВариантРазмещенияМодуля);  

 

КонецПроцедуры

 

 

&НаСервере

Процедура  СформироватьРезультатСКДсрв(струк)

 

    цОтчОб =    РеквизитФормыВЗначение("Отчет");

    цОтчОб.ОбщегоНазначенияСКД_СформироватьРезультатСКД(струк);

 

КонецПроцедуры

 

//Вариант 4. Формируем деревоЗначений по текущим настройкам схемы компоновки данных. Источником данных выбрана внешняя файловая база МТС.

 

&НаКлиенте

Процедура ДействияФормыСформироватьСКД(Команда)

 

    Перем цВариантСКД;

   цРезультатСКДТип = «ДеревоЗначений»;    

    ПараметрыСКД =Новый Структура();

   цНастройки = отчет.КомпоновщикНастроек.Настройки;

    ПараметрыСКД.Вставить("ДатаНач", ДатаНач);

 

    структ =Новый Структура("АдресРезультатаСКД, АдресМакетаСКД, ВариантНастройкиСКД, ПараметрыСКД, СтрокаСоединения, РезультатСКДТип, ОбщиеФормулы" , АдресРезультатаСКД,АдресМакетаСКД,    цНастройки ,  ПараметрыСКД, "File=E:\1С_Базы\МТС;Usr=Панкратов_Павел;Pwd=pavley",цРезультатСКДТип, Истина) ;   

 

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

    струкРезультатСКД = ПолучитьИзВременногоХранилища(АдресРезультатаСКД);

    цРезультатСКД = струкРезультатСКД.РезультатСКД;

   ИмяРеквизита ="ТаблицаЗначений";

   ОбновитьКолонкиТЗсрв( ИмяРеквизита, цРезультатСКД);

 

КонецПроцедуры

 

//Вариант5. Формируем ТабличныйДокумент по текущим настройкам схемы компоновки данных в тонком клиенте

&НаКлиенте

Процедура ДействияФормыСформироватьСКД(Команда)

    #Если ТонкийКлиент Тогда

        ФлагЭтоТонкийКлиент = Истина;

    #Иначе

        ФлагЭтоТонкийКлиент = Ложь;

    #КонецЕсли

    ПараметрыСКД =Новый Структура();

    цНастройки = отчет.КомпоновщикНастроек.Настройки;

    ПараметрыСКД.Вставить("ДатаНач", ДатаНач);    

    структ =Новый Структура("АдресРезультатаСКД, АдресМакетаСКД, ВариантНастройкиСКД, ПараметрыСКД, СтрокаСоединения, РезультатСКДТип, ОбщиеФормулы" , АдресРезультатаСКД,АдресМакетаСКД,    цНастройки , ПараметрыСКД, ,   , Истина) ;

    Если ФлагЭтоТонкийКлиент Тогда

        цц="";

        ФлагЕстьРезультатСКДТип = структ.Свойство("РезультатСКДТип",цц);

       Если ФлагЕстьРезультатСКДТип Тогда

            структ.РезультатСКДТип =  "ТонкийКлиент";

        Иначе

            структ.Вставить("РезультатСКДТип","ТонкийКлиент")

        КонецЕсли;

    КонецЕсли;

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

    РезультатСКД_ТабДок = ПолучитьИзВременногоХранилища(АдресРезультатаСКД);

    ЭтаФорма.ТабДок = РезультатСКД_ТабДок;   

КонецПроцедуры

 

 

&НаСервере

Процедура  СформироватьРезультатСКДсрв(струк)

 

    цОтчОб =    РеквизитФормыВЗначение("Отчет");

    цОтчОб.ОбщегоНазначенияСКД_СформироватьРезультатСКД(струк);

 

КонецПроцедуры

 

&НаСервере

Процедура  ОбновитьКолонкиТЗсрв( ИмяРеквизита, цРезультатСКД)

 

    цОтчОб =    РеквизитФормыВЗначение("Отчет");

    цОтчОб.ОбщегоНазначенияСКД_ОбновитьКолонкиТЗ(ЭтаФорма, ИмяРеквизита, цРезультатСКД);

 

КонецПроцедуры


Файлы

Наименование Файл Дата Размер Кол. Скачив.
ОтладкаПереводаСКДнаУправляемоеПриложение
.erf 40,49Kb
30.05.14
33
.erf 30.05.14 40,49Kb 33 Скачать
Конструктор результата системы компоновки данных
.dt 54,10Kb
30.05.14
36
.dt 30.05.14 54,10Kb 36 Скачать

См. также

Комментарии

1. TrinitronOTV 12.05.2014 17:03
для чего у вас служит файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?
# Ответить
2. pavley2002 12.05.2014 17:37
Файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf может работать в любой базе как внешнийОтчет. С одинаковым успехом, этот файл можно запускать в режиме обычного или управляемого приложения. Причем, основную схему компоновки данных программист имеет возможность задать по своему усмотрению.
# Ответить
3. pavley2002 13.05.2014 15:36
Зачем нужен файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?[/B]
Продолжение_1.
В платформе 8.2 предусмотрена совместная работа обычного (ОП) и управляемого приложений(УП). В типовых программах постепенно УП вытесняет ОП. Наблюдая эту тенденцию, следует заранее готовиться к переходу на УП и, желательно, избежать авральных ситуаций.
При плановом переходе с ОП на УП неизбежен некоторый период, в течение которого обе формы должны работать параллельно. Длительность периода включает время отладки программистом, время обучения персонала и тестирование. В течение этого периода могут поступать заявки на изменение алгоритма функционирования ОП. В предложенном инструменте все изменения алгоритма в ОП синхронно транслируются в УП. Этот эффект получен за счёт того, что макет и процедуры (функции), определяющие результат СКД, общие для ОП И УП. Этими процедурами являются: УстановитьСтартовыеПараметрыЭтойФормы(), УстановитьЗаголовокЭкрана(), ЗаполнитьПараметрыСКД(), ВыполнитьПоАлгоритмуНажатие1_общ().
В итоге имеем, что после изменения алгоритма в ОП , не требуется корректировать алгоритм в УП. Результат СКД будет одинаковым.

Зачем нужен файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?
Продолжение_2. Рассмотрим вариант тонкого клиента.
Тонкий клиент не работает с коллекциями значений. Поэтому, в существующей версии инструмента предусмотрено принудительное переключение резултатаСКД на тип «ТабличныйДокумент». Однако, такое решение не может быть удовлетворительным. Правильнее, вначале, выполнить на сервере процедуру «ВыполнитьПоАлгоритмуНажатие1_общ()». Затем, преобразовать полученную коллекциюЗначений в ТабличныйДокумент, который поместить во временноеХранилище по адресуРезультатСКД.

Зачем нужен файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?
Продолжение_3. Распределенные базы данных.
При работе с распределенными базами данных, тождественность ОП и УП на период совместной работы обеспечивает функционал страницы «Параметры базы данных (Источник)».

Зачем нужен файл ОтладкаПереводаСКДнаУправляемоеПриложение.erf?
Продолжение_4. Удобство программирования.
Две ключевые процедуры СформироватьРезультатСКД() и ОбновитьКолонкиТЗ() обеспечивают удобство программирования. Процедуры упрощают вызов СКД.
Например, чтобы изменить тип РезультатаСКД с ТабличныйДокумент на ДеревоЗначений или ТаблицаЗначений, достаточно указать тип в параметре РезультатСКДТип.
Поэтому, эти процедуры, желательно, поместить в глобальный модуль. Выбранный вариант размещения процедур указан в переменной «ВариантРазмещенияМодуля».
Ответили: (9)
# Ответить
4. higs 14.05.2014 08:47
Однако, серьезная разработка. Даже почитав описание, уже проникся размахом. Добавлю в зкаладки - скачать, когда $m появятся. Спасибо!
# Ответить
5. pavley2002 16.05.2014 13:53
Коллеги, покритикуйте!!
Конструктивная критика будет полезна КонструкторуСКД.
# Ответить
6. pavley2002 20.05.2014 12:59
В версии 1.0.3. от 20.05.2014 исправлены мелкие ошибки.
# Ответить
7. pavley2002 30.05.2014 09:59
В версии 1.0.5. от 30.05.2014 добавлена автоматическая настройка конструктора при работе в тонком клиенте.

Коллеги.
Я готов обновить версию, тем кто загрузил файлы ранее 30.05.2014.
# Ответить
8. echo77 05.06.2014 20:19
Плюс, но оформите, пожалуйста код как код по-людски
Ответили: (11)
# Ответить
9. МимохожийОднако (файл скачал) 11.06.2014 08:01
(3) pavley2002, может быть, добавить этот текст из комментария в основную статью?
Ответили: (10)
# Ответить
10. pavley2002 11.06.2014 14:49
(9) МимохожийОднако,
Предложение рационально. Спасибо за совет.
# Ответить
11. pavley2002 11.06.2014 14:51
(8) echo77,
Просьба справедлива. Представление кода улучшено.
# Ответить
12. васисубатор 15.06.2014 22:54
По описанию интересно. Проверить при свободном скачивании было бы можно.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл