«Программное заполнение настроек СКД» или «Как сделать отчёт на СКД с понятным для пользователя интерфейсом». (1С: Предприятие 8.1, 8.2 обычное приложение)

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

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

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

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

  Пример  программного заполнения настроек построю на основе отчёта по оборотному регистру накопления Продажи с измерениями: Контрагент, Номенклатура и ресурсами: Количество и Сумма.

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

    Итак. Создаём новый отчёт. Открываем схему компоновки данных и добавляем новый набор данных запрос. В окне запроса пишем следующий запрос:

ВЫБРАТЬ

                        ПродажиОбороты.Регистратор,

                        ПродажиОбороты.Контрагент,

                        ПродажиОбороты.Номенклатура,

                        ПродажиОбороты.СуммаОборот,

                        ПродажиОбороты.КоличествоОборот

ИЗ

                        РегистрНакопления.Продажи.Обороты(, , Авто, ) КАК ПродажиОбороты

 

    На закладке «Ресурсы» указываем в качестве ресурсов поля КоличествоОборот и СуммаОборот.

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

На этом настройка схемы компоновки закончена. Переходим к настройке интерфейса.

 

Настройка пользовательского интерфейса.

    Вначале создадим реквизиты отчёта. Они понадобятся нам при создании интерфейса и дальнейшей программной обработке указанных пользователем настроек. Добавляем реквизит Период – тип СтандартныйПериод, Количество – тип Булево, Сумма – тип Булево. Данные реквизиты будут отвечать за переданный параметр Период и за вывод ресурсов отчёта КоличествоОборот и СуммаОборот соответственно. Также нам потребуется табличная часть Группировки с реквизитами Поле – тип Строка и ТипГруппировки – тип Строка. Табличная часть будет отвечать за выбранные группировки при формировании отчёта.

    Необходимые реквизиты созданы, теперь создаём форму отчёта.  

    На форме располагаем следующие элементы:

  • Поля ввода для указания периода: ДатаНачала – данные Период.ДатаНачала, Датаокончания - Период.ДатаОкончания, Период – данные Период и кнопку КнопкаВыбораПериода (для кнопки нужно назначить обработчик, открывающий диалог указания периода. Программный код можно посмотреть в прикреплённом внешнем отчёте) .
  • Панель с тремя страницами. Первую страницу назовём Отбор и расположим на ней табличное поле с данными КомпоновщикНастроек.Настройки.Отбор. Вторую страницу назовём УсловноеОформление и расположим на ней табличное поле с данными КомпоновщикНастроек.Настройки.УсловноеОформление. Третью страницу назовём Сортировка и расположим на ней табличное поле с данными КомпоновщикНастроек.Настройки.Порядок.
  • Табличное поле Группировки, связанное с табличной частью отчёта «Группировки», и добавляем командную панель с указанием в качестве источника действий табличного поля «Группировки». На командную панель добавляем кнопки «Добавить», «Удалить», «Переместить вверх», «Переместить вниз».  
  • 2 флажка ВыводитьКоличество и ВыводитьСумму, связанные с реквизитами отчёта Количество и Сумма соответственно.
  • Поле табличного документа Результат, автоматически созданное при создании формы, оставляем без изменения. 

    На этом создание пользовательского интерфейса завершено. Переходим к самому интересному – программной части.

Программная работа со схемой компоновки данных.

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

СписокДоступныхПолейГруппировки = Новый СписокЗначений;

СписокДоступныхПолейГруппировки.Добавить("Регистратор");

СписокДоступныхПолейГруппировки.Добавить("Контрагент");

СписокДоступныхПолейГруппировки.Добавить("Номенклатура");

 

СписокДоступныхТиповГруппировки = Новый СписокЗначений;

СписокДоступныхТиповГруппировки.Добавить("Иерархия");

