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

Публикация № 1458589 14.06.21

Разработка - Практика программирования

КомпоновщикНастроекКомпоновкиДанных СхемаКомпоновкиДанных НастройкиКомпоновкиДанных ПоляИтога ИдентификаторПользовательскойНастройки ФиксированныеНастройки

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

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

Дано: конфигурация с несколькими оборотными регистрами накопления:

  • ОбщаяСтатистика
  • СтатистикаОтветов

Мы создадим универсальный отчет, который будет выглядеть так:
 

 

У нашего отчета будут особенности:
 

Тезис Вывод
Отсутствует основная схема компоновки Схема будет создаваться динамически в коде
Есть строковый реквизит ИмяРегистра,
определяющий по какому регистру будет формироваться отчет
Реквизит вынесен на форму отчета в виде поля ввода
с установленным свойством "РежимВыбораИзСписка"
Список выбора заполняется при создании формы отчета Значения списка - имена оборотных регистров конфигурации
При изменении значения реквизита изменяется источник данных отчета То есть переформируется схема компоновки отчета

Посмотрим на объект ОтчетОбъект в Синтакс-помощнике:

 

Видим следующее:
  1. свойства объекта КомпоновщикНастроек и СхемаКомпоновкиДанных

    содержат используемую отчетом схему и применяемые к ней настройки

  2. метод СкомпоноватьРезультат()

    вызывает выполнение отчета

  3. событие ПриКомпоновкеРезультата

    вызывается до выполнения отчета

    соответственно здесь можно его донастроить перед выводом


Также есть особенности и у формы отчета:
 

Видим следующее:
  1. у формы есть ряд специфичных свойств

  2. присутствует метод СкомпоноватьРезультат

    то есть можем вызвать формирование отчета из модуля формы, не получая объект отчета

    результат отчета будет выведен в элемент формы, указанный в её свойстве "Результат отчета"

     
    Показать картинку (к сожалению мелко)
  3. есть метод СоздатьЭлементыФормыПользовательскихНастроек()

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

    при этом есть и интерактивное свойство формы: Группа пользовательских настроек

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

  5. есть параметры формы, специфичные для отчета

    Отбор

    1. если установлен, отчет будет открыт с предустановленным отбором
    2. это Структура
    3. ключ соответствует имени поля компоновки схемы

    СформироватьПриОткрытии

    1. Булево
    2. если Истина, отчет будет сформирован
    3. и мы попадём в событие модуля объекта ПриКомпоновкеРезультата

Сделаем следующее

 

  1. Создадим новый отчет "УниверсальныйОтчет"

  2. Создадим основную форму отчета

  3. Основную схему компоновки данных создавать не будем

  4. Приведём отчет и его форму в следующий вид:
     


     
  5. В ПриСозданииНаСервере заполним список выбора элемента формы данными оборотных регистров накопления конфигурации

    Значение - имя регистра, Представление - по желанию, например "Полное имя"

    Список регистров накопления получаем динамически
     

     
    Показать логику кода

     

  6. Результат:
     


Теперь при изменении поля ИмяРегистра нам нужно
  1. Программно сформировать СКД

  2. Инициализировать компоновщик настроек формы

  3. Сформировать настройки компоновщика
     


 

Шаг 2 - это стандартный код, необходимый для инициализации КомпоновщикаНастроек.

Посмотрим на объект КомпоновщикНастроекКомпоновкиДанных
 

Видим следующее:
  1. конструктор без параметров

  2. присутствует свойство Настройки с типом НастройкиКомпоновкиДанных

    есть свойства Пользовательские и Фиксированные настройки

     
    подробнее

    есть соответствующие методы загрузки настроек: Загрузить...Настройки()

    Существует три вида настроек СКД: Основные, Пользовательские и Фиксированные
  3. есть метод инициализации Инициализировать с параметром ИсточникДоступныхНастроекКомпоновкиДанных

     
    Показать картинку
  4. есть метод ПолучитьНастройки, который "склеивает" все три возможные настройки

    1. за основу берутся настройки компоновки (свойство Настройки)
    2. к ним применяются пользовательские (свойство ПользовательскиеНастройки)
    3. накладываются отбор, условное оформление и параметры из свойства ФиксированныеНастройки
     
    Показать картинку


Таким образом логика кода инициализации следующая:
 


 

 
Как думаете, зачем нужна инициализация компоновщика?


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

Схема содержит структуру (каркас) данных, настройки - то как эти данные будут скомпонованы при выводе.

Соответственно настройка оперирует "кирпичиками", определёнными в схеме - объектами ПолеКомпоновкиДанных.

При инициализации эти кирпичи становятся доступными для настройки.

Объект ПолеКомпоновкиДанных по сути является обёрткой строки.


