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

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

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

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

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

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

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

Наименование Файл Версия Размер
Шаблоны программного кода

.rar 313,81Kb
68
.rar 1.0.8 313,81Kb 68 Скачать

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

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

См. также

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5 Промо

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

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

5 стартмани

21.12.2020    1911    11    huxuxuya    11    

Простой пример отчета на СКД. Программное формирование, расшифровка, работа с параметрами и отборами

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

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

1 стартмани

15.10.2020    2326    5    Stivens    10    

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

Консоль запросов v8::УФ v8::Запросы v8::СКД ERP2 УТ11 КА2 Абонемент ($m)

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

1 стартмани

28.08.2020    2271    12    kran    0    

Сужающийся поиск различий между базами

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

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

1 стартмани

30.07.2020    2284    1    Yashazz    0    

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

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

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

5 стартмани

14.08.2018    99864    2571    Evg-Lylyk    679    

Быстрое формирование наборов данных Объект схемы СКД

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

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

1 стартмани

05.07.2020    4705    5    Алексей Воробьев    16    

Построение графика в диапазоне изменений без точек

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

График изменений каких-либо величин во всем диапазоне и в области изменения, без точек.

1 стартмани

30.05.2020    1844    2    yc_2011    4    

Конструктор сравнения таблиц значения, в том числе из внешней базы

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

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

1 стартмани

28.05.2020    2934    5    pavley2002    2    

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

Инструментарий разработчика Универсальные обработки v8 1cv8.cf Абонемент ($m)

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

2 стартмани

06.10.2014    155054    2620    ekaruk    166    

Фильтр объектов на базе СКД

Прочие инструменты разработчика v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

13.05.2020    2579    5    olegarch    2    

Метод восстановления битых ссылок в настройках СКД при консольно-конфигураторной разработке отчетов

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

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

1 стартмани

30.04.2020    4780    0    zaxarovsky    4    

Получение курса валюты за период с помощью СКД

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

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

1 стартмани

04.02.2020    3044    0    KawaNoNeko    2    

Консоль запросов с графом (Анализатор сложных запросов) Промо

Консоль запросов v8::УФ v8::Запросы 1cv8.cf Абонемент ($m)

Консоль запросов для анализа запросов с большим количеством временных таблиц и вложенных запросов. Отображает структуру взаимосвязей временных таблиц в виде графа. Позволяет быстро передвигаться по тексту запроса и получать результат выполнения подзапросов. Единственная консоль запросов, которая позволяет выводить результат выполнения вложенных запросов и любой части объединения запроса. Удобное получение данных запроса из отладчика включая временные таблицы. Текст запроса в структурированном виде (можно свернуть, развернуть текст подзапроса). И еще много другого, чего вы не найдете в других консолях запросов. Поддержка УФ и ОФ. Версия 0.9.1 от 18.10.2019 (поддержка WebKit).

10 стартмани

03.05.2017    98159    442    manuel    266    

Преобразование объекта Отбор компоновки данных в Запрос

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

Преобразует объект Отбор компоновки данных в объект Запрос (с заполнением текста и параметров).

1 стартмани

20.12.2019    4179    4    okon-teh    2    

Консоль запросов с перехватом отчетов СКД (для получения реального текста запроса) и запросов

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

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

2 стартмани

29.09.2019    9223    38    strek_ivan    4    

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

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

Доработанная консоль запросов для получения реального текста запроса.

1 стартмани

30.08.2019    12237    53    strek_ivan    29    

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

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

1 стартмани

17.08.2015    48437    166    ekaruk    32    

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

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

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

1 стартмани

03.07.2019    22145    5    m-rv    88    

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

Инструментарий разработчика v8 Абонемент ($m)

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

1 стартмани

30.06.2019    13331    0    vadim1980    5    

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

Практика программирования Работа с интерфейсом Разработка v8 v8::СКД ERP2 УТ11 КА2 Абонемент ($m)

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

1 стартмани

20.06.2019    5125    3    MuI_I_Ika    2    

Faster - многофункциональный ускоритель работы программиста 1С и других языков программирования Промо

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Программа Faster 9.4 позволяет ускорить процесс работы программиста (работает в любом текстовом редакторе). Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов. Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке. Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Настройка любых шорткатов под себя с помощью скриптов. Никаких установок и лицензий, все бесплатно.

1 стартмани

24.05.2012    79325    959    moolex    147    

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

Инструментарий разработчика v8 v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

20.06.2019    6206    22    servs    4    

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

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

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

1 стартмани

21.03.2019    6697    11    pavel_pss    0    

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

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

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

1 стартмани

22.02.2019    6674    3    kasper076    3    

Консоль запросов + ТЗ как параметры Промо

Консоль запросов v8 1cv8.cf Украина Абонемент ($m)

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

2 стартмани

12.11.2010    37325    437    Kashemir    24    

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

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

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

1 стартмани

12.01.2019    6762    0    lunjio    0    

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

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

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

5 стартмани

09.01.2019    47493    259    informa1555    234    

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