СписокДоступныхТиповГруппировки.Добавить("Элементы");

    При открытии формы заполним группировки значениями по умолчанию

               Группировки.Очистить();

               НоваяГруппировка = Группировки.Добавить();

               НоваяГруппировка.Поле = "Регистратор";

               НоваяГруппировка.ТипГруппировки = "Элементы";

                       

               НоваяГруппировка = Группировки.Добавить();

               НоваяГруппировка.Поле = "Контрагент";

               НоваяГруппировка.ТипГруппировки = "Элементы";

                       

               НоваяГруппировка = Группировки.Добавить();

               НоваяГруппировка.Поле = "Номенклатура";

               НоваяГруппировка.ТипГруппировки = "Элементы";

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

ЭлементыФормы.Группировки.Колонки.Поле.ЭлементУправления.СписокВыбора = СписокДоступныхПолейГруппировки;

ЭлементыФормы.Группировки.Колонки.ТипГруппировки.ЭлементУправления.СписокВыбора = СписокДоступныхТиповГруппировки;

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

// Добавляет колонки (поля ресурсов) в соответствии с флажками на форме

               Если Количество И Не НайтиПолеКомпоновки("КоличествоОборот", НастройкиСКД.Выбор.Элементы) Тогда

                    ВыбранноеПоле = НастройкиСКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));

                    ВыбранноеПоле.Использование = Истина;

                    ВыбранноеПоле.Заголовок = "Количество";

                    ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("КоличествоОборот");

               КонецЕсли;   

               Если Сумма И Не НайтиПолеКомпоновки("СуммаОборот", НастройкиСКД.Выбор.Элементы) Тогда

                    ВыбранноеПоле = НастройкиСКД.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));

                    ВыбранноеПоле.Использование = Истина;

                    ВыбранноеПоле.Заголовок = "Сумма";

                    ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных("СуммаОборот");

               КонецЕсли;

//Удаляет колонки, соответствующие флажки которых не были отмечены

                Счетчик = 0;

                Пока Счетчик < НастройкиСКД.Выбор.Элементы.Количество() Цикл

                     ПолеКомпоновкиДанных = НастройкиСКД.Выбор.Элементы[Счетчик];

                     Если ПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("КоличествоОборот") И Не Количество Тогда

                         НастройкиСКД.Выбор.Элементы.Удалить(ПолеКомпоновкиДанных);

                         Продолжить;

                     ИначеЕсли ПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных("СуммаОборот") И Не Сумма Тогда

                         НастройкиСКД.Выбор.Элементы.Удалить(ПолеКомпоновкиДанных);

                         Продолжить;

                     КонецЕсли;                       

                     Счетчик = Счетчик + 1;

                КонецЦикла;

//заполняем поля группировок в соответствии с настройками в табличной части Группировки

НастройкиСКД.Структура.Очистить();

               ЭлементСтруктуры = НастройкиСКД;        

               Для Каждого Группировка Из Группировки Цикл

                   ЭлементСтруктуры = ЭлементСтруктуры.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));

                   ЭлементГруппировки = ЭлементСтруктуры.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));

                   ЭлементГруппировки.Использование = Истина;

                   ЭлементГруппировки.Поле =  Новый ПолеКомпоновкиДанных(Группировка.Поле);                                                  

                   Если СписокДоступныхТиповГруппировки.НайтиПоЗначению(Группировка.ТипГруппировки)=Неопределено Тогда

                       ЭлементГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных.Элементы;

                  Иначе

                       ЭлементГруппировки.ТипГруппировки = ТипГруппировкиКомпоновкиДанных[Группировка.ТипГруппировки];

                   КонецЕсли;                                                                                                                  

                   ПолеСортировки = ЭлементСтруктуры.Порядок.Элементы.Добавить(Тип("АвтоЭлементПорядкаКомпоновкиДанных"));

                   ПолеСортировки.Использование = Истина;

 

                   ВыбранноеПоле = ЭлементСтруктуры.Выбор.Элементы.Добавить(Тип("АвтоВыбранноеПолеКомпоновкиДанных"));

                   ВыбранноеПоле.Использование = Истина;

               КонецЦикла;

 

    Далее, устанавливаем значения параметров и загружаем заполненные настройки

               Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период",Период);

               КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

 

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

