Конструктор программиста – набор шаблонов программного кода для конструирования результата СКД и поддержки баз как типовых

27.02.15

Разработка - Инструментарий разработчика

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

Скачать исходный код

Наименование Файл Версия Размер
Шаблоны программного кода
.rar 313,81Kb
70
.rar 1.0.8 313,81Kb 70 Скачать

Общие положения.

  1. Все примеры данной статьи разработаны на управляемом приложении.  Использование этих шаблонов в обычном приложении возможно и не требует разделение &НаКлиенте и &НаСервере.

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

  3.  Конструктор результата СКД и ключевые процедуры подробно описаны в //infostart.ru/public/276806/ . Поэтому здесь приложены только файлы, содержащие последнею версию и полностью исполняющие заявленную ранее функциональность Конструктора Результата СКД. А именно:

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

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

    3. Чтение формата *.xls на странице «Загрузить *.xls».

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

Содержание примеров.

Примеры предназначены для копирования программного кода. Макет СКД разрабатывает программист по своему усмотрению. Для демонстрации примеров контрольные базы заполнены произвольными данными.

 

  1. Пример 01. (Простейший).  Получить табличный документ, используя СКД. Все входные данные по умолчанию.

  2. Пример 02. Различные варианты кодирования.

    1.  Получить таблицу значений, используя СКД.

    2.  Получить дерево значений для варианта настройки №2, используя СКД.

  3. Пример 03. Получить табличный документ с расшифровкой, используя СКД. Данные хранятся во временном хранилище.

  4. Пример 04. Получить дерево значений, используя СКД. Данные хранятся во временном хранилище.

  5. Пример 05. Получить дерево значений по данным внешней базы, используя СКД. Данные хранятся во временном хранилище. Строку соединения с базой программист может скопировать с экрана на странице «Параметры базы данных (Источника)».

    1.  Контрольная внешняя база входит в поставку.

    2. В контрольном примере_05 СтрокаСоединения = "File=D:\InfoStart\ИнфоСтарт3_\CD_3;Usr=Администратор;Pwd=";

    3.  Значение переменной необходимо привязать по месту.

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

  7. Пример 07. Получить ТабличныйДокумент на основании внешнего набора данных типа ДеревоЗначений, используя СКД. Данные хранятся во временном хранилище.

  8. Пример 08. (Поддержка типовой конфигурации). В типовом документе, выполненном в формате обычного приложения:

    1.  Добавить и обработать новый реквизит.

    2.  Добавить и обработать новую табличную часть.

    3.  Добавить новую кнопку процедуры.

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

    5.  Новые формы выполнить в формате управляемого приложения.

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

  1. Создаём макет СКД. Макет размещаем либо в Отчет. РезультатСКДупр, либо в целевой объект конфигурации.

    1. В отчете. РезультатСКДупр заполняем переменную АдресМакетаСКД.

    2. В процедуре ЗаполнитьПараметрыСКДсрв() заполняем параметры макета.

  2. Применяем Отчет.РезультатСКДупр для отладки результата СКД.

    1. Выбираем внешнюю базу в качестве источника данных (не обязательно).

    2. Считываем дополнительную информацию из *.xls (не обязательно).

    3. Запускаем «СформироватьСКД». Выполняем отладку СКД.

    4. Процедура ВыполнитьПоАлгоритму() позволяет доработать полученную КоллекциюЗначений. (Не обязательно).

  3. По завершении отладки, приступаем к формированию программного кода для вставки в целевой объект.  

    1. В целевой объект копируем один из примеров Отчета. ПримерыИспользованияКонструктораСКД.

    2. Заполняем параметры результатом отладки.

    3. Запускаем целевой объект.

  4. В целевом объект получаем ТаблицуЗначений, ДеревоЗначений или ТабличныйДокумент.

 

Некоторый комментарий по применению СКД не только для отчетов.

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

В текущую базу данных следует обязательно скопировать общийМодуль.ОбщегоНазначенияСКД. Этот модуль обеспечит заявленную функциональность использования СКД.

