Расшифровка СКД. Фильтр отчета по диапазону чисел. Переопределение обработки расшифровки. Не модальный режим

Публикация № 1378896 08.02.21

Разработка - СКД

РасшифровкаСКД КомпоновщикНастроек ОбработкаРасшифровкиСКД ОбработкаРасшифровки Отборы Расшифровка СКД Компоновщик Настроек

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

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

1 Программное добавление дополнительного пункта меню расшифровки

Для добавления дополнительного пункта меню нужно создать форму отчета и переопределить процедуры обработчики табличного документа Результат:

РезультатОбработкаРасшифровки() - нажатие на ячейке отчета правой кнопкой мыши

РезультатОбработкаДополнительнойРасшифровки() - нажатие на ячейке левой кнопкой мыши

Если база создана на основании БСП можно не создавать форму отчета, выполнить доработки через общим модуль ОтчетыКлиентПереопределяемый (не реализовано у меня): 

ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки()

ОтчетыКлиентПереопределяемый.ОбработкаДополнительнойРасшифровки().

 

Код процедур:

&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)    
    //вызываем процедуру которая для числа переопределяем обработку расшифровку
    ОбработкаРасшифровкиНачало(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры);    
КонецПроцедуры

&НаКлиенте
Процедура РезультатОбработкаДополнительнойРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)    
    //вызываем процедуру которая для числа переопределяем обработку расшифровку
    ОбработкаРасшифровкиНачало(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры);    
КонецПроцедуры

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

&НаКлиенте
Процедура ОбработкаРасшифровкиНачало(Элемент, Расшифровка, СтандартнаяОбработка, ДополнительныеПараметры)
    
    //получаем структуру с данными объекта расшифровки
    ОбъектРасшифровки = ПолучитьОбъектРасшифровки(Расшифровка, ДанныеРасшифровки);
    
    Если ОбъектРасшифровки <> Неопределено Тогда
        
        //переопределяем действия обработки расшифровки компоновки данных для числа
        Если ОбъектРасшифровки.ЭтоЧисло ИЛИ ОбъектРасшифровки.ЭтоПустаяСтрока Тогда
            
            //отменяем стандартную обработку расшифровки
            СтандартнаяОбработка = Ложь;
            
            //создаем обработчик расшифровки и инициализируем данными расшифровки отчета и источником доступных настроек для отчета
            ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет));
            
            //задаем список доступных действий расшифровки
            ДоступныеДействия = Новый Массив();
            
            ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Отфильтровать);    
            ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить);    
            ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Сгруппировать);
            ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Расшифровать);
            ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.Оформить);
            
            //добавляем дополнительные действия расшифровки
            ДополнительныеПунктыМеню = Новый СписокЗначений;    
            ДополнительныеПунктыМеню.Добавить(ПолучитьИмяДопПунктМеню_ОтфильтроватьДиапазон());    
            
            //Выдаем меню расшифровки, считываем реакцию пользователя 
            ДополнительныеПараметры = Новый Структура("ОбъектРасшифровки, Расшифровка", ОбъектРасшифровки, Расшифровка);
            ОписаниеОповещения         = Новый ОписаниеОповещения("ОбработкаРасшифровкиЗавершение", ЭтаФорма, ДополнительныеПараметры);
            ОбработкаРасшифровки.ПоказатьВыборДействия(ОписаниеОповещения, Расшифровка, ДоступныеДействия, ДополнительныеПунктыМеню);
            
        КонецЕсли;
        
    КонецЕсли;
    
КонецПроцедуры