Функция НайтиПолеКомпоновки(Имя, Коллекция)

        Для Каждого ПолеКомпоновкиДанных Из Коллекция Цикл

            Если ПолеКомпоновкиДанных.Поле = Новый ПолеКомпоновкиДанных(Имя) Тогда

                  Возврат Истина;

            Иначе

                 Продолжить;

            КонецЕсли;

      КонецЦикла;                

 Возврат Ложь;

КонецФункции

 

    Готово. Настройки схемы компоновки данных заполнены, и отчёт может быть сформирован.

Расшифровка

    Для того чтобы при обработке расшифровки поля отбора и группировок заполнились в соответствии с выбранным полем нужно самостоятельно описать обработчик расшифровки. Для этого создадим булевский реквизит отчёта ЭтоРасшифровка. Реквизит будет показывать, формируем мы простой отчёт или расшифровываем. Для  табличного поля Результат  создаём обработчик РезультатОбработкаРасшифровки. В созданном обработчике пишем

СтандартнаяОбработка = ложь;

               Если ДанныеРасшифровки = Неопределено Тогда Возврат КонецЕсли;

ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));

               Настройки = ОбработкаРасшифровки.Выполнить(Расшифровка);

               Если Настройки<>Неопределено Тогда                                                                                          

                    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

                    ЭтоРасшифровка = Истина;

                    ЭлементыФормы.Результат.Очистить();

                    СкомпоноватьРезультат(ЭлементыФормы.Результат,ДанныеРасшифровки);

              КонецЕсли;

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

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

                        Если Не (Количество ИЛИ Сумма ) Тогда

                            СтандартнаяОбработка = Ложь;

                             Сообщить("Необходимо выбрать хотя бы один показатель!");

                             Возврат;

                        КонецЕсли;                    

                        Настройки = КомпоновщикНастроек.ПолучитьНастройки();

                       

                        Если НЕ ЭтоРасшифровка  Тогда

                             УстановитьСтруктуруГруппировокСКД(Настройки);

                        КонецЕсли;                     

                        Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период",Период);

                        КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

                        ЭтоРасшифровка = ложь;

КонецПроцедуры

 

Итог.

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

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

Созданный отчёт прикрепляю к данной статье для ознакомления.

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

Наименование Файл Версия Размер
Пример отчёта с программным заполнением настроек СКД
.erf 21,76Kb
01.10.12
650
.erf 21,76Kb 650 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. khaoos 239 02.10.12 05:17 Сейчас в теме
Для обычных форм мне вполне нравится шаблон СКД от 1С. Но он поставляется вместе с общим модулем ТиповыеОтчеты, который (могу соврать) есть в типовых конфигурациях на обычных формах. Имеет достаточно хороший API и много возможностей подлезть в разные этапы компоновки. Есть также свойство ПользовательскиеНастройки компоновщика настроек. Но им пользоваться удобнее в управляемых формах. В 8.3 такие настройки отображаются в виде полей ввода, в 8.2 в виде табличного поля. Для управляемых же форм есть решение и в БСП, которое стало стандартом в типовых управляемых конфигурациях. Но форма вроде там отличается только программной начинкой от генерируемой автоматически, внешний вид вроде такой же.
Но все же молодец, что разобралась. Еще не раз пригодятся знания :).
2. Новенький_2209 02.10.12 12:35 Сейчас в теме
Зачем изобретать какие-то свои "внешние виды", "удобные формы" и т.д. В типовых - шаблон типового отчета. И если пользователь работал в нем, то ваша поделка, даже если там будет +100500 интересных фич и изюма, ему будет не привычна, хотя бы потому, что он интерфейс у вас - не сможет настроить под себя. Вытащить отборы привычными элементами управления (как пример) и т.д., сделать сохранение всего этого.

Затем, например, вы создали убийцу шаблона типового. Допустим. Поставили его клиенту и ушли. Через нное количество времени, приходит ваш коллега - КАК минимум, ваш отчет нужно открыть в конфигураторе и выгрузить схему компоновки и настройки компоновки, чтобы потом подсунуть это в консоль. Чутка подшаманив схему и настройки, нужно загрузить их обратно и посмотреть - что у вас выполняется на выходе, т.к. вы кодом добавляете/удаляете некоторые весчи. Т.е. по сравнение с типовым механизмом, вы привносите лишние, никому не нужные телодвижения - они не нужны ни вашему коллеге, ни клиенту.