Доступные для настройки поля ссылаются на поля компоновки.
 

  1. Настройки компоновки содержат ряд свойств ДоступныеПоля<...>

  2. Это коллекция элементов ДоступноеПолеКомпоновкиДанных, которое является обёрткой поля:

  3. По факту всё сводится к оперированию атомарными объектами схемы - ПолеКомпоновкиДанных


Посмотрим на объект СхемаКомпоновкиДанных.
 

Видим следующее:
  1. конструктор опять без параметров

  2. есть источники данных, настройки, макеты и НаборыДанных

    Обратите внимание на свойство Набора с говорящим названием - Запрос


Основой СКД являются "Наборы данных", по полям набора данных формируются возможные поля:

объекты ПолеКомпоновкиДанных и их обёртки: ДоступныеПоляВыбора, ДоступныеПоляОтбора и т.д.


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

    По параметру ИмяРегистра будем понимать для какого регистра формируем текст запроса
     


     
  2. Конструкция {&ДатаНачала},{&ДатаОкончания} означает, что вместо стандартных параметров
    виртуальной таблицы ПериодНачала и ПериодОкончания мы будем использовать свои: ДатаНачала и ДатаОкончания

    это такой способ "переименования" стандартных параметров

  3. функция будет возвращать созданную схему: Возврат СхемаКомпоновки

Соедините этот код и код инициализации.
 
 
Получится следующее:
 
То есть имеем ошибку: Не установлена схема компоновки данных
Вспомним, что отчет формируется по схеме, установленной в его свойстве СхемаКомпоновкиДанных
А ещё, что где-то есть место, где мы можем "донастроить" вывод отчета...
 
 
Показать подсказку
 
Почему возникает и как её исправить?

Решили проблему, но теперь у нас вот так:
 


 

Настало время посмотреть на объект НастройкиКомпоновкиДанных
 

Видим следующее:
  1. есть аналогия с объектами языка, модифицирующими текст запроса

    с объектом ПостроительЗапроса, например

    1. ДоступныеПоля разбиты на несколько
      коллекций ДоступныеПоля<>

    2. ВыбранныеПоля -> Выбор

    3. Отбор -> Отбор

    4. Параметры -> ПараметрыДанных

    5. Измерения -> Структура

     

  2. Чтобы что-нибудь вывелось нам надо:

    1. Получить настройки

    2. Заполнить коллекцию Выбор

    3. Добавить группировку в коллекцию Структура

    4. Определить поля добавленной группировки

    5. Загрузить изменённые настройки в КомпоновщикНастроек


Собственно, реализуем:
 


 

Часто возникает вопрос: как добавить в коллекцию нужный тип?
 

 

Решается использованием конструкций вида:

  1. Тип("ВыбранноеПолеКомпоновкиДанных")

  2. Тип("ГруппировкаКомпоновкиДанных")

  3. Тип("АвтоВыбранноеПолеКомпоновкиДанных")

 
В итоге получим такой вывод:
 


 

 
Чего не хватает по ощущениям?

Реализуем следующее:
  1. Итоги по ресурсам выбранного регистра

    здесь всё довольно просто - надо заполнить коллекцию ПоляИтога соответствующего свойства Схемы:

     
    Показать код
  2. Выведем на форму отбор по периоду

    здесь уже посложнее; помним, что мы переименовали параметры периода:
     


     

    при формировании настроек компоновщика пишем:
     


     

    заполненное свойство ИдентификаторПользовательскойНастройки включает элемент в ПользовательскиеНастройки

     
    Показать картинку


    А если элемент включен в пользовательскую настройку - то он отображается на форме отчета. Всё просто)
     


     
  3. Добавим отбор по полю Тест

    здесь похожая ситуация, сами сможете сделать?

     
    Показать код

А теперь вместо "Дата начала" и "Дата окончания" выведем один параметр Период с типом СтандартныйПериод

Для этого:
  1. Добавим параметр Период в схему компоновки

    Установим Выражение для параметров ДатаНачала и ДатаОкончания

    Ограничим видимость параметров ДатаНачала и ДатаНачала (если этого не сделать, то будет как на картинке ниже в спойлере)

     
    Показать картинку
  2. Включим наш параметр в пользовательские настройки

  3. Результат:

Надеюсь, статья будет вам полезна. Спасибо дочитавшим до конца)
Желающих изучить 1С приглашаю на свой курс-репетитор по программированию в 1С 8.3: infostart.ru/courses/1380252/

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Jimbo 9 16.06.21 14:50 Сейчас в теме
Как-то корявенько. Много скринов из хелпа. Много кода, хотя даже не показана структура самих 2 регистров.
О чём статья ? О программной работе с СКД ? Так есть потолковее аналоги, где суть кратко и ёмко изложены без воды, кучи кода и скринов хелпа.
2. maraton1185 145 17.06.21 08:15 Сейчас в теме
Суть в том, что структура регистров не важна, как и их количество в конфигурации)
Мы же наполняем список выбора из метаданных, а запрос по регистру формируем через ВЫБРАТЬ *