&НаСервереБезКонтекста
Функция ПолучитьОбъектРасшифровки(Расшифровка, ДанныеРасшифровки)
    
    ОбъектРасшифровки = Неопределено;
    
    ДанныеРашифровкиОбъект = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
    
    ЭлементРасшифровки             = ДанныеРашифровкиОбъект.Элементы.Получить(Расшифровка);
    ПоляЭлементаРасшифровки        = ЭлементРасшифровки.ПолучитьПоля();
    КоличествоПолейРасшифровки     = ПоляЭлементаРасшифровки.Количество();
    
    Если КоличествоПолейРасшифровки Тогда
        
        ОбъектРасшифровки = Новый Структура();
        
        Индекс = 0;
        Для Каждого ПолеЭлементаРасшифровки ИЗ ПоляЭлементаРасшифровки Цикл
            
            //Значение
            ИмяЗначения = "Значение" + ?(Индекс = 0, "", Индекс);                
            ОбъектРасшифровки.Вставить(ИмяЗначения, ПолеЭлементаРасшифровки.Значение);
            
            //Поле
            ИмяПоля = "Поле" + ?(Индекс = 0, "", Индекс);                
            ОбъектРасшифровки.Вставить(ИмяПоля, ПолеЭлементаРасшифровки.Поле);
            
            //проверка на число
            ИмяЗначения = "ЭтоЧисло" + ?(Индекс = 0, "", Индекс);
            ОбъектРасшифровки.Вставить(ИмяЗначения, ТипЗнч(ПолеЭлементаРасшифровки.Значение) = Тип("Число"));
            
            //проверка на число
            ИмяЗначения = "ЭтоПустаяСтрока" + ?(Индекс = 0, "", Индекс);
            ОбъектРасшифровки.Вставить(ИмяЗначения, ПустаяСтрока(ПолеЭлементаРасшифровки.Значение));
            
            Индекс = Индекс + 1;
        КонецЦикла;            
        
    КонецЕсли;    
    
    Возврат ОбъектРасшифровки;
    
КонецФункции // ПолучитьОбъектРасшифровки()


&НаКлиенте
Функция ПолучитьИмяДопПунктМеню_ОтфильтроватьДиапазон() Экспорт
    Возврат НСтр("ru = 'Отфильтровать диапазон от ... до ...'; uk = 'Відфільтрувати діапазон від ... до ...'");
КонецФункции

 

2 Программная обработка расшифровки

После того как пользователь выбрал действие расшифровки необходимо определить какой из пунктов меню он выбрал:

- созданный программно пункт меню выбора диапазона - нужно вызвать форму выбора двух чисел;

- пункт Отфильтровать - нужно открыть новый отчет с параметрами фильтра (так реализован стандартный механизм);

- для прочих пунктов меню необходимо вызвать ОтработатьРасшифровку (функционал с сайта ИТС).

&НаКлиенте
Функция ОбработкаРасшифровкиЗавершение(ВыполненноеДействие, ПараметрВыполненногоДействия, ДополнительныеПараметры) Экспорт

    ОбъектРасшифровки   = ДополнительныеПараметры.ОбъектРасшифровки;
    Расшифровка         = ДополнительныеПараметры.Расшифровка;
    
    ИмяПоля             = ОбъектРасшифровки.Поле;
    
    Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Нет ИЛИ ВыполненноеДействие = Неопределено Тогда
        //ничего не выполняем, пользователь отменил обработку расшифровки
        
    ИначеЕсли ТипЗнч(ВыполненноеДействие) = Тип("Строка") 
        И ВыполненноеДействие = ПолучитьИмяДопПунктМеню_ОтфильтроватьДиапазон() Тогда 
        
        //пользователь выбрал наш дополнительный пункт меню
        
        //создаем описание оповещения формы выбора двух чисел
        ДополнительныеПараметрыОповещения = Новый Структура("ИмяПоля", ИмяПоля);        
        ОписаниеОповещения     = Новый ОписаниеОповещения("ОтфильтроватьДиапазонНачалоВыбораЗавершение", ЭтотОбъект, ДополнительныеПараметрыОповещения);        
        ПараметрыФормы         = Новый Структура;
        
        //открываем форму выбора двух чисел
        ОткрытьФорму("ВнешнийОтчет.РасшифровкаДиапазона.Форма.ФормаВыбораДвухЧисел",
            ПараметрыФормы,
            ЭтаФорма,
            Новый УникальныйИдентификатор,,,
            ОписаниеОповещения,
            РежимОткрытияОкнаФормы.БлокироватьОкноВладельца); 
                        
    ИначеЕсли ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Отфильтровать Тогда
        
        //стандартное действие "Отфильтровать" открывается в новой форме отчета, поэтому переопределяем его
        ПараметрыФормы = Новый Структура;        
        ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
        ПараметрыФормы.Вставить("Расшифровка", Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Расшифровка, ПараметрВыполненногоДействия));        
        
        ОткрытьФорму("ВнешнийОтчет.РасшифровкаДиапазона.Форма.ФормаОтчета", ПараметрыФормы, , Истина);
          
    Иначе
        
        //для всех остальных используем процедуру взятую с сайта ИТС 
        ОтработатьРасшифровку(Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Расшифровка, ПараметрВыполненногоДействия), ИмяПоля);
        
    КонецЕсли;
    