Шаблон типового интегрируется в ЛЮБУЮ конфигурацию за 30 минут под чашечку кофе. Я считаю, это оправданная трата времени, т.к. потом ваша работа по написанию отчетов ускорить в разы. Более того, типовой отчет - это некий признак "хорошего" тона. Вы думаете не только о себе - но и о пользователях, привыкших к типовым отчетам, и ваших коллегах, которые возможно будут модифицировать ваши отчеты.

Все же за труд ставлю жирный плюс. И надеюсь, в реальных ситуациях вы будете стремиться к унификации своих решений.
M.Shalimov; Lena272; freeek; zoytsa; Lyns_owner; imbaZeratul; wowik; echo77; Feelthis; ABudnikov; slavap; krylovim; Tangram; maXon777; serpent; +15 Ответить
3. she's 403 02.10.12 13:34 Сейчас в теме
(2) Новенький_2209,
За плюс спасибо:) К сожалению, до, собственно, публикации не знала о существовании типового отчёта. Обязательно изучу его функционал. Но я всё же думаю, что тема, рассмотренная в моей статье, поможет программистам 1С, только начинающим знакомиться с СКД, разобраться в вопросе "А как же всё-таки оно работает".
marinelle; +1 Ответить
4. Новенький_2209 02.10.12 15:09 Сейчас в теме
(3) she's, я и не сомневался что вы не знаете стандартный шаблон, т.к. кто знает - просто физически не сможет заставить себя родить столько много кода по программной модификации схемы :) Изучайте, но только по живой конфигурации. К сожалению, сам шаблон обновляется значительно реже, нежели его клоны в типовых. Возьмите последнюю редакцию УПП или КА и оттуда заберите все что нужно для шаблона.

Если же конфа управляемая, то (имхо сугубо) самый удачный вариант в БП 3.0. От типового шаблона он внешне не сильно отличается.
marinelle; +1 Ответить
6. Zerkon 95 02.10.12 16:40 Сейчас в теме
(4)Если не затруднит, можно более подробно, как найти этот самый шаблон типового отчета? Или имеете ввиду взять за основу любой типовой отчет и из него сделать болванку?
7. glek 112 02.10.12 16:52 Сейчас в теме
(6) На диске ИТС есть папочка treport. там установка (почему то по 80 или81) и сам шаблон отчета
20. alexware 04.10.12 21:38 Сейчас в теме
(7) glek, Спасибо, тоже вот не знал об этом шаблоне.
23. ksai 11.10.12 10:50 Сейчас в теме
(4) Новенький_2209,
Возьмите последнюю редакцию УПП или КА и оттуда заберите все что нужно для шаблона.


Можно поподробнее, что конкретно нужно вытащить из последней УПП, чтобы получить шаблон типового отчета?
38. AlexO 128 18.01.13 14:22 Сейчас в теме
(3) she's,
"А как же всё-таки оно работает".

как раз, если не пользоваться ПРОГРАММНЫМ созданием СКД (а им приходится пользоваться лишь в исключительных случаях) - там все НЕ ТАК работает :)
В этом и есть "специфика" 1С - что все работает по своим законам при почти полном отсутствии документации.
5. samamoiloff 858 02.10.12 16:25 Сейчас в теме
(0)(she's) Evgeniya,
не слышно воплей что-то, типа "доколе... на главной... такое...", удивило, может потому, что девушка... Обычно здесь такое не прощают. По разным причинам, большинство из которых внутренние противоречия самих критикующих.
Крепитесь, если что, удачи Вам в поисках, так держать!
8. maXon777 100 02.10.12 18:17 Сейчас в теме
А я советую автору дополнить материал вышеуказанной в комментариях инфой и скриншотом настроек из 8.3 (пусть пока не актуально, но все посмотрят) и получится блестящий мануал. С меня однозначно плюс!
9. samamoiloff 858 02.10.12 23:01 Сейчас в теме
Хороший типовой шаблончик брал в свое время из ЗУП и использовал на снятой с поддержки БП, просто так не работал, пришлось в общем модуле дописывать пару строк, чтоб как в ЗУП было. Так что не все типовые однозначно типовые (типовые 1С-ники тоже в разных комнатах сидят у них там, видимо...) :)
10. OrsoBear 03.10.12 00:34 Сейчас в теме
Спасибо за статью, попробовал примерно то же самое сделать в управляемой форме. Только вместо предложенного варианта перетягивал в отбор и остальные закладки таблички компоновки данных. Получилось более навороченно и универсально. Настроек стало на порядок больше, и код дописывать не пришлось.

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