Если в текущую и внешнюю базы скопировать общийМодуль.ФункцииДляОтчетовСервер и общийМодуль.ФункцииДляОтчетов , то для чтения внешней базы можно использовать СКД.

Остальные объекты желательно перенести в текущую базу для личного удобства копирования программного кода.

Внешняя база может использовать платформы 1cv82 и 1cv83. Однако, следует иметь ввиду, что фирма 1С обеспечивает преемственность с ранними версиями. То есть, если предполагается читать платформу 1cv83, то текущая база должна быть запущена на платформе 1cv83.

Комментарий о поддержке обновлений типовых конфигураций.

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

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

В примере_08 вызов новой формы выполняется кнопкой ПодменюЗаполнить.ЗаполнитьТабЧасть2локально

Схема работает.

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

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

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

      2.  Здесь один из вариантов аргументации. Если в типовой объект добавлена табличная часть, то обработка её предполагается на отдельной странице. Хлопоты пользователя по открытию страницы или новой формы различаются не значительно. С другой стороны, если сравнить предложенный вариант с вариантом программной записи новых элементов формы в типовой объект //infostart.ru/public/304736/ , то в трудозатраты программиста входит написание одной строки вызова новой формы. Все остальные изменения внутри новой формы обслуживаются типовыми конструкторами и не будут влиять на типовой объект. Это плюс и для новой ТАБЛИЧНОЙ ЧАСТИ программисту рационально использовать новую форму

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

        Рекомендации по добавлению нового кода в типовую конфигурацию.

  1. Как изменить процедуру типовой конфигурации?

    1. Изменения следует выполнить в локальной процедуре. Программисту следует постараться.

    2. Разместить локальную процедуру, желательно, в конце типовой().

    3. Имя локальной процедуры должно начинаться с _. В этом случае, все изменения будут в верху списка процедур.

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

      Процедура ИмяТиповойПроцедуры()

                  // текст типовой процедуры.

                 

                  _ ИмяТиповойПроцедурыИмяФирмы();

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

       

      Процедура _ ИмяТиповойПроцедурыИмяФирмы () //Локальная

                  // локальный текст

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

  2. Как добавить новые свойства объекту типовой конфигурации? Новые свойства следует обрабатывать в новой форме(управляемая). При этом, не следует забывать о различие данных на форме и объекте. То есть, программист должен согласовать данные новой формы с данными типовой формы и типовым объектом. Создание нового объекта из новой формы следует предотвратить.

    1. Как вариант, можно добавить обработку типовых свойств в новую форму.

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

  4. Реализацию этих простых рекомендаций можно посмотреть в Примере_08.

Примеры.

 //////// 01 //////

&НаКлиенте

Процедура ПолучитьТабДок_01(Команда)

                Перем ТабДок;

                ПолучитьТабДок_01НаСервере(ТабДок);

                ТабДок.Показать();

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

 

&НаСервере

Процедура ПолучитьТабДок_01НаСервере(результатСКД)

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

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

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

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

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

 

/////////// 02 //////////////

&НаКлиенте

Процедура Получить_тз_02_1(Команда)

                Перем тз;

                Получить_тз_02_1НаСервере(тз);

                ОткрытьЗначение(тз);        

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

&НаСервере

Процедура Получить_тз_02_1НаСервере(результатСКД)

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

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

                РезультатСКДтип = "ТаблицаЗначений"; //оставитьНужное смотри описание

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

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

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

 

&НаКлиенте

Процедура Получить_дз_02_2(Команда)        

                дз = Получить_дз_02_2НаСервере();

                ОткрытьЗначение(дз);       

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

 

&НаСервере

Функция Получить_дз_02_2НаСервере()

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

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

                РезультатСКДтип = "ДеревоЗначений"; //оставитьНужное смотри описание

                НастройкиСКД = "Вариант2";

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

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

                Возврат результатСКД;

КонецФункции

////////////  03  /////////////

&НаКлиенте

Процедура ПолучитьТабДокИзХранилища_03(Команда)            

                ПолучитьТабДокИзХранилища_03НаСервере();

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

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

                РезультатТабДок = РезультатСКД;    

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

 