КонецФункции // ОбработкаРасшифровкиЗавершение()


//переопределяем обработку расшифровки
&НаСервере 
Процедура ОтработатьРасшифровку(ОписаниеОбработкиРасшифровки, ИмяПоля)    
        
    ДанныеРасшифровкиОбъект = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);    
    ОбработкаРасшифровки    = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровкиОбъект, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет));    
    РезультирующиеНастройки = ОбработкаРасшифровки.ПрименитьНастройки(ОписаниеОбработкиРасшифровки.Идентификатор, ОписаниеОбработкиРасшифровки.ПрименяемыеНастройки);
        
    Если ТипЗнч(РезультирующиеНастройки) = Тип("НастройкиКомпоновкиДанных") Тогда
        
        Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(РезультирующиеНастройки);
        
    ИначеЕсли ТипЗнч(РезультирующиеНастройки) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда
        
        Отчет.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(РезультирующиеНастройки);
        
    КонецЕсли;     
    
    СкомпоноватьРезультат();    
    
КонецПроцедуры

3 Программное добавление отборов НастройкиКомпоновкиДанных. Добавление отборов пользовательских насроек. Перерисовка пользовательских настроек

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


&НаКлиенте
Процедура ОтфильтроватьДиапазонНачалоВыбораЗавершение(Результат, ДополнительныеПараметры) Экспорт
    
    //получаем имя поля из дополнительных параметров
    ИмяПоля =  ДополнительныеПараметры.ИмяПоля;
    
    Если Результат <> Неопределено Тогда
        
        //получаем копию настроек компоновки данных.
        НастройкиКомпоновкиДанных = ПолучитьТекущиеНастройки();    
        
        //удаляем предыдущие отборы по полю
        
        //если конфигурация на основании БСП, то можно использовать функцию общего модуля ОбщегоНазначенияКлиентСервер
        //ОбщегоНазначенияКлиентСервер.УдалитьЭлементыГруппыОтбора(НастройкиКомпоновкиДанных.Отбор, ИмяПоля);
        
        УдалитьЭлементыГруппыОтбора(НастройкиКомпоновкиДанных.Отбор, ИмяПоля);
                                                                          
        //добавляем новые отборы по полю
        
        //если конфигурация на основании БСП, то можно использовать функцию общего модуля ОбщегоНазначенияКлиентСервер
        //ДобавленныйЭлементЗначениеОт = ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(НастройкиКомпоновкиДанных.Отбор, ИмяПоля, ВидСравненияКомпоновкиДанных.БольшеИлиРавно, Результат.ЗначениеОт, , Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ, Новый УникальныйИдентификатор());
        //ДобавленныйЭлементЗначениеДо = ОбщегоНазначенияКлиентСервер.ДобавитьЭлементКомпоновки(НастройкиКомпоновкиДанных.Отбор, ИмяПоля, ВидСравненияКомпоновкиДанных.МеньшеИлиРавно, Результат.ЗначениеДо, , Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ, Новый УникальныйИдентификатор());
        
        ДобавленныйЭлементЗначениеОт = ДобавитьЭлементКомпоновки(НастройкиКомпоновкиДанных.Отбор, ИмяПоля, ВидСравненияКомпоновкиДанных.БольшеИлиРавно, Результат.ЗначениеОт, , Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ, Новый УникальныйИдентификатор());
        ДобавленныйЭлементЗначениеДо = ДобавитьЭлементКомпоновки(НастройкиКомпоновкиДанных.Отбор, ИмяПоля, ВидСравненияКомпоновкиДанных.МеньшеИлиРавно, Результат.ЗначениеДо, , Истина, РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ, Новый УникальныйИдентификатор());
        
        
        Если Ложь Тогда //Если нужно открыть отчет в новом окне, тогда проставляем "Истина"            
            ПараметрыФормы = Новый Структура;        
            ПараметрыФормы.Вставить("СформироватьПриОткрытии"    , Истина);
            ПараметрыФормы.Вставить("Вариант"                    , НастройкиКомпоновкиДанных);
            ПараметрыФормы.Вставить("ПользовательскиеНастройки"    , Отчет.КомпоновщикНастроек.ПользовательскиеНастройки);
            
            ОткрытьФорму("ВнешнийОтчет.РасшифровкаДиапазона.Форма.ФормаОтчета", ПараметрыФормы, , Истина);
        Иначе
                        
                        
            //для отображенния добавленных элементов в пользовательских настоек создадим временный компоновщик и загрузим из него настройки
            //так мы сможем заполнить пользовательские настройки
            КомпоновщикВременный = Новый КомпоновщикНастроекКомпоновкиДанных;            
            КомпоновщикВременный.ЗагрузитьНастройки(НастройкиКомпоновкиДанных);
            
            Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиКомпоновкиДанных);
            Отчет.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(КомпоновщикВременный.ПользовательскиеНастройки); 
            
            ПользовательскиеНастройки = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки;

            //для наших новых отборов устанавливаем видимость "Быстрый доступ" и отображаем их на форме
            
            //есть конфигурация создана на основании БСП, тогда можно использовать функцию общего модуля ОтчетыКлиентСервер            
            //ПользовательскаяНастройкаЗначениеОт = ОтчетыКлиентСервер.НайтиПользовательскуюНастройку(ПользовательскиеНастройки, ДобавленныйЭлементЗначениеОт.ИдентификаторПользовательскойНастройки);
            //ПользовательскаяНастройкаЗначениеДо = ОтчетыКлиентСервер.НайтиПользовательскуюНастройку(ПользовательскиеНастройки, ДобавленныйЭлементЗначениеДо.ИдентификаторПользовательскойНастройки);
            
            ПользовательскаяНастройкаЗначениеОт = НайтиПользовательскуюНастройку(ПользовательскиеНастройки, ДобавленныйЭлементЗначениеОт.ИдентификаторПользовательскойНастройки);
            ПользовательскаяНастройкаЗначениеДо = НайтиПользовательскуюНастройку(ПользовательскиеНастройки, ДобавленныйЭлементЗначениеДо.ИдентификаторПользовательскойНастройки);
            
            Если  ПользовательскаяНастройкаЗначениеОт <> Неопределено Тогда
                ПользовательскаяНастройкаЗначениеОт.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
            КонецЕсли;
            
            Если  ПользовательскаяНастройкаЗначениеДо <> Неопределено Тогда
                ПользовательскаяНастройкаЗначениеДо.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.БыстрыйДоступ;
            КонецЕсли;            
            
            СкомпоноватьРезультат();                                        
                        
            //вызываем создание елементов формы пользовательских настроек
            ОбновитьЭлементыПользовательскихНастроек();
            
        КонецЕсли;
        
    КонецЕсли;
    