По поводу скринов хелпа - вообще в Синтакс-помощнике есть вся необходимая информация, нужно просто научиться его внимательно читать и понимать.
Например мне кажется интересной аналогия структуры объектов ПостроительЗапросов и НастройкиКомпоновкиДанных.
Также часто возникают неясности с тек как работать с объектом ПолеКомпоновкиДанных и зачем он нужен в принципе.
А исходя из той же справки - это просто обёртка строки-имени поля в запросе.
Можно провести следующую связку:
Текст запроса - > ПолеКомпоновкиДанных - > ДоступноеПолеКомпоновкиДанных - > ДоступныеПоляВыбора -> Выбор.Элементы
На мой взгляд это не вода, а информация для кругозора.

При написании кода быстрее всего посмотреть как раз в Синтакс-помощник)
Что касается кучи кода - ну как же без него? Мы же про программную работу говорим.
neyasytyf; fomaOp; the1; +3 Ответить
3. silverr 4 29.07.21 19:55 Сейчас в теме
Всем доброго времени суток!
А можно мне задать вопрос по отборам в отчетах на СКД.
Пытаюсь из расширения запустить отчет конфигурации БП 3.0 "Движения товаров". Передаю туда отбор по номенклатуре:
Номенклатура = ТекущиеДанные.Ссылка;
        Отбор = Новый Структура("Номенклатура", Номенклатура);
        Отбор.Вставить("НачалоПериода", НачалоМесяца(ТекущаяДата()));
        Отбор.Вставить("КонецПериода", ТекущаяДата());
        ПараметрыФормы = Новый Структура("СформироватьПриОткрытии, Отбор", Истина, Отбор);
        ФормаОтчета = ПолучитьФорму("Отчет.ДвижениеТоваров.ФормаОбъекта", ПараметрыФормы);
        НовыеПользовательскиеНастройки = Новый ПользовательскиеНастройкиКомпоновкиДанных;
        ФормаОтчета.Отчет.КомпоновщикНастроек.ЗагрузитьПользовательскиеНастройки(НовыеПользовательскиеНастройки);
        ОткрытьФорму(ФормаОтчета);
Показать

Выдает ошибку:
Невозможно применить фиксированные настройки. Совпадают значения параметра.
{Отчет.ДвижениеТоваров.Форма.ФормаОтчета.Форма(667)}:    ПараметрыОтчета.НастройкиКомпоновкиДанных         = Отчет.КомпоновщикНастроек.ПолучитьНастройки();
{Отчет.ДвижениеТоваров.Форма.ФормаОтчета.Форма(925)}:    ПараметрыОтчета = ПодготовитьПараметрыОтчетаНаСервере();
{Отчет.ДвижениеТоваров.Форма.ФормаОтчета.Форма(733)}:    БухгалтерскиеОтчеты.ЗаписатьОперациюБизнесСтатистики(ЭтотОбъект, "СформироватьОтчет", НастройкиОтчетаДляСтатистики());
{Отчет.ДвижениеТоваров.Форма.ФормаОтчета.Форма(875)}:    РезультатВыполнения = СформироватьОтчетНаСервере();
{Отчет.ДвижениеТоваров.Форма.ФормаОтчета.Форма(511)}:    ЗапуститьФормированиеОтчета();
по причине:
Невозможно применить фиксированные настройки. Совпадают значения параметра
Показать


Если передавать параметры в виде фиксированных настроек, типа:
ПараметрыФормы = Новый Структура();
        ПараметрыФормы.Вставить("Отбор", Новый Структура("Номенклатура",ТекущиеДанные.Ссылка));
        ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
        ОткрытьФорму("Отчет.ДвижениеТоваров.Форма", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор);

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

См. также

Использование классов .Net в 1С для новичков Промо

Практика программирования Разработка внешних компонент Универсальные функции v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    82751    Serginio    113    

Полезные примеры СКД, ч.2

Практика программирования v8 v8::СКД Бесплатно (free)

Еще несколько примеров решения задач в СКД.

06.04.2021    7663    Neti    8    

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

Практика программирования v8 v8::УФ Платформа 1C v8.2 1cv8.cf Бесплатно (free)

Разберем несколько нюансов записи управляемой формы.

02.04.2021    8703    SeiOkami    52    

Обзор полезных методов БСП 3.1.4

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Бесплатно (free)

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

