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

Публикация № 333001

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

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

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

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

  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/ приведен внешний отчет, который можно использовать как инструмент для отладки получения данных с использованием СКД. Указанный внешний отчет работает как в обычном режиме запуска, так и в управляемом.

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

35

Скачать файлы

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

Специальные предложения

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

См. также

Консоль запросов с перехватом отчетов СКД и запросов 13

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8::Запросы v8::СКД 1cv8.cf Россия Абонемент ($m) Консоль запросов

Доработанная консоль запросов с автоматическим заполнением текста запроса и всех параметров на основании объекта Запрос, полученного в "Конфигураторе" или перехваченного встроенного/внешнего отчёта СКД.

2 стартмани

29.09.2019    1366    6    strek_ivan    3       

Расчет сложных итогов СКД 88

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf ОС Абонемент ($m) Практика программирования Разработка

Малоизвестный прием для расчета итогов в отчетах на СКД.

1 стартмани

05.08.2019    4671    2    masterkio    7       

Просмотр и анализ структуры базы данных (отчет на СКД) 98

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика

Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.

2 стартмани

24.07.2019    4828    70    YPermitin    25       

Вам нравятся запросы в 1С? 13

Инструменты и обработки Программист Конфигурация (md, cf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования Разработка

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    9231    1    m-rv    73       

Многоуровневая нумерация в отчете СКД (программный вывод) 38

Статья Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

01.07.2019    2640    6    lmnlmn    7       

Модель объекта 6

Инструменты и обработки Программист Конфигурация (md, cf) v8 Абонемент ($m) Инструментарий разработчика

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    2559    1    vadim1980    0       

Иерархическая нумерация в отчете СКД с помощью макета поля 23

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка

Представляю Вашему вниманию вариант решения задачи нумерации строк иерархического отчета на СКД.

1 стартмани

28.06.2019    2637    3    Isonic    14       

Проверка несуществующих полей в настройках СКД 7

Инструменты и обработки Программист Стажер Внешняя обработка (ert,epf) v8 v8::СКД ERP2 УТ11 КА2 Абонемент ($m) Практика программирования Разработка Работа с интерфейсом

Обработка находит все поля настроек СКД, которые утратили свою актуальность Подходит для УТ 11, ERP, КА 2.

1 стартмани

20.06.2019    1385    1    MuI_I_Ika    0       

Вывод таблицы значений в табличный документ через СКД 9

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика

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

1 стартмани

20.06.2019    1412    7    servs    3       

Простые примеры сложных отчетов на СКД 253

Статья Программист Архив с данными v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

Подписи в отчете. Особенности соединения наборов: как соединить несоединяемое. Остатки на дату и обороты по месяцам в одном отчете. Курс валюты на каждую дату без группировок и соединений в запросе. Отчет с произвольными колонками и с произвольной последовательностью. "Неадекватный отчет".

1 стартмани

12.06.2019    11786    11    Hatson    22       

Поле "Отбор" в управляемой форме используя СКД 8

Отчеты и формы Программист Внешняя обработка (ert,epf) v8::УФ v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка Работа с интерфейсом

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

1 стартмани

17.05.2019    2285    2    artms    0       

Шаблон отчета, обычное приложение. Отображает на форме: параметры, отбор, варианты настроек, загрузку элементов отбора из файла 5

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД УПП1 Абонемент ($m) Инструментарий разработчика

Шаблон отчета с формой для обычного приложения. Позволяет отображать на форме: параметры, отбор, варианты настроек, загрузку в левое значение отбора список элементов из файла (проверено на Управление производственным предприятием, редакция 1.3 (1.3.61.2) )

1 стартмани

22.04.2019    1415    6    user995537    0       

Вывод вариантов СКД в таблицы на управляемой форме 25

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

Задача стояла такая: есть 2 различных запроса, результаты которых выгружаются на форму обработки в таблицы значений (далее ТЗ) и программно "соприкасаются" между собой определенным образом (как именно- в рамках данной статьи неважно). Нюанс в том, что запросы должны иметь свой компоновщик настроек и могут интерактивно на форме изменяться пользователем. На оригинальность публикации не претендую - изначально в рамках поставленной задачи пытался найти что-то подобное (уже готовый шаблон) на инфостарте, возможно "плохо искал" ;)

05.04.2019    3885    artkor    1       

Как в СКД по щелчку на какой-либо ячейке в отчете получить значение другой ячейки 102

Статья Программист Стажер Архив с данными v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка

Задача: по щелчку на ячейке в определенной колонке в таблице отчета нужно получить значение ячейки из другой колонки в этой же строке и передать его в другой отчет (т.е. сделать расшифровку значения другим отчетом).

1 стартмани

27.03.2019    6513    10    ellavs    11       

Безопасная работа с транзакциями во встроенном языке 184

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Разработка

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

1 стартмани

25.03.2019    13471    7    tormozit    35       

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