КонецПроцедуры


// Функция возвращает копию настроек компоновки данных.
// 
// Возвращаемое значение:
//   - НастройкиКомпоновкиДанных - настройки компоновки данных
//
&НаСервере
Функция ПолучитьТекущиеНастройки()
    
     Возврат Отчет.КомпоновщикНастроек.ПолучитьНастройки();
     
КонецФункции


// Процедура пересоздает элементы формы для редактирования пользовательских настроек отчета
//
&НаСервере
Процедура ОбновитьЭлементыПользовательскихНастроек()
        
    СоздатьЭлементыФормыПользовательскихНастроек(,РежимОтображенияНастроекКомпоновкиДанных.БыстрыйДоступ);     
    
КонецПроцедуры

 

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

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

Для меня основными проблемами при создании этого механизма были:

- передача НастроекКомпоновкиДанных в новую форму отчета (решилась через использование параметра формы "Вариант")

- добавление отбора в пользовательские настройки (решилась через временный компоновщик данных)

- перерисовка элементов пользовательских настроек на сервере (ну не знал я что нужно использовать СоздатьЭлементыФормыПользовательскихНастроек и с трудом нашел на форумах, хотя возможно что я просто плохо искал))

 

В статье использовались материалы из:

https://its.1c.ru/db/metod8dev/content/3728/hdoc