Инструментарий разработчика Работа с интерфейсом v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

1 стартмани

18.12.2018    9186    23    dsfix    21    

[x1c.ru] 1CDBin: Работа с файлами *.1CD на низком уровне средствами языка 1С с возможностью чтения таблиц (поддерживается формат 8.3.8.0) Промо

Тестирование и исправление Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка позволяет просматривать файловые базы 1CD на низком уровне средствами встроенного языка. Реализована часть функциональности Tool_1CD, но на языке 1С Предприятия. Показываются таблицы, параметры таблиц, поля таблиц, записи таблиц, значения полей BLOB, есть 16-ричный просмотр страниц базы и консоль кода. Можно использовать для изучения структуры файлов 1CD, просмотра баз 1CD для выявления повреждений, создания своих обработок для выгрузки данных без открытия исследуемой базы в 1С:Предприятии.

1 стартмани

07.10.2014    55220    347    GusevNA    76    

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

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

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

1 стартмани

12.11.2018    30631    6    evgen7938    4    

Рисуем диаграммы в metadata.js

Инструментарий разработчика Работа с интерфейсом v8 v8::СКД 1cv8.cf Абонемент ($m)

Не одной же литературой заниматься?

1 стартмани

20.09.2018    17863    4    1c-intelligence    77    

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

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

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

1 стартмани

13.09.2018    22892    13    RocKeR_13    16    

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

Инструментарий разработчика v8 КД Абонемент ($m)

При переносе данных между различающимися данными частенько приходится смотреть в правила. И часто, чтобы выяснить, к примеру, каким документом формируются остатки по конкретному ПВД, нужно заглядывать в него и искать, какое ПКО в нем вызывается. А может вызываться и алгоритм, в котором вызывается ПКО ;-) А если правил много? Чтобы не мучить себя утомительными поисками, предлагаю воспользоваться этой обработкой.

1 стартмани

14.10.2011    23445    160    Meta    17    

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

Практика программирования v8 v8::УФ v8::СКД Абонемент ($m)

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

1 стартмани

12.08.2018    6870    28    MaxCreator    0    

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

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

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

5 стартмани

09.08.2018    29586    26    informa1555    26    

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

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

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

1 стартмани

17.07.2018    51567    18    kalyaka    16    

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

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

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

1 стартмани

01.06.2018    31548    88    m-rv    57    

Полезные примеры составления схемы компоновки данных #2

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

Еще один набор примеров как решить частные задачи в СКД

1 стартмани

22.05.2018    32901    11    SITR-utyos    13    

Условное оформление дерева значений на управляемой форме

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

Пример использования условного оформления дерева значений для создания красивого фильтра на форме.

1 стартмани

28.04.2018    17602    27    Kutuzov    0    

Регистры правил [Расширение]

Инструментарий разработчика Информационная безопасность v8 v8::Права УТ11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    18822    28    33lab    1    

Пользовательские макеты для внешних печатных форм (обработок)

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

Расширение БСП по реализации механизма пользовательских макетов для обработок внешних печатных форм.

2 стартмани

05.03.2018    20261    16    simy4    14    

Заполняем по шаблону (по умолчанию)

Практика программирования v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

08.02.2018    29460    19    mvxyz    17    

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

Инструментарий разработчика v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Если вам необходимо реализовать обработку по вводу данных с сохранением в регистр сведений, табличную часть либо как нибудь еще обработать, причём: 1. Структура данных должна настраиваться, 2. Данные могут быть разными, и может меняться их состав, 3. Должна иметься возможность производить всеразличные отборы. 4. Данных относительно не много (соотношение КоличествоИзмененийФормы/Производительность склоняется на КоличествоИзмененийФормы). То, как вариант можно использовать всю мощь СКД. При этом будет реализована большая функциональность при малом количестве кода... Представленные обработки/шаблоны можно запускать в любой базе, где есть справочник Организации.

1 стартмани

07.02.2018    10500    40    _root    3    

Альтернатива ОтборуСтрок() с возможностями условий отборов СКД

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

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

1 стартмани

04.02.2018    7284    3    mszsuz    5    

Универсальный шаблон для отчета

Инструментарий разработчика v8::УФ v8::СКД 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

17.01.2018    13998    57    Chif13    9    

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП

Практика программирования Универсальные печатные формы v8 БП3.0 Абонемент ($m)

Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.

1 стартмани

06.12.2017    28015    54    kwazi    6    

Отбор компоновки данных в колонке таблицы формы

Инструментарий разработчика v8::УФ v8::СКД Абонемент ($m)

Использование отбора компоновки данных в шапке управляемой формы довольно распространено: создается реквизит с типом "Компоновщик настроек" и на форму выводится отбор в виде таблицы или поля. Но что делать, когда отбор компоновки требуется указывать в колонке таблицы (для каждой строки свой)? Компоновщик настроек недоступен в качестве типа колонки. В данной статье описывается опыт настройки отбора компоновки данных в колонке таблицы формы.

1 стартмани

30.11.2017    11238    18    balanton    1