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

08.02.21

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

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Расшифровка СКД
.erf 15,51Kb ver:1.1.0
13 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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. Отчет тянет статические данные, поэтому должен работать на большинстве конфигураций

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

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

16500 руб.

02.09.2020    258759    1430    421    

1165

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    6834    354    shapa_pro    27    

69

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    19783    ovetgana    112    

114

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

01.07.2025    11413    krasnoshchekovpavel    7    

68

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    10958    Neti    0    

41

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

27.02.2025    16791    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    14484    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    11421    AlexeyPROSTO_1C    1    

32
Для отправки сообщения требуется регистрация/авторизация