//infostart.ru/1c/articles/542677/

//infostart.ru/public/165599/

 

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

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

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

Наименование Файл Версия Размер
Расшифровка СКД

.erf 15,51Kb
4
.erf 1.1.0 15,51Kb 4 Скачать

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

Оставьте свое сообщение

См. также

СКД: вывод времени в формате день, час, минута, секунда

СКД Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

Готовый пример вывода времени в формате хх д хх ч хх м хх средствами СКД.

1 стартмани

01.12.2022    1548    3    lagutiniv    2    

8

Еще один вариант отчета Статистика по документам

Статистика базы данных СКД Платформа 1С v8.3 Россия Абонемент ($m)

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

1 стартмани

14.10.2022    1821    3    scientes    0    

3

Добавление нумерации колонок СКД одной процедурой

СКД Платформа 1С v8.3 Управляемые формы Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

16.06.2022    2919    0    user700035_6550355    3    

4

Таблица умножения, деления на СКД, управляемые формы (пример тестового задания)

Подготовка к аттестации СКД Платформа 1С v8.3 Абонемент ($m)

Пример тестового задания и его реализации. Протестировано на версии платформы 8.3.18.1289.

1 стартмани

30.05.2022    3696    7    Johnson1987    13    

7

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Вывод изображений штрихкодов на СКД

СКД Система компоновки данных 8.3.14 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

27.04.2022    2678    10    SergeyPZU    6    

9

Отборы СКД на форме УФ

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

Создание отборов из СКД для таблиц значений.

1 стартмани

22.04.2022    4826    5    Chinga050    4    

16

Редактирование данных в ячейках СКД (простая реализация)

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

На примере справочника "Номенклатура" рассмотрим, как в отчёте можно редактировать его реквизиты, и изменения мгновенно будут записываться в элемент справочника.

1 стартмани

11.03.2022    7114    6    Flashill    20    

52

Срез последних N записей, пример на СКД

Запросы СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

09.03.2022    4144    3    user-z99999    9    

0

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

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

14.02.2022    5718    16    Eugen-S    3    

9

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Расчет нарастающего итога, дельты и другие варианты в СКД

СКД Платформа 1С v8.3 Управляемые формы Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

07.02.2022    3831    5    user-z99999    0    

-1

Отчет "Документы "Реализации" на каждый день" когда была реализация

СКД Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

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

1 стартмани

27.08.2021    3036    1    Shvapsss    2    

1

Программное формирование отчетов в БП 3.0 на примере оборотно-сальдовой ведомости по счету

Адаптация типовых решений СКД Платформа 1С v8.3 Бухгалтерский учет Система компоновки данных 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Абонемент ($m)

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

1 стартмани

14.07.2021    8140    36    arman1997    1    

6

Отчет по расписаниям (пример)

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Пример построения отчета по нескольким расписаниям.

1 стартмани

18.05.2021    7352    0    echo77    4    

23

Отчет с настройкой роли поля СКД со свойством период

СКД Платформа 1С v8.3 Система компоновки данных Платформа 1C v8.2 Конфигурации 1cv8 Управленческий учет Абонемент ($m)

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

2 стартмани

01.04.2021    5987    4    softmaker    0    

0

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Примеры использования функций СКД Массив (Array) и СоединитьСтроки (JoinStrings) в отчётах 1С 8

СКД Система компоновки данных Платформа 1C v8.2 Конфигурации 1cv8 Казахстан Бухгалтерский учет Абонемент ($m)