&НаСервере

Процедура ПолучитьТабДокИзХранилища_03НаСервере()

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

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

                РезультатСКДтип = "ТабличныйДокумент"; //оставитьНужное смотри описание

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

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

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

 

&НаКлиенте

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

                СтандартнаяОбработка = Ложь;

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

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

                ОсновноеДействие =цДанныеРасшифровки.Элементы.Получить(Расшифровка).ОсновноеДействие;

                мсДоступныеДействия = Новый Массив();

                мсДоступныеДействия.Добавить(ОсновноеДействие);

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

                ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(цДанныеРасшифровки,Новый ИсточникДоступныхНастроекКомпоновкиДанных(схемаКомпоновкиДанных));      

                Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка, , мсДоступныеДействия );               

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

////////////  04  /////////////

&НаКлиенте

Процедура ПолучитьДЗизХранилища_04(Команда)

                Перем ПараметрыСКД;

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

                ПолучитьДЗизХранилища_04НаСервере(ПараметрыСКД);          

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

&НаСервере

Процедура ПолучитьДЗизХранилища_04НаСервере(ПараметрыСКД)

                РезультатСКДтип = "ДеревоЗначений"; //оставитьНужное смотри описание

                НастройкиСКД = "Вариант2";

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

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

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

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

                ИмяРеквизита = "РезультатДеревоЗначений";

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

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

///////////////  05  ///////////

&НаКлиенте

Процедура ПолучитьИзВнешнейБазы_05(Команда)

                Перем ПараметрыСКД;

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

                РезультатСКДтип = "ДеревоЗначений"; //оставитьНужное смотри описание         

                //СтрокаСоединения = "Srvr=PankratovWork:1541;Ref=SQL_01;Usr=Администратор;Pwd=";

                СтрокаСоединения = "File=D:\InfoStart\ИнфоСтарт3_\CD_3;Usr=Администратор;Pwd=";

                ПолучитьИзВнешнейБазы_05НаСервере(струкСКД);

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

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

                ОткрытьЗначение(РезультатСКД);                   

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

 &НаСервере

Процедура ПолучитьИзВнешнейБазы_05НаСервере(струкСКД)

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

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

/////////////  06 //////////////

&НаКлиенте

Процедура ИзВнешнегоНабораТЗ_06(Команда)

                Перем ПараметрыСКД;

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

                РезультатСКДтип = "ТабличныйДокумент"; //оставитьНужное смотри описание

                //РезультатСКДтип = "ТаблицаЗначений"; //оставитьНужное смотри описание

                //РезультатСКДтип = "ДеревоЗначений"; //оставитьНужное смотри описание

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

                ИзВнешнегоНабораТЗ_06НаСервере(струкСКД);

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

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

                Если ТипЗнч(РезультатСКД)=Тип("ТабличныйДокумент") Тогда

                               РезультатСКД.Показать();

                Иначе

                               ОткрытьЗначение(РезультатСКД);   

                КонецЕсли;           

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

&НаСервере

Процедура ИзВнешнегоНабораТЗ_06НаСервере(струкСКД)        

                НастройкиСКД = "тзНаборДанных";  //имяВариантаСКД

                струкСКД.Вставить("НастройкиСКД", НастройкиСКД);

                цТЗнаборДанных = ПолучитьТЗ();     

                ВнешниеНаборыДанныхСКД = Новый Структура("тзНаборДанных",цТЗнаборДанных );

                струкСКД.Вставить("ВнешниеНаборыДанныхСКД",ВнешниеНаборыДанныхСКД);

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

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

 

////////////////  07  ///////////

&НаКлиенте