Выглядят такие настройки более красиво, но для каждого пользователя настраивать персонально не разумно.
11. she's 403 03.10.12 08:48 Сейчас в теме
(10) OrsoBear,
Я не много работала с управляемыми формами, но, возможно, вам поможет флаг "Пользовательская видимость" в свойстве элемента. По умолчанию элемент будет невидимым, но его можно будет включить в меню "Изменить форму".
12. OrsoBear 03.10.12 09:33 Сейчас в теме
(11) she's, В этом вся и сложность. Эта форма видна только в отчете, в конфигураторе ее не видно.
13. she's 403 03.10.12 10:18 Сейчас в теме
(12) OrsoBear, вы имеете в виду форма отчёта создаётся автоматически? А в конфигураторе создать не хотите?
16. OrsoBear 03.10.12 16:00 Сейчас в теме
(13) she's, В конфигураторе создается совсем другая форма. Не такая, как автоматическая.
Но я решил вопрос именно таким способом. Нарисовал приближенно похожую форму, и внес в нее поля.
Только это глупый труд. Куда интереснее было бы именно включать и отключать программно блоки настроек.
15. she's 403 03.10.12 15:29 Сейчас в теме
17. Vlad_2008 13 03.10.12 21:49 Сейчас в теме
+ За попытку внимательного отношения к пользователю (наличие настроек на форме),
но за реализацию -.

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

Надеюсь, что в кнопке "Действия" стандартные кнопки сохранены, если так, то еще не все потеряно!

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

Использование кода в таком примере не оправданно, не показательно (в части работы с компоновкой),
да и вообще не нужно. Сам стараюсь редко использовать код, пусть СКД работает сама. Обычно использую
код когда СКД "не правильно" оптимизирует использование параметров виртуальных таблиц в запросах
к регистрам, особенно где используются ОБЪЕДИНЕНИЕ ИЛИ СОЕДИНЕНИЕ.

Вот фото формы отчета (правда старенький отчет и для 8.1, но люди до сих пор пользуются) БЕЗ КОДА ВООБЩЕ



Основные настройки вынесены на форму, НО стандартные настройки НИ В КОЕМ СЛУЧАЕ НЕ ОТКЛЮЧЕНЫ, и по
кнопке "Настройки" пользователь всегда может воспользоваться ВСЕЙ универсальностью СКД.

За пример работы с расшифровкой, дико извеняюсь, очень конечно извеняюсь, но "ПО УБИВАВ". Это за
вывод расшифровки в этой же форме, а не в отдельном окне. А если требуется расшифровать несколько
позиций отчета и сравнить их? А как же производительность системы? - Строим ресурсоемкий отчет какое-то
приличное время, а потом просто убиваем его расшифровкой?!, и пользователь опять тычет "Сформировать", чтобы
вернуть исходное состояние, а сервер крутится, пользователи курят! Не хорошо это.

Ни кого не хотел обидеть, просто высказал свое мнение. Простите если что не так.
Удачи!
18. she's 403 03.10.12 22:16 Сейчас в теме
(17) Vlad_2008, ваши замечания оправданы и все перечисленные недочёты действительно есть. Думаю, никто и не будет вставлять этот отчёт в свою конфигурацию копипастом. У меня и не было цели нарисовать идеальный интерфейс с функциональностью полноценного отчёта с учётом всех нагрузок на сервер. Я хотела показать простейший пример с объяснением что, зачем и почему. Чтобы программист, столкнувшись с подобной задачей впервые имел под рукой простой и понятный пример. А нюансы оптимизации, культура создания интерфейса и прочие прелести подробно описаны в литературе и других статьях на этом и других сайтах.
19. Vlad_2008 13 03.10.12 22:47 Сейчас в теме
Поддерживаю. И литературу, конечно, читать надо.