Здесь приведено два отчёта, в которых использованы функции СКД Массив (Array) и СоединитьСтроки (JoinStrings). Отчет по ГТД и отчет по продаже номенклатуры, оба тестировались на конфигурации Управление торговым предприятием (УТП) для Казахстана, редакции 2.0.19.2. Также добавлена электронная книга, в которой собраны знания по основам СКД, которые я получил, во время работы и изучения системы компоновки данных.

5 стартмани

15.03.2021    14068    40    softmaker    0    

1

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

СКД Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

05.07.2020    11831    8    Алексей Воробьев    16    

56

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

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

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

04.02.2020    8044    1    KawaNoNeko    2    

2

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

СКД Платформа 1С v8.3 Система компоновки данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Абонемент ($m)

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

1 стартмани

20.06.2019    9846    4    MuI_I_Ika    2    

8

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

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

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

1 стартмани

12.11.2018    49762    13    evgen7938    4    

6

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

СКД Платформа 1С v8.3 Управляемые формы Система компоновки данных Абонемент ($m)

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

1 стартмани

12.08.2018    11204    32    MaxStrelok    0    

16

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

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

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

22.05.2018    53253    14    SITR-utyos    13    

207

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

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

04.02.2018    11883    12    mszsuz    5    

8

СКД. Использование встроенного макета, разделителя страниц

СКД Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

31.03.2017    22943    27    Vin_Tik    0    

2

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

Внешние источники данных СКД Платформа 1С v8.3 Абонемент ($m)

У каждого разработчика возникают задачи интеграции решений. Основная масса решений призвана вывести данные из «1С:Предприятие 8» в обусловленном формате. Разработчики используют огромную часть своих драгоценных ресурсов на реализацию определенной структуры вывода и необходимого формата. А что если...

1 стартмани

14.02.2017    32659    47    pbazeliuk    33    

126

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

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

СКД Управляемые формы Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

14.12.2016    16340    2    igel9780    2    

6

Полезные процедуры по работе с СКД и табличными документами (часть 1)

СКД Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

03.09.2016    83513    117    json    25    

322

Расшифровки при программном формировании отчета на СКД

СКД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Что делать, если не работают расшифровки при программном формировании отчета на СКД? Ответ ниже.

1 стартмани

11.08.2016    39959    25    kotlovD    14    

29

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

СКД Управляемые формы Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

05.08.2016    50486    29    klinval    41    

165

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Сформировать дерево спецификаций быстро

СКД Платформа 1С v8.3 Система компоновки данных 1С:Управление производственным предприятием Абонемент ($m)

Обработка строит дерево состава изделия (структура изделия) с помощью СКД.

5 стартмани

30.07.2016    21525    47    SITR-utyos    8    

22

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

СКД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

25.06.2016    22385    10    json    15    

16

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

СКД Платформа 1С v8.3 Абонемент ($m)

Иногда возникает необходимость вывести на форму отчета, который написан на СКД, какие-либо данные: - пользователя, который сформировал отчет; - время, когда был запущен отчет на формирование и т.д.

2 стартмани

25.05.2016    14938    0    wowik    7    

17

СКД и внешние источники данных. Набор данных — объект

СКД Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

О том, как можно работать с СКД, используя набор данных "Объект" (аналог временных таблиц, только передаваемых не напрямую в запрос, а в СКД)

1 стартмани

19.10.2015    80367    36    qapex    13    

39

Регламентное выполнение внешних обработок с параметрами (при помощи СКД) без изменения конфигурации (на примере УТ 11)

СКД Оперативный учет Система компоновки данных 1С:Управление торговлей 11 Абонемент ($m)

Что, если нужно по расписанию делать что-то, зависящее от кучи параметров? Например, формировать индивидуальные прайсы и отправлять их (или сохранять на ftp), предварительно записав в excel. Технология будет полезна тем, кто уже имеет готовую сложную обработку, которую нужно заставить выполняться по расписанию.

1 стартмани

08.10.2015    25492    10    Ibrogim    19    

46