Инструменты и обработки Программист Архив с данными v8 v8::СКД 1cv8.cf Россия Абонемент ($m) Инструментарий разработчика Практика программирования Разработка

Разрабатывалась на 1С:Зарплата и управление персоналом в кредитных организациях, редакция 3.1 (3.1.5.407), поэтому использует типовой отчет Состояние штатного расписания, но технология работает для любой конфигурации. Пример внешней обработки с вызовом типового отчета на СКД "Состояние штатного расписания" и передачей ему настроек, изменения имен колонок после выполнения на имена указанные в "Пользовательских полях" или "заголовках" и вывода результата в таблицу значений.

1 стартмани

21.03.2019    2001    5    pavel_pss    0       

Шаблон отчета СКД (обычные формы) 10

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика

Шаблон отчета СКД для обычных форм. Для любой конфигурации. Без дополнительных настроек.

1 стартмани

21.03.2019    2476    18    Смешной 1С    4       

Пример использования СКД и данных расшифровки на мобильной платформе 7

Статья Программист Внешняя обработка (ert,epf) v8 v8::Mobile v8::СКД 1cv8.cf Россия Android Абонемент ($m) Практика программирования Разработка

СКД в мобильном приложении и меню действий на основе данных расшифровки (отчет, совместимый с мобильной платформой 8.3.13.45).

1 стартмани

12.03.2019    2127    2    majoram    0       

Улучшенный шаблон отчёта СКД ОФ (обычные формы), подобный стандартной управляемой форме отчёта 3

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД БП2.0 ЗУП2.5 УТ10 УПП1 Абонемент ($m) Инструментарий разработчика

Вашему вниманию предлагается улучшенный шаблон отчёта СКД, реализованный на обычных формах. Лаконичный и функциональный, весь необходимый минимум для управления отчётом вынесен на форму отчёта, что избавляет рядовых пользователей от необходимости лезть внутрь настроек отчёта. Элементы формы сделаны "резиновыми", что позволяет не дорабатывать форму отчёта, если в нём прибавилось отборов или параметров (пользователь сам при необходимости растянет область отборов или параметров). У пользователя есть возможность скрывать/отображать на форме настройки параметров или отборов. Форма автоматически запоминает состояние отображения параметров и отборов. Имеется возможность сохранять отчёт в файлы распространённых форматов (Excel2007, Excel, PDF, Word2007, ODS, HTML, Текстовый файл). Так же на панель выведена кнопка восстановления стандартных настроек отчёта.

2 стартмани

25.02.2019    2218    4    Eugen-S    0       

Вывод характеристик и их значений в динамический список 0

Инструменты и обработки Программист Архив с данными v8::УФ v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка

Если в запросе динамического списка используется конструкция {ХАРАКТЕРИСТИКИ ...}, то как вывести на форму колонки с характеристиками?

1 стартмани

22.02.2019    1961    kasper076    3       

Схемы показателей. Объединение наборов СКД. Программное формирование отчета 12

Отчеты и формы Программист Архив с данными v8 v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика

Программное формирование отчета на СКД, наборы которых выбираются из справочника.

2 стартмани

11.02.2019    3364    4    MaxxiMiliSan    0       

Сквозной рейтинг по иерархии в отчете на СКД 6

Статья Программист Архив с данными v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка

Сквозная нумерация (рейтинг) по группам и элементам справочника в отчете СКД согласно убыванию количества/суммы и т.д.

1 стартмани

07.02.2019    2599    MaxxiMiliSan    2       

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 514

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    25446    245    bonv    108       

Редактор объектов информационной базы 8.3 37

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРОбъектУпр) для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.31 от 02.10.2019

2 стартмани

23.01.2019    8662    127    ROL32    21       

Генерация внешнего отчета на основе варианта в "классической" консоли СКД 9

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Россия Абонемент ($m) Инструментарий разработчика

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

1 стартмани

16.01.2019    2730    11    maxx    21       

Особенность встроенной функции Представление() в СКД [поход на грабли] 9

Статья Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Адаптация типовых решений

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

1 стартмани

15.01.2019    4136    Dementor    5       

Модуль, реализующий хранение настроек отчетов СКД в типовом регистре "Сохраненные настройки" 5

Инструменты и обработки Программист Архив с данными v8 v8::СКД КА1 БП2.0 ЗУП2.5 УТ10 БП1.6 Абонемент ($m) Практика программирования

Модуль, обеспечивающий хранение настроек отчетов на СКД в типовом регистре "Сохраненные настройки", присутствующем в конфигурациях УПП 1.2, 1.3, УТ 10.3, БП 2.0 и т.д.

1 стартмани

12.01.2019    2928    lunjio    0       

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь полноценный оффлайн (обновление от 15.08.19)! 169

Инструменты и обработки Программист Архив с данными v8 v8::Mobile БУ УУ Android Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Абонемент ($m) Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    20192    212    informa1555    167       