Ну и очень хорошо, что мы все движемся в правильном направлении.
21. texnic79 45 11.10.12 07:33 Сейчас в теме
Поддерживаю коллег, по поводу использование шаблона типового отчет, который унифицирует интерфейс работы с отчетом, но программная работа с СКД дело важное, нужное и полезное. Поэтому однозначно +.
22. higs 11.10.12 10:17 Сейчас в теме
Поставлю плюс, полезная тема. Хотя лично для меня ничего нового не принесло, но помню себя, когда только начинал разбираться с СКД.
24. anchovy 16 11.10.12 15:33 Сейчас в теме
На примере БГУ, в УПП скорее всего то же самое.
Необходимо добавить в конфигурацию следующие объекты:

отчет
- ШаблонТиповогоОтчета
общий модуль
- ТиповыеОтчеты
- ТиповыеОтчетыПереопределяемый
- СохранениеНастроек
справочник
- СохраненныеНастройки
перечисления
- ТипыНастроек
- ПредставленияЭлементовОтчетов
общие формы
- ФормаНастройкиСтруктурыОтчета
общие макеты
- ЗаголовокТиповогоОтчета
svetanik; fieryfist; Figar; ksai; +4 Ответить
25. ksai 11.10.12 17:14 Сейчас в теме
(24) anchovy,
Спасибо! Хотя гос. учреждение и производственное предприятие весьма далеки друг от друга, думается мне, перечисленные тобой объекты должны быть универсальными.
26. klel 11.10.12 20:23 Сейчас в теме
Большое спасибо за интересную статью =) Плюсик "+"
27. Moll 14.10.12 18:41 Сейчас в теме
Благодарим автора за проделанную работу, но скорее соглашусь с теми комментариями которые говорят о том, что пользователю всё таки необходимо предоставлять возможность модифицирования отчёта, ведь есть же среди них люди соображающие)

удачи на конкурсе ;)
28. Yashazz 2986 15.10.12 18:27 Сейчас в теме
Ничего особенного. Из Хрусталёвой можно почерпнуть столько же, а то и больше. Недоумеваю, отчего такие восторги вокруг этой публикации.
29. dyak84 19.10.12 11:50 Сейчас в теме
Спасибо очень познавательно и интересно.Появятся деньги обязательно скачаю
30. ~gekK@~ 26.10.12 14:30 Сейчас в теме
да уж лучше не выпиливать возможности, а провести обучение персонала дабы использовать все инструменты предоставляемые платформой
31. GovoruN3562 07.11.12 14:50 Сейчас в теме
Мне очень пригодилось. Спасибо. Правда, добившись результата, нашёл типовой шаблон и сделал на его основе. Пускай пользователи привыкают.
32. AlexO 128 11.12.12 12:14 Сейчас в теме
а мне плюсики понравились.
Никто из плюсовавших (кроме тех, кто плюсовал "за девушку" и "типовой все ж лучше") так и не понял - че тут, зачем...
Интересно, а сколько бы плюсиков Хрусталевой наставили бы, на основе которой статья? Ни одного - "не осилил, автор, пейши исчо"? :)
33. she's 403 11.12.12 14:09 Сейчас в теме
(32) AlexO, Ваш комментарий, наверное, нужно трактовать так : " А что вы тут статьи пишите? В книжках давно всё написано". Даже не знаю что бы вы сказали несчастным учёным, которые строят свои теории на основании научных трудов, например, Эйнштейна. Кстати, а вы сами-то Хрусталёву читали? Предположу, что нет, так как если бы читали, то заметили бы, что конкретно такого примера там нет.
Чувствую тема автора Elva_ вам наскучила и вы решили найти новое место для выяснения отношений и отстаивания своей, неоспоримо правильной, позиции в жизни.
34. nikolaygorbunov 1 11.12.12 14:21 Сейчас в теме
Хрусталеву почитай если обычное приложение, если управляемое, там итак все настройки можно на форму вынести, Радченко в помощь, есть у него немного в его книжице.
35. dyak84 07.01.13 15:27 Сейчас в теме
Спасибо за публикацию узнал много интересного и полезного. Статья краткая и содержительная все по существу, самое главное все получилось.автору огромное спасибо
36. Vond 11.01.13 23:17 Сейчас в теме
Лаконичнее чем книги Хрусталевой и Радченко ) Попробуем, спасибо
37. AlexO 128 18.01.13 14:20 Сейчас в теме
(36) Vond,
Лаконичнее чем книги Хрусталевой