Процедура ИзВнешнегоНабораДЗ_07(Команда)

                Перем ПараметрыСКД;

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

                //РезультатСКДтип = "ТабличныйДокумент"; //оставитьНужное смотри описание

                //РезультатСКДтип = "ТаблицаЗначений"; //оставитьНужное смотри описание

                РезультатСКДтип = "ДеревоЗначений"; //оставитьНужное смотри описание         

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

                ИзВнешнегоНабораДЗ_07НаСервере(струкСКД);

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

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

                Если ТипЗнч(РезультатСКД)=Тип("ТабличныйДокумент") Тогда

                               РезультатСКД.Показать();                  

                Иначе

                               ОткрытьЗначение(РезультатСКД);                                  

                КонецЕсли;           

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

&НаСервере

Процедура ИзВнешнегоНабораДЗ_07НаСервере(струкСКД)

                НастройкиСКД = "дзНаборДанных";  //имяВариантаСКД

                струкСКД.Вставить("НастройкиСКД", НастройкиСКД);

                ДЗ = ПолучитьДЗ();             

                цТЗнаборДанных = ОбщегоНазначенияСКД.ДЗпреобразоватьВтз(ДЗ);     

                ВнешниеНаборыДанныхСКД = Новый Структура("тзНаборДанных",цТЗнаборДанных );

                струкСКД.Вставить("ВнешниеНаборыДанныхСКД",ВнешниеНаборыДанныхСКД);

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

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

Состав приложения RAR.

В приложение помещено КонструкторСКД.dt, КонструкторСКД.cf КонтрольнаяВнешняяБаза.cd и консоль5.dcf

  1.  КонструкторСКД.dt – Контрольная база. База содержит

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

    2. отчет. ПримерыИспользованияКонструктораСКД – шаблоны программного кода для копирования.

    3.  Документ. ДокументТиповой_01обыч – шаблон программного кода для внесения изменений в типовой документ, с возможностью сохранения поддержки при типовом обновлении. В примере_08 типовой документ выполнен по технологии обычного приложения, а новая форма по технологии управляемого приложения.

    4. ОбщиеМодули – обеспечивают заявленную функциональность. Эта версия модулей рекомендована для замены более ранней версии в //infostart.ru/public/276806/ .  

  2. КонтрольнаяВнешняяБаза.cd – используется для контроля соединения КонструктораСКД с внешней базой.

  3. консоль5.dcf – настройка консоли отчетов для оперативной проверки заполнения типового документа с локальными изменениями.

Примечание.

В //infostart.ru/public/276806/ приведен внешний отчет, который можно использовать как инструмент для отладки получения данных с использованием СКД. Указанный внешний отчет работает как в обычном режиме запуска, так и в управляемом.

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

Шаблон СКД обновление

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    126481    685    389    

737

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    8295    24    6    

45

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    4664    12    2    

38

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2280 руб.

14.01.2013    178857    1084    0    

862

Бустер Конвертации данных 3 (Infostart Toolkit)

Инструментарий разработчика 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15068    3    12    

37

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99790    239    97    

298

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28400    4    10    

16

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18491    6    8    

40
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. script 128 28.02.15 13:43 Сейчас в теме
Это нужно делать в виде Шаблона универсального отчета для СКД
2. pavley2002 197 01.03.15 13:18 Сейчас в теме
(1) script,
Целью статьи не является создание отчета, в том числе универсального. Я привел примеры использования СКД вместо результата запроса для целей программирования.
Технология СКД обладает наглядность и расширенными возможностями по сравнению с запросом. Это преимущество можно использовать, если вместо результата запроса использовать ТаблицуЗначений или ДеревойЗначений. Примеры 01-07 описывают различные способы получения НаборовЗначений. Эти НаборыЗначений можно использовать, например, для ОбработкиПроведения.
СКД наглядно показывает алгоритм формирования информации. Это один из плюсов.
pm74; teflon; +2 Ответить
3. avz_1C 10 31.01.19 13:27 Сейчас в теме
4. szv 155 03.01.21 08:37 Сейчас в теме
В разделе "Как изменить процедуру типовой конфигурации?" предлагается править код. Это наверное неудачно.
Наверное лучше в типовой вызвать экспортную процедуру с параметром СтандартнаяОбработка.
Процедура должна находиться в Общих модулях. Правит ее только Программист. Тогда будет без проблемное обновление типового функционала ...
Оставьте свое сообщение