Отладка сложных отчетов на СКД 137

Отчеты и формы Программист Расширение (cfe) v8 v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования

Расширение для отладки сложных отчетов на СКД (в т.ч. для собираемых программно "на лету") и быстрого перехода к отладке таких отчетов в консоли запросов и отчетов на СКД.

1 стартмани

28.12.2018    13337    53    maxx    42       

Шаблон кросс-таблицы с иерархией на СКД 12

Отчеты и формы Программист Внешний отчет (ert,erf) v8::БУ v8::СКД БП3.0 Россия Абонемент ($m) Инструментарий разработчика Практика программирования

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

1 стартмани

22.12.2018    4040    5    wizard.ilmir02    2       

Схемы макетов оформления СКД 23

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

Качественное оформление схемы компоновки данных - длительный и рутинный процесс. Одно радует: готовый макет оформления компоновки данных можно хранить в файле формата xml с возможностью последующей загрузки в любую конфигурацию 1С.

1 стартмани

18.12.2018    4617    15    dsfix    12       

СКД. Сортировка 31

Статья Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования

Показана реализация сортировки по двойному щелчку на заголовке колонки отчета и отображение направления сортировки в заголовках колонок.

1 стартмани

03.12.2018    5250    5    slimper    20       

Структура хранения данных 3

Отчеты и формы Программист Внешний отчет (ert,erf) v8::УФ v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика

Отчет на СКД выводит информацию о структуре хранения объектов в базе данных.

1 стартмани

30.11.2018    2571    9    mamba    0       

Объединение нескольких печатных форм в один табличный документ 27

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

Простое решение, как объединить табличные документы с различной шириной колонок в один и чтобы ничего не разъехалось.

1 стартмани

17.11.2018    6316    4    echo77    3       

Передача набора данных типа Объект в отчет СКД 5

Инструменты и обработки Программист Внешний отчет (ert,erf) v8 v8::УФ v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования

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

1 стартмани

12.11.2018    13946    4    evgen7938    3       

Отчет для демонстрации работы с программной расшифровкой СКД 8

Отчеты и формы Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования

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

1 стартмани

08.11.2018    3817    6    budidich    0       

Группировка измерений в заголовках СКД 62

Статья Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

Методика создания общей шапки над измерениями в таблице созданной при помощи СКД. Без всякого кода. Только штатными средствами.

1 стартмани

07.11.2018    10006    39    dusha0020    11       

Навигатор по конфигурации базы 1С 8.3 101

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРНавигаторУпр) для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Небольшой набор сервисных функций для повседневной работы. Для программистов и пользователей. Платформа 8.3, управляемые формы. Версия 1.1.0.43 от 01.10.2019

3 стартмани

28.10.2018    15043    183    ROL32    43       

И снова группировка столбцов в СКД 6

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД УТ11 Россия Абонемент ($m) Практика программирования

В публикации описано создание отчета "Остатки по складам" с группировкой по строкам и столбцам.

1 стартмани

23.10.2018    5346    vasilievil    9       

Параметризованные заголовки полей СКД 24

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

Доработанный шаблон типового отчета, который это позволяет менять заголовки полей в зависимости от значений параметров.

2 стартмани

21.09.2018    5158    3    echo77    3       

Работа с публикациями "Инфостарт" 13

Инструменты и обработки Программист Архив с данными v8 УУ Абонемент ($m) Практика программирования О сообществе WEB

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    8293    10    RocKeR_13    12       

Вывод результата отчета СКД в разные табличные документы 11

Отчеты и формы Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

21.08.2018    6889    5    Dipod    4       

Управляемая консоль запросов, отчетов 3.7.5 (расширение, внешняя обработка) 361

Инструменты и обработки Программист Архив с данными v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Абонемент ($m) Консоль запросов

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Выполнение в фоне (с возможностью отмены), Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

1 стартмани

14.08.2018    49563    1100    Evg-Lylyk    418       

Примеры программной работы с СКД, а также программного создания управляемой формы 14

Отчеты и формы Программист Архив с данными v8 v8::УФ v8::СКД Windows Абонемент ($m) Практика программирования

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

1 стартмани

12.08.2018    3982    25    MaxCreator    0       

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции 63

Инструменты и обработки Программист Бизнес-аналитик Приложение (apk) v8 Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    14845    23    informa1555    26       

Работа с данными выбора 38

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.07.2018    20049    13    kalyaka    15       

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар") 105

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    19121    86    m-rv    57       

Вывод товаров в СКД как на весах в Ашане 59

Статья Программист Внешняя обработка (ert,epf) v8::СКД 1cv8.cf Розничная торговля Абонемент ($m) Практика программирования

Небольшая хитрость, которая позволяет выводить информацию на СКД плиткой.

2 стартмани

23.05.2018    10589    7    Kutuzov    14