вообще-то это как раз перепечатка главы книги Хрусталевой.
"Программное создание отчета на СКД" называется.
39. AlexSunS 21.01.13 09:14 Сейчас в теме
Объективность... автору спасибо просто хотя бы за то, что не ресурсить в гугл и не на бесконечное кол-во форумов отсылает...а просто дает свою реализацию задачи.. с которой сталкиваемся все мы...особенно на начальном этапе...
Lena272; freeek; Maximysis; svetanik; zoytsa; silberRus; marinelle; pvl_mksv; +8 Ответить
40. pvl_mksv 20 28.02.13 10:32 Сейчас в теме
(39) AlexSunS,
Присоединяюсь, практическая база набрана - пора учить теорию !
Автору - респект!
41. jurgal1C 21.05.13 01:24 Сейчас в теме
То, что доктор прописал :) Спасибо
42. EarlyBird 6 21.05.13 09:55 Сейчас в теме
43. ogion 24.09.13 15:26 Сейчас в теме
И как бы "сделать сохранение выбранных пользователем настроек"?
48. zoytsa 22.03.14 15:35 Сейчас в теме
(43) ogion,
В подменю Действия можно кнопки соответствующие вывести. :-)
44. &rew 9 03.12.13 13:20 Сейчас в теме
Все это, конечно, хорошо, но тогда смысл использования СКД несколько нивелируется. Хотя если разработать некий шаблон, куда потом "запихивать" свою схему компоновки, тогда да. В любом случае это "...в 7 раз сытнее, чем ничё..."
45. marinelle 05.01.14 11:13 Сейчас в теме
Спасибо автору за данную публикацию!!! Кратко, по существу, а главное все понятно описано. Перепечатка главы книги или нет, не суть важно. Не у всех ведь есть исходный материал ))
46. marinelle 05.01.14 11:17 Сейчас в теме
Для кодеров только начинающих разбираться с СКД очень полезно ))) Еще раз спасибо!
47. zoytsa 22.03.14 15:34 Сейчас в теме
Воспользовался разработкой автора, только вынес настройки на отдельную форму. И сохранил кнопку стандартную настроек, озаглавив "Расширенные настройки".
Спасибо!
49. svetanik 3 02.04.14 15:44 Сейчас в теме
Однозначно, автору респект. Прочитать литературу, реализовать своё (и ведь работает! обратите внимание на коммент 38) и не полениться написать статью и вынести её на обсуждение... Однозначно плюсую
50. OrsoBear 09.12.14 08:32 Сейчас в теме
Снова вернулся к этой теме.
Очередной отчет, где нужно автоматом загружать параметры.
И как всегда, на управляемых формах :-)
Порылся в комментариях, вспомнил, как делал раньше :-)
51. laf 28.01.15 09:53 Сейчас в теме
Вы молодец. Завидую. Сама не могу разобраться с этими "СКД"
52. laf 28.01.15 09:58 Сейчас в теме
Подскажите, кто-нибудь, где в конфигураторе БП 3.0 находится модуль переноса в табличную часть документа номенклатуры из подбора. Недавно с 7.7 - ничего не понимаю.
Оставьте свое сообщение

См. также

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

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

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

1 стартмани

04.02.2020    629    Kawa_neko    2       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Общая форма отчета (для отчета с СКД)

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

Единообразная форма отчёта для отчётов с СКД. Режим совместимости платформы должен быть не ниже версии 8.3.7.

1 стартмани