25.03.2021    27916    rayastar    49    

Звуковое управление в 1С 8.3 Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

В данной статье описано создание библиотеки для звукового управления (выполнение команд голосом) для платформы 1С 8.3. Задача была поставлена так, чтобы модуль функционировал непосредственно на клиенте 1С, осуществляя управление формами, и взаимодействовал с интерфейсом.

16.03.2021    5326    velemir    31    

Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)

Практика программирования v8 ERP2 БУ Бесплатно (free)

Покажу точки входа для доработки "типового" проведения документов в ERP для регистров оперативного учета. Рассмотрим три основные ситуации: нужно изменить имеющееся проведение документа; нужно сделать записи в существующие регистры; нужно с нуля описать алгоритм проведения в добавленный регистр. Пример реализован на 1С:ERP Управление предприятием 2 (2.5.4.120)

10.01.2021    8701    BuriyLesha    9    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions

Универсальные функции Практика программирования v8 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    7065    comol    31    

Базовые вещи БСП, которые облегчат жизнь программисту 1С

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия Бесплатно (free)

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

30.08.2020    16747    quazare    34    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    39773    unichkin    74    

Форма выбора (подбор) в управляемых формах

Практика программирования v8 v8::УФ 1cv8.cf Россия Бесплатно (free)

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    58765    user5300    18    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

27.01.2020    54431    ids79    26    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

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

15.10.2018    34414    tormozit    106    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

15.01.2020    38099    John_d    22    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

Практика программирования v8 Россия Бесплатно (free)

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    30157    kuzyara    38    

30 задач. Странных и не очень

Практика программирования v8 Бесплатно (free)

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    21698    YPermitin    62    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

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

20.09.2012    81328    tormozit    131    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

Практика программирования v8 Бесплатно (free)

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    11273    Sibars    19    

Полезные процедуры и функции для программиста

Практика программирования Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

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

07.10.2019    36956    HostHost    41    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    48167    Yashazz    55    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    52494    tormozit    51    

О программе Postman для тестирования API и для чего она нужна 1С-нику

Практика программирования Программное обеспечение (software) v8 Бесплатно (free)

Для чего нужна программа Postman для тестирования API и какая от него польза для 1С-программиста.

24.09.2019    17916    budidich    29    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

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

06.09.2019    86671    rpgshnik    71    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    69313    ids79    55    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    49103    tormozit    74    

Регистры бухгалтерии. Общая информация

Практика программирования Математика и алгоритмы v8 v8::БУ БУ Бесплатно (free)

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    40933    YPermitin    25    

Три костыля. Сказ про фокусы в коде

Практика программирования v8 Бесплатно (free)

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    28907    YPermitin    81    

Отслеживание выполнения фонового задания

Практика программирования Универсальные функции Разработка v8 1cv8.cf Бесплатно (free)

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

17.08.2019    41708    ids79    19    

Выгрузка документа по условию Промо

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    17072    m-rv    3    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    132938    ids79    75    

Фоновое выполнение кода в 1С - это просто

Практика программирования v8 1cv8.cf Бесплатно (free)

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

02.08.2019    53929    avalakh    26    

Разбираемся с параметрами редактирования СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    36508    json    15    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    22131    m-rv    17    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    93839    ids79    15    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

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

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    44622    ids79    27    

Регистры сведений. За кулисами

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    31658    YPermitin    14    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    34909    m-rv    22    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    21487    SeiOkami    52    

Работа с настройками системы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Варианты отчетов, работа с настройками вариантов: структура группировок, поля отчета, отборы, сортировка, условное оформление, другие настройки, настройки отображения диаграмм.

02.07.2019    74201    ids79    17    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    69761    ids79    27    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

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

05.12.2017    29959    itriot11    34    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    29264    dmurk    148    

Регистры накопления. Виртуальные таблицы. Часть №2: "Остатки" и "Остатки и обороты"

Практика программирования v8 1cv8.cf Бесплатно (free)

Описание работы платформы 1С:Предприятие 8.2 с виртуальными таблицами регистров накопления "Остатки" и "Остатки и обороты". Анализ SQL-запрос при работе с виртуальными таблицами

22.05.2019    39021    YPermitin    8    

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

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

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

16.05.2019    57733    YPermitin    30    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    41850    ids79    45    

О расширениях замолвите слово...

Практика программирования Разработка v8 Бесплатно (free)

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    40857    ellavs    131    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Практика программирования v8 Бесплатно (free)

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    30564    ellavs    90    

Трюки с внешними источниками данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    38486    YPermitin    53    

Ошибки при работе с хранилищем конфигурации и способы их решения

Практика программирования v8 Бесплатно (free)

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

01.03.2019    59783    Смешной 1С    32