04.02.2020    574    olegpkc    4       

Отчет на СКД с выводом остатков по всем датам периода для УТ 10.3 (обычные формы)

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

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

1 стартмани

23.12.2019    953    jump0    0       

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

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

Шаблон внешнего отчета на СКД

Отчеты и формы Программист Пользователь Внешний отчет (ert,erf) v8 v8::СКД УНФ Абонемент ($m) Работа с интерфейсом

Шаблон отчета на базе СКД со своей формой отчета и выводом в свой макет (на примере прайс-листа).

1 стартмани

20.12.2019    1720    6    user1324132    0       

Сдача регламентированной отчетности из программ 1С Промо

Сдача регламентированной отчетности из программ "1С" во все контролирующие органы без выгрузок и загрузок в другие программы. Для групп компаний действуют специальные предложения.

от 1500 руб.

Программное добавление параметров редактирования СКД

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

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

1 стартмани

25.11.2019    3018    1    Isonic    7       

Пример вывода картинок в отчете на СКД.

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

Коллеги, в данной публикации я хочу поделиться отчетом "Остатки и доступность товаров" для ERP 2.4, КА 2.4, УТ 11 с выводом картинок.

1 стартмани

21.10.2019    1996    3    pavelpribytkin96    0       

Голосование за доклады на INFOSTART MEETUP Kazan - до 25 февраля. Промо

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

Альтернативный способ добавления элементов и реквизитов на формы

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 ERP2 УТ11 Россия Абонемент ($m) Работа с интерфейсом

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

1 стартмани

09.09.2019    5492    7    bmk74    1       

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

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

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

1 стартмани

05.08.2019    9311    10    masterkio    9       

Управление ИТ-проектами. Модуль 2: продвинутый онлайн-курс по классическим методам управления проектами. Вебинары проходят с 12 марта по 11 июня 2020 года. Промо

Продвинутый онлайн-курс по классическому управлению ИТ-проектами позволит слушателям освоить инструменты из PMBoK® и 1С:Технологии корпоративного внедрения и научиться их применять для проектов любого масштаба. Курс включает в себя 12 вебинаров и 12 видеолекции, разбор кейсов и рекомендации экспертов по проектам слушателей. Ведущая курса - Мария Темчина.

от 13000 рублей

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

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

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

1 стартмани

03.07.2019    13372    4    m-rv    86       

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

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

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

1 стартмани

01.07.2019    4406    6    lmnlmn    7       

Готовые переносы данных из различных конфигураций 1C Промо

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

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

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

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

1 стартмани

28.06.2019    4510    4    Isonic    14       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

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

4900 рублей

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

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

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

1 стартмани

12.06.2019    19259    17    Hatson    22       

Как вывести в СКД две независимые таблицы, объединенные одним полем

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

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

1 стартмани

06.06.2019    3982    swimdog    13       

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

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

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

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

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

1 стартмани

17.05.2019    4358    3    artms    0       

Расширенные фильтры на форме отчета СКД

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

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

1 стартмани

07.05.2019    3204    6    Isonic    10       

1C:Предприятие для программистов: Запросы и отчеты. Второй поток. Онлайн-интенсив с 17 марта по 16 апреля 2020 г. Промо

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

6500 рублей

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

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

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

05.04.2019    6549    2    artkor    1       

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

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

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

1 стартмани

27.03.2019    9541    12    ellavs    11       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

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

16450 рублей

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

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

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

1 стартмани

25.03.2019    20831    8    tormozit    44       

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

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

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

1 стартмани

21.03.2019    3348    8    pavel_pss    0       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

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

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

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

1 стартмани

12.03.2019    3362    2    majoram    0       

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

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

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

1 стартмани

22.02.2019    3254    kasper076    3       

Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо

Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.

от 11000 рублей

Расширение: Темы для 1С: Предприятия

Отчеты и формы Программист Расширение (cfe) v8::УФ 1cv8.cf Абонемент ($m) Работа с интерфейсом

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

1 стартмани

10.02.2019    8194    37    spec8s    7       

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

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

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

1 стартмани

07.02.2019    3949    MaxxiMiliSan    2