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

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

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

Проблема создания красивого, функционального отчета актуальна для любого разработчика. Создать новый справочник, регистр накопления, документ, который двигает созданные тобой регистры, - не проблема, но как потом «родить» отчет, который будет работать, используя созданные тобой регистры? И не просто отчет, а отчет настраиваемый, с произвольными отборами и группировками, с приятным внешним видом?

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

 

Конфигурации: БП, УТ, УПП и прочие фирмы 1С на платформе 8.1

Данная статья рассчитана на начинающих и продвинутых программистов.

 

Проблема создания красивого, функционального отчета актуальна для любого разработчика. Создать новый справочник, регистр накопления, документ, который двигает созданные тобой регистры, - не проблема, но как потом «родить» отчет, который будет работать, используя созданные тобой регистры? И не просто отчет, а отчет настраиваемый, с произвольными отборами и группировками, с приятным внешним видом?

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

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

 

В качестве примера рассмотрим задачу: Для прикладного решения 1С:Управление торговлей версии 10.3.7.9 создать отчет, показывающий остатки товара на выбранную дату, по складу (или складам), свободные и находящиеся в резерве, с ценами в выбранной цене и суммами остатков в выбранной цене. В отчете возможен отбор по складу, номенклатуре и реквизитам номенклатуры. В отчете возможны группировки по складам, номенклатуре и реквизитам номенклатуры. В отчет возможен вывод любых произвольных реквизитов номенклатуры. Замечу что задача не выдумана, вполне реальна.

 

Итак, что есть Универсальный отчет и с чем его едят. Откроем конфигурацию, раздел Отчеты. В разделе отчеты и находится объект «Универсальный отчет»:

 

  

 

Универсальный отчет - объект конфигурации, который можно использовать как самостоятельно, так и в других отчетах. Данный отчет присутствует во многих конфигурациях фирмы 1С: Управление торговлей, Бухгалтерия предприятия, Управление производственным предприятием и пр. Разбираться в его работе нет нужды, достаточно разобраться, как его можно использовать.

 

Откроем любой отчет, разработанный на его основе, и заглянем внутрь. Я открою отчет «Товары в резерве на складах», находящийся непосредственно перед Универсальным отчетом в разделе Отчеты. Если у кого из читателей возникают затруднения с тем, что бы данный отчет открыть, в конце статьи находится ссылка на готовый отчет.

 

Итак, сохраним данный отчет как внешний и откроем в конфигураторе:

 

 

 

Как видим, у данного отчета только один реквизит - Универсальный отчет. Зададим новое имя нашему отчету - «Товары на остатках и в резерве»:

 

 

 

Откроем форму отчета:

 

 

 

Форма отчета абсолютна безлика, нет даже названия в шапке. Зато есть две даты. Обратим внимание на это, ведь нам нужна одна дата. Но не спешим убирать одну из дат, это настраивается в модуле отчета, откроем его. Для этого закрываем форму, нажимаем «Действия - Открыть модуль объекта». Модуль объекта выглядит на диво лаконично, Вот он весь:

 

 

Обратим внимание на строки в конце модуля:

 

 

 

Собственно здесь настраивается то, как мы вводим период: 1 - на дату (как нам и нужно), 0 - произвольный период (в это случае будут две даты), неделя, декада и прочее. Оставим без изменения.

 

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

 

Найдем функцию УстановитьНачальныеНастройки и посмотрим, что там внутри:

 

 

 

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

 

ТекстЗапроса = "...:

 

 

 

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

 

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

 

Замечание 1: Если у кого-то возникают вопросы вроде «Что такое левое соединение», то данные вопросы выходят за рамки статьи. Предполагается, что читатель знает язык SQL в той интерпретации, в которой он используется в платформе 1С 8.1.

 

Итак, переходим к запросу. Наведем мышь на текст запроса и нажмем правую клавишу мыши. В контекстном меню выберем пункт Конструктор запроса. Откроется следующее окно:

 

 

 

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

 

Очистим среднюю часть и выберем необходимые нам таблицы: Товары на складах остатки, Товары в резерве на складах остатки и Цены номенклатуры срез последних:

 

 

 

Заполним поля (правая часть). Из таблицы Товары на складах выберем поля Склад, Номенклатура, Характеристика номенклатуры, Серия номенклатуры, Количество остаток. Из таблицы Товары в резерве на складах выберем Количество остаток (это другой остаток - резерв), из таблицы Цены номенклатуры Тип цен и Цена:

 

 

 

Кнопкой  добавим два новых поля: Сумма на складе и Сумма в резерве (цена. помноженная на остаток на складе и остаток в резерве). После нажатия на указанную кнопку откроется окно в котором можно сконструировать нужное нам выражение:

 

 

 

Это Сумма на складе, аналогично, Сумма в резерве:

 

 

 

В итоге, в полях у меня получилось следующее:

 

 

 

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

 

 

 

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

 

Дальше, зададим псевдонимы для выбранных полей на закладке «Объединения / псевдонимы»:

 

 

 

Отредактированные псевдонимы выделяются черным. Псевдонимы, которые мы присвоили полям, запоминаем, это понадобится дальше.

 

Установим связи между таблицами на закладке «Связи»:

 

 

 

На закладке «Итоги» выберем числовые поля, - по ним будут рассчитываться итоги. По полю Цена берем максимум, по остальным - считаем суммы.

 

 

 

Теперь выберем те поля, которые будут использованы в настройках построителя.  Перейдем на закладку «Построитель». На закладке «Построитель» находятся еще пять закладок. На закладке «Поля» выберем те поля, которые будут использоваться при настройке отчета. В нашем случае выберем все поля:

 

 

 

Галочки в средней колонке «Использовать дочерние» означают, что мы можем выбирать не только Склад, Номенклатуру и т.п., но и любое дочернее поле - Тип склада у склада, ставку НДС, артикул у номенклатуры и т.д. Дочерние можем использовать только у сложных типов данных, у простых (Цена, Количество, Сумма) - нет.

 

На закладке «Условия» выберем те поля, на которые можно будет установить отбор. В нашем случае - поля Тип цен, Склад, Номенклатура:

 

 

 

На закладке «Порядок» выберем поля упорядочивания. Выберем поле  Номенклатура:

 

 

 

Ну и наконец, закладка «Итоги». Выберем Склад, Номенклатура, - по этим полям будут вычисляться итоги:

 

 

 

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

 

Нажимаем Ок, - наш запрос сформирован.

 

После текста запроса находится настройка Свойств и Категорий. Закомментируем для простоты:

 

 

 

Ниже находится раздел, в котором настраиваются представление полей. Настроим представления для полей Склад, Номенклатура, Характеристика номенклатуры, Серия номенклатуры, Тип цен:

 

 

 

При этом первое поле - то, как мы настроили представление на закладке «Объединения / псевдонимы», второе поле - то, как оно будет отображаться в отчете. Например характеристика в запросе указана как «ХарактеристикаНоменклатуры», а представление укажем «Характеристика номенклатуры».

 

Настроим вычисляемые поля, - показатели:

 

 

При этом первое поле - то, как мы настроили представление на закладке «Объединения / псевдонимы». Второе поле - то, как оно будет отображаться в отчете. Третье - будет ли данный показатель включен по умолчанию. Четвертое - формат поля. Пятое и шестое - наименование группы и представление (можно несколько полей объединить в одно поле).

Для поля Цена, - ставим формат Число 15.2, группа Цена. Для остатков - формат 15.3, группа Количество. Для сумм формат 15.2, группа Сумма.

 

Настроим предопределенные группировки:

 

 

 

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

 

Теперь предопределенные отборы:

 

 

 

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

 

Ну и наконец, дополнительные поля. Что это такое? Мы указали, что в отчете будем использовать Номенклатуру, а так же указали, что будем использовать любые дочерние поля этого поля. Если требуется указать, что обязательно будет выводится Артикул, то это будет дополнительным полем и мы должны были бы написать:

 

 

 

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

 

Собственно, это все. Можем запускать отчет. Сохраним изменения и откроем в режиме предприятия:

 

 

 

Как видите, дата одна и она не заполнена (расчет производится на конец текущего дня), три предопределенных отбора. Щелкнув по кнопке «Настройка» откроем настройки:

 

 

 

Есть показатели, настроены группировки. А если щелкнуть по кнопке «Расширенная настройка», то увидим в дополнительных полях Артикул:

 

 

 

Характеристику и Серию я выбрал сам. Выводиться данные поля будут с группировками (это у нас номенклатура) причем, показаны будут после Наименования.

 

Выберем Тип цены в отборе и сформируем отчет:

 

 

  

Замечание 2: В настройка запроса мы указали параметр ДатаКон. Кроме этого показателя есть еще три предопределенных: ДатаНач, ДатаНачала, ДатаКонца. Чем они отличаются? ДатаНачала и ДатаКонца это именно даты, первая - дата начала периода (если дата пустая, то начало ведения учета), вторая - дата конца периода (если дата пустая, то конец текущего дня). ДатаНач и ДатаКон - это границы периодов (дата + указание включения или исключения пограничного значения). Чем это грозит? К примеру, нужно отобрать документы по датам. Если в тексте запроса указать Документ.Дата >= &ДатаНачала, то все будет хорошо, если же сравнивать не с ДатаНачала, а с ДатаНач, то выполнение отчета будет прервано с ошибкой, ибо нельзя сравнивать Границу и Дату! Таблицы данных понимают все эти параметры.

 

Замечание 3: Если отчет строится как у нас На дату, то использовать можно показатели ДатаКон и ДатаКонца. Показатели ДатаНач и ДатаНачала будут указывать на начало ведения.

 

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

 

 

 

Процедура СформироватьОтчет должна быть такой:

 

 

 

ТипЦен должен быть реквизитом отчета, иначе этот параметр не будет виден в модуле объекта!

 

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

  1. Указали настройку периода;
  2. Сформировали запрос и указали, какие поля мы будим настраивать построителем и как (по каким можно группировать данные, по каким сортировать, как итоги рассчитывать);
  3. Настроили представление полей;
  4. Задали начальные настройки.

Как видите, всего четыре пункта.

Надеюсь, кому-нибудь сгодится :)

 

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

Наименование Файл Версия Размер
Пример отчета Товары на остатках и в резерве с ценами

.erf 16,84Kb
1521
.erf 16,84Kb 1521 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Рейтинг 1-го уровня
1. CheBurator 3440 06.12.09 17:34 Сейчас в теме
хороший материал!!!
Дон Кихот; dante; aleks_19; +3 Ответить
4. I_G_O_R 64 06.12.09 18:14 Сейчас в теме
лет бы несколько назад, а так уже СКД
Drivingblind; Трактор; alex_art; +3 Ответить
6. larisab 159 06.12.09 18:24 Сейчас в теме
В 8.1 построитель отчета оставлен для поддержки уже написанных на 8.0 конфигураций, все новые отчеты пишутся с использованием СКД. Тем ценнее статья.
w-divin; v.l.; alex_art; +3 Ответить
56. i.kovtun 166 04.01.10 15:46 Сейчас в теме
Декабрь 2009
\1CIts\EXE\Treport
Возможно это есть только на партнерском ИТС, но вроде это общедоступная "демка".
dante; Istur; +2 Ответить
15. Мастер1С 769 07.12.09 08:14 Сейчас в теме
СКД отличный механизм, но привыкли бухгалтера к настройкам построителя. Все знают, что такое показатель, как настроить группировку и вывести дополнительный реквизит.
Показывать отчеты под СКД - ломать их мирровозрение. Когда-то это придется сделать, согласен, но не раньше чем необходимо.
AleksR; Anything; +2 Ответить 2
50. Йожкин Кот 1081 11.12.09 15:47 Сейчас в теме
Хотелось бы добавить, следующее:
1. Подобным функционалом владеют еще и отчеты ОтчетОстаткиИОбороты, ОтчетСписокКроссТаблица и ОтчетДиаграмма.

2. Если запрос простой, его текст можно и не писать. Достаточно заполнить спец. макет группировками и показателями и вызвать процедуру УправлениеОтчетами.ЗаполнитьНачальныеНастройкиПоМакету. Как пример, в УТ можно глянуть отчет ПланируемыеПоступленияДенежныхСредств.

"+" за старания.
dr2c; artbear; +2 Ответить
12. Мастер1С 769 07.12.09 07:06 Сейчас в теме
Спасибо всем откликнувшимся.

Мое мнение - под 8.1 в стандартных конфигурациях этого хватит.
Самописные - видимо СКД, как более продвинутая технология.
Но не загорами 8.2, что там будет - к тому и будем адаптироваться.
35. Merlin12042009 07.12.09 20:50 Сейчас в теме
Прекрасная работа, хорошо бы аналогичную статью почитать по СКД
40. ArtemK 09.12.09 13:17 Сейчас в теме
Поставил "+" за полезность материала для тех кто "курочит" типовые, особенно начинающих, а также за труд по составлению.
5. wirg 06.12.09 18:21 Сейчас в теме
СКД не очень удобный механизм, универсальные отчеты и построитель лучше
102. alma-soft 19.01.12 13:45 Сейчас в теме
спасибо за пример, воспользовался им при внедрении УТ 10.3, требовался отчет по формированию остатков на складе с учетом резерва, и указанием типа цены,
87. asg1975 245 27.09.11 09:58 Сейчас в теме
Прямо мини учебник. Быстро понять азы - самое то. Огромное спасибо, сам начинал с данного примера!!!
72. madmpro 16.08.10 23:16 Сейчас в теме
У меня есть похожий отчет, только на основе универсального отчета, по регистрам партий (комплексная конфигурация, УПП). Проблема с выводом начальных остатков и расшифровок по документам. При выводе расшифровки строки в режиме период+регистратор и отключения детальных записей - все получается (проверено) кроме начальных остатков. Кто-нибудь поможет решать эту проблему?

http://files.mail.ru/I4ZLS2
139. droplet 77 03.04.14 10:58 Сейчас в теме
Спасибо автору.Последовательно, доступно, понятно. Недавно стала работать с 8, стараюсь делать отчеты на СКД но и этот инструмент пригодился (н-р многие отчеты в УПП построены на Универсальном). Прочитала статью и за 5 минут внесла изменения в стандартный отчет.
92. pmtvv 09.10.11 14:25 Сейчас в теме
82. trad72 12.09.11 02:56 Сейчас в теме
спасибо, материал помог разобраться в стоявшей передо мной проблемой. + однозначно )
145. СветикК 29.08.14 09:49 Сейчас в теме
СКД фирма 1С очень меняла, меняла, что сейчас путаешься в некоторых вещах, спасибо за статью.
117. Паланик 8 18.04.12 10:53 Сейчас в теме
Еще бы рассказал суть, когда просто регистр передается в УО. А за статью спасибо!
74. flashdancer 21.10.10 12:45 Сейчас в теме
Спасибо огромное за такое пояснение!!! :!: Все понятно и одновременно ничего лишнего!!!
Мне очень помогло :D
64. Temniy 18 11.06.10 15:13 Сейчас в теме
Блин круто (Вот это способ) :D
41. IgorMgn 1 09.12.09 13:46 Сейчас в теме
Спасибо! Уже пригодилось в доработке типового отчета.
106. Bomba1911 01.02.12 13:54 Сейчас в теме
Спасибо за статью. Все просто и понятно даже для такого новичка, как я.
Наконец-то я "подружился" с отчетами.
Уже пригодилось в доработке типового отчета.
59. sss999 48 29.01.10 12:37 Сейчас в теме
Вот я начинающий,и мне непонятно,почему из резерва взяли только количество,а не количество и номенклатура,мне непонятно по какому полю будет соединение происходить.
62. bashhhh 25 18.03.10 06:44 Сейчас в теме
Как можно изменить представление показателя, если как источник используется регистр накопления.
Ведь в форме настройки табличное поле Показатели недоступно для редактирования.
Как пример.
Ведомость по взаиморасчетам с контрагентами.
В отборе ставим вид контрагента покупатель - в отчете пишет "Долг покупателя" вместо Начальный остаток
В отборе ставим вид контрагента поставщик - в отчете пишет "Долг перед поставщиком". вместо Начальный остаток
51. СветикК 14.12.09 11:07 Сейчас в теме
60. sss999 48 29.01.10 12:54 Сейчас в теме
а понял,сорри затупил,а построитель он что делает макет формирует?
104. Dysya 26.01.12 10:38 Сейчас в теме
Все получилось! Спасибо! Оч полезная статья!
129. Baibolaika 30.05.13 12:27 Сейчас в теме
Добрый день! Как сделать в таком отчете колонку, в поля которой можно вводить цифры например? Кто знает? помогите, везде уже искала, и уже начинаю сомневаться в универсальности отчета
123. 26178_mail.ru 23.12.12 01:49 Сейчас в теме
Спасибо! Пригодилось!, на основании наколякол кое что.
71. max5600 16.08.10 07:19 Сейчас в теме
Скажите пожалуйста. Можно ли просто подключить файл .erf в 1С УТ и пользоваться данным шаблоном, или все по шагам все проделывают как автор написал?
124. Bukaska 134 23.12.12 02:02 Сейчас в теме
Отличная статья! Тоже поставила +++
54. slaviksoft 74 31.12.09 10:38 Сейчас в теме
автор маладец
если бы 1С такие описания к своим механизмам делала - жить стало бы легче
96. Anton_prezident 05.12.11 22:59 Сейчас в теме
Спасибо,много хорошей информации
95. Landrey 16.11.11 13:09 Сейчас в теме
Отличная статья все по полочкам. Для начинающих в самый раз. +
130. Мастер1С 769 30.05.13 12:53 Сейчас в теме
Может, пора на СКД переходить?
Я уже все отчеты пишу в СКД.
150. tolyan_ekb 179 17.01.20 21:37 Сейчас в теме
С итогом по цене что-то можно сделать? И дублем заголовка "Цена" в шапке?
128. RocKeR_13 886 08.04.13 10:29 Сейчас в теме
Спасибо за статью) Делал по данной схеме отчет по своему новому регистру (универсальный врал безбожно по остаткам) в УПП. Единственное: не хотел свойства добавлять вот тут
УниверсальныйОтчет.ДобавитьВТекстЗапросаСвойстваИКатегории(ТекстЗапроса);

ругался на неверный синтаксис в запросе. В итоге не стал особо заморачиваться, выцепил в отладке финальный текст запроса, поправил его руками и вставил вместо исходного текста запроса, закомментив строку добавления свойств и категорий.
90. olexandr 28.09.11 10:24 Сейчас в теме
Спасибо, очень хорошая статья - научила пользоваться универсальным отчетом, хотя СКД конечно пофункциональней будет.
108. BalVlad 15.02.12 13:47 Сейчас в теме
После прочтения статьи для меня наконец-то все разложилось по полочкам в вопросе по отчетам. Спасибо!
91. DragonAgo 10 28.09.11 10:31 Сейчас в теме
Отличная статья, переписала типовой отчет добавив необходимые для пользователя поля и ограничила по правам видимость этих полей.
2. d_chekunov 06.12.09 18:01 Сейчас в теме
Большое Спасибо за статью. Как раз собирался разбираться как это устроено. Жаль что плюсануть можно только разок.
3. alex_art 14 06.12.09 18:03 Сейчас в теме
Хороший материал, но все таки такой отчет по-моему все таки будет быстрее написать через СКД
81. vstorozhuk 30.05.11 18:08 Сейчас в теме
Огромное спасибо!!! очень полезная статья)))
137. rorotron 16.02.14 16:52 Сейчас в теме
Здравствуйте, спасибо за статью. Статья для помещения в закладки.

У меня по данной теме следующая проблема (типовая конфигурация УПП 8.2):

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

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

Я сохранил отчёт как внешний, проделал все необходимые изменения в процедуре "УстановитьНачальныеНастройки" (текст запроса написал по аналогии с текстом отчета "Ведомость по партиям товаров на складах"), но не могу побороть следующую ситуацию:

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

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

Может кто-нибудь сталкивался с подобной задачей? Я конечно могу порекомендовать пользователям формировать отчет только с регистратором и затем сворачивать по предыдущей группировке "Номенклатура", чтобы скрыть движения, но хотелось бы найти решение получше.

Интересно услышать ваше мнение.
115. wowkai 4 14.03.12 18:35 Сейчас в теме
как раз изучаю отчеты на СКД. спасибо за хороший и полезный материл. кинул на печать и в библиотечку)
83. aleksey51286 21.09.11 10:43 Сейчас в теме
спасибо за публикацию, очень интересно
7. larisab 159 06.12.09 18:54 Сейчас в теме
А еще ценнее была бы статья о том как внести изменения в отчет, построенный с помощью построителя на примере ОтчетСписокКроссТаблица или ОтчетОстаткиИОбороты, так как на них написаны большинство отчетов в стандартных конфигурациях.
109. Вася_Пупкин 3 16.02.12 10:18 Сейчас в теме
Материал неплохой, но все таки такой отчет по-моему все таки будет быстрее написать через СКД.
Да и курочить типовую помоему не особо правельно.
Хотя на вкус и цвет как говориться....
110. Вася_Пупкин 3 16.02.12 10:19 Сейчас в теме
122. 26178_mail.ru 09.12.12 21:28 Сейчас в теме
Действительно полезная статейка.
Да и у меня был прикол , что в зависимости од разных настроек иерархии менялся порядок строк... При чем тут иерархия не пойму. СПАСИБО++++++++++
138. evn-zorin 22 16.02.14 17:08 Сейчас в теме
СКД самое оно, за несколько минут при знании СКД можно "слепить" очень даже годный отчёт.
80. budanil 25.05.11 12:08 Сейчас в теме
спасибо, чувак. Намного лучше прочитать статью чем самому с нуля разбирацо)))
38. MSensey 49 09.12.09 09:43 Сейчас в теме
Как все сложно-то. СКД рулит, а на 8.2 темболее рулит ;)
8. Gilev.Vyacheslav 06.12.09 20:16 Сейчас в теме
ждем про СКД, а пока ПЛЮС :D
86. svetic 23.09.11 09:15 Сейчас в теме
Большое Спасибо за статью, помогла разбираться как это устроено. Но хорошо бы облегчить вот такой момент - часто бывает отчет по своим рег. и т.п. необходимо распечатать и подписать, кладовщик, бухгалтер, не важно. Так вот как в такой отчет вывести строку для подписей в конце???
94. forse 20.10.11 11:03 Сейчас в теме
127. kosvi 04.03.13 19:51 Сейчас в теме
Хороший материал! Большое спасибо)
58. Swetlana 20 28.01.10 19:19 Сейчас в теме
Хорошая статья! Спасибо. :)
10. mirco 74 06.12.09 21:13 Сейчас в теме
Бегло ознауомился, попозже почитаю поподробней, но идея понравилась. Да и за потраченное время +
52. AVARY 175 14.12.09 14:43 Сейчас в теме
Большое спасибо! Наконец-то я "подружился" с отчетами :)
11. Ish_2 1058 06.12.09 21:25 Сейчас в теме
Повторю за всеми , пора переходить на СКД, а так плюс , конечно.
77. wrooom 28 21.01.11 17:03 Сейчас в теме
Вот вы всё хорошо расписали, а СерииНоменклатуры у вас не выводятся ни как отдельное поле, ни в группировках..

А как же быть, если нужно отображать остатки в разре серий?

+ если я использую вложенный запрос, необходимо ли внутри вложенного запроса применять конструкции построителя?
121. grost 27.11.12 20:54 Сейчас в теме
Спасибо за статью. Материал помог разобраться в технологии УО, хочу также разобраться с СКД.
119. trumanl 12 19.06.12 12:23 Сейчас в теме
все очень понятно расписано! спасибо.
возможно стоит указать в статье, что возможен более простой вариант и без запроса, когда указывается имя одного регистра, по которому нужно получить необходимую информацию.
143. Tapochki-tmn 43 31.07.14 19:31 Сейчас в теме
Спасибо огромное!

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

- как добавить группировки и отборы по свойствам и категориям

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

Побольше бы таких статей!
Еще раз, огромное спасибо!
98. ipyu 05.01.12 11:28 Сейчас в теме
Большое спасибо, очень познавательно.
149. kondrat1C 54 25.09.17 17:41 Сейчас в теме
сколько не пробовал использовать конструкцию
УниверсальныйОтчет.ДобавитьДополнительноеПоле(<ПутьКДанным>, <Размещение>, <Положение>)

так и не получилось вывести дополнительные поля
116. Alexey55 19.03.12 08:57 Сейчас в теме
Спасибо за статью! очень доступно описано и очень вовремя!)
126. vis_tmp 30 18.01.13 09:45 Сейчас в теме
"Аналогично, если у нас есть поля, не показатели, по которым мы не группируем данные, то в отчет они по умолчанию не попадут. Но мы можем указать их в качестве дополнительных полей что бы отображались."

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

Кто-нибудь делал так?
46. logarifm 1087 10.12.09 10:52 Сейчас в теме
Есть и минуса этого использования, при сложных расчетах колонок, которые нельзя вычислить в запросе в макет к сожалению не попадут, а в другом я всегда это использую уже примерно года два или побольше :)
13. Serj1C 480 07.12.09 07:22 Сейчас в теме
Плюс. Но как и говорили выше, это механизм давно минувших дней. Но именно он стал пропотипом существуюшей СКД. Я так думаю.
75. Tarzan_Pasha 09.11.10 13:47 Сейчас в теме
Статья очень полезная. И пример тоже. В примере исправить ошибку надо в одном месте.
УниверсальныйОтчет.ДобавитьПоказатель("СуммаРезерв", "Сумма остаток в резерве", Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма");
вот такая строчка должная быть. а не
УниверсальныйОтчет.ДобавитьПоказатель("ОстатокРезерв", "Сумма остаток в резерве", Истина, "ЧЦ=15; ЧДЦ=2", "Сумма", "Сумма");
120. revril 18.11.12 19:19 Сейчас в теме
спасибо!Статья очень ценная!Скачаю отчет посмотрю как наглядно делать
14. Just 2 07.12.09 08:00 Сейчас в теме
Все это конечно хорошо, сам так делал и иногда делаю сейчас,
но как-то я уже писал на форуме, но никто не ответил :cry: ,
часто бывает отчет по своим рег. и т.п. необходимо распечатать и подписать, кладовщик, бухгалтер, не важно. Так вот как в такой отчет вывести строку для подписей в конце??? Если б не такая вот канитель, то было бы вообще нормально всё.
97. iksanova 19.12.11 07:11 Сейчас в теме
146. Мастер1С 769 29.08.14 18:41 Сейчас в теме
Тем не менее, данный материал устарел. Изучайте СКД.
33. acsent 1168 07.12.09 17:56 Сейчас в теме
Не актуально. Сейчас принято делать отчеты на основе "Шаблона типового отчета"
85. vovche 22.09.11 01:51 Сейчас в теме
спасибо, слава богу что я пришел в 1с когда универсальный отчет уже начал отмирать :)
63. valya977 5 18.05.10 06:30 Сейчас в теме
Спасибо за хорошую статью
141. AlexO 130 27.07.14 21:10 Сейчас в теме
Статья статьей, но попробуйте добавить поле "Комментарий" (которое неограниченное) в отчет с запросами и подзапросами (и вездесуваемыми {}). Напрыгаетесь.
48. JIGIT 10.12.09 19:52 Сейчас в теме
47. defini 449 10.12.09 11:20 Сейчас в теме
Для начинающих программистов самое то!
+1 адназначна!
142. AlexO 130 27.07.14 21:17 Сейчас в теме
+ 141
да, еще и Регистратор сугубо только в Расшифровке появляется...
70. nafa 653 09.07.10 06:00 Сейчас в теме
Автору спасибо огромное! За 2 часа по инструкциям в статье сделал отчет, на который иначе ушло бы два дня.
19. Evg-Lylyk 3230 07.12.09 09:12 Сейчас в теме
Уже пройдено, но материал все равно полезный. Есть пожелания к оформлению:
1. код картинкой не очень хорошо (есть обработка http://www.infostart.ru/public/19856/ )
2. картинки лучше в формате PNG не будет ухудшения качества и размер будет маленький
107. Boudybuilder 65 13.02.12 00:57 Сейчас в теме
Действительно полезная статейка.
Да и у меня был прикол , что в зависимости од разных настроек иерархии менялся порядок строк... При чем тут иерархия не пойму. Но хаос присутствовал...
133. Sabfir 30.05.13 14:11 Сейчас в теме
Автору огромное респектище.
Вот как надо писать документацию к типовому функционалу.
Не смотря на любовь к платформе 1С и типовым конфигурациям, меня огорчает описание функционала типовых решений. Некоторый функционал просто не описан
Благодаря таким людям, как автор данной статьи, 1С из непонятного становиться простым и доступным.
76. toxicoff 20.01.11 19:25 Сейчас в теме
Сделал всё вроде по инструкции, строки, колонки, номенклатура выводится... И получается вроде правильный отчет, да только не заполненый)
показатели не показывает( почему может быть? может в запросе как то накосячил?
147. DiegoLidabo 8 31.03.17 14:49 Сейчас в теме
Спасибо, отличный пример!

Виктор, Прошу помощи. Переписываю отчет (Построитель) Просроченная дебиторская задолженность (уже готов), необходимы плюшки - красивости. Пытаюсь в настройках добавить показатель "Допустимое число дней задолженности" (для добавления использовал и УниверсальныйОтчет.мСтруктураПредставлениеПолей.Вставить и УниверсальныйОтчет.ПостроительОтчета.ДоступныеПоля.Добавить ), но при выполнении получаю ошибку "не найдено поле "ДопустимоеЧислоДнейЗадолженности". Схожая проблема описана в http://odines.ru/thread3561.html
Тогда вопрос можно сформулировать по другому: Как программно Выполнить интрерактивное

"Конструктор запроса --> Построитель --> Поля"

или проблема решается вообще по другому?
Прикрепленные файлы:
21. Шёпот теней 1767 07.12.09 09:41 Сейчас в теме
... сам отчёт даЁт не верные цифры ... на одну номенклатуру, дату, склад :

номенклатура...колОст....колРез
болт М14х30......184..........30.... данный отчёт
болт М14х30........92.........15.... штатный отчёт (происходит удвоение данных)

... вот ...

за саму статью большое спасибо - четко, ясно, наглядно, ПОНЯТНО .... !

... ВОТ ...

22. Valerich 1681 07.12.09 09:42 Сейчас в теме
За подробное и толковое описание плюс. Но статья действительно устарела. В конфе БП уже давно есть аналог на скд. Заготовка готового отчета называется "ШаблонТиповогоОтчета". Все что там надо сделать - это настроить макет (СКД). Все остальные системы вывода, оформления (кстати в случае простых настроек аналогичны тем что привычны) и прочего уже происаны в конфе.
Сейчас под рукой нет УТ не могу проверить, но в ЗУПе и в УПП тоже большинство отчетов строится через СКД на базе универсального.
144. Merlin12042009 05.08.14 23:51 Сейчас в теме
Вам бы преподавателем быть. Замечательная статья.Я хотела бы с вами посоветоваться насчет одного отчета.Возможно ли это?
101. chikov 17.01.12 16:30 Сейчас в теме
Большое спасибо! Очень толково и подробно.
103. Dysya 25.01.12 19:09 Сейчас в теме
Помогите, пожалуйста, с отчетом. Попробывала сделать. Цены номенклатуры с остатками в рознице. Есть остатки по Рознице Сумма по рознице, а цены пустые. Самое интересное, что в какой-то момент я их видела, потом удалила отчет, а в новом никак не могу сделать. Пожалуйста, оч нужна помощь!!!!
89. puxlichok 27.09.11 18:37 Сейчас в теме
Очень помогло разобраться в сабже. Спасибо)
28. Just 2 07.12.09 10:14 Сейчас в теме
а вот при сдаче по платформе, требуется отчеты на СКД делать
29. 4ish 07.12.09 10:17 Сейчас в теме
Спасибо за статью. Все просто и понятно даже для такого новичка, как я. :)
125. Алпитон 24.12.12 06:21 Сейчас в теме
Взял готовый отчёт на основе УО и добавил в запрос поле. Если выполнить запрос в консоли запросов, в новом поле данные есть. А в отчёте данные не выходят. В процедуре УстановитьНачальныеНастройки новое поле описал при помощи "УниверсальныйОтчет.ДобавитьПоказатель". Наверно тут что-то неправильно. Как нужно оформлять новые поля?
65. yurikovd 06.07.10 05:30 Сейчас в теме
честное слово выручили!!!Вот только проблема у меня половина учреждений на УТ 10.1, а там как известно ---
Оставьте свое сообщение

См. также

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

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

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

1 стартмани

25.03.2019    38383    tormozit    54    

Динамическая расшифровка СКД (на примере отчета)

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

Предлагаю Вашему неподкупному вниманию вариант более-менее унифицированной реализации динамически формирующейся расшифровки СКД на примере простейшего отчета для конфигурации УТ 11.

1 стартмани

08.12.2020    534    mr_sav    2    

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

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

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

1 стартмани

07.12.2020    2054    user1502278    16    

Cбор и анализ ошибок при помощи Sentry, или как упростить жизнь себе и пользователям

Практика программирования Интеграция v8 Абонемент ($m)

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

1 стартмани

09.10.2020    3942    hexhoc    12    

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

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

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

2 стартмани

08.05.2018    27606    wowik    3    

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

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

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

1 стартмани

08.10.2020    5267    dabu-dabu    10    

Загрузка, скачивание, удаление файлов с помощью НачатьПомещениеФайлаНаСервер() и НачатьПолучениеФайлаССервера()

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

В платформе 8.3.15 появились новые методы НачатьПомещениеФайлаНаСервер() и НачатьПолучениеФайлаССервера(). В данной статье рассмотрено готовое решение проверенное и прекрасно работающее на тонком и веб-клиенте.

1 стартмани

25.07.2020    5952    Flashill    10    

Параллельные вычисления расчета факториала числа N

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

Распараллеливание алгоритма с помощью фоновых заданий (асинхронные вычисления)

1 стартмани

29.06.2020    3265    Rustig    17    

Как нарисовать граф на 1С Промо

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

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

1 стартмани

09.08.2013    71416    ildarovich    117    

Универсальная печатная форма Приказа/Договора с возможностью настройки макета в пользовательском режиме

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

В данной статье я опишу реализацию универсальной (в кавычках) печати Приказа (Договора или чего пожелаете) с возможностью настройки выводимого текста с параметрами из пользовательского режима

1 стартмани

24.06.2020    1702    BuriyLesha    0    

Методика обновления формы объекта данных при изменении объекта

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

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

1 стартмани

09.03.2020    11419    tormozit    14    

Отправка уведомлений с помощью командной строки, Оповещения с сервера на клиент с помощью командной строки

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

Отправка уведомлений с помощью команды командной строки msg. Оповестить пользователей из серверного модуля или регламентного задания, с помощью командной строки msg.

1 стартмани

05.03.2020    6507    user5300    3    

Простой способ индексирования интервалов Промо

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

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

1 стартмани

28.09.2016    40418    ildarovich    22    

Вывод сообщений в HTML поле средствами 1С

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

Пример использования вывода большого количества сообщений в поле HTML. С возможностью открывать ссылочные объекты и создавать новые объекты передавая параметры прямо из HTML поля. Протестировано на релизах 8.3.12 и 8.3.15+

2 стартмани

31.01.2020    6586    burni4    16    

Краткое руководство по внесению изменений в конфигурацию

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

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

1 стартмани

13.01.2020    19238    sapervodichka    41    

Универсальные функции: разложение произвольной строки адреса в структуру

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

Процедуры и функции раскладывают произвольную строку адрес в структуру по ключевым словам.

1 стартмани

30.12.2019    4482    vik070777    10    

Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов Промо

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

Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.

1 стартмани

01.02.2018    35949    rpgshnik    49    

"Живые" картинки со Snap.SVG

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

В статье рассмотрен пример использования http-сервисов для визуализации данных

1 стартмани

24.10.2019    14169    blackhole321    7    

RLS - дубли условий в запросах к СУБД

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

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

1 стартмани

07.10.2019    8905    geron4    4    

Полное копирование одной формы в другую

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

Однажды я столкнулся с необходимостью открыть форму ЛЮБОГО документа с определенными изменениями, не зависящими от структуры объекта (например, заблокировать все кнопки). В интернете решения я не нашел. Обычно на форумах на запросы подобного рода отвечают чем-то вроде "покажи первоначальную задачу, а не спрашивай как реализовать то, что ты придумал". Тем не менее, мне стало интересно, как это можно сделать.

1 стартмани

03.10.2019    6040    nekit_rdx    24    

БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному Промо

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

Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.

1 стартмани

10.05.2018    47344    dsdred    43    

Многопоточная обработка данных на примере перепроведения документов

Обработка документов Практика программирования v8 ERP2 УТ11 КА2 Абонемент ($m)

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

1 стартмани

17.09.2019    10213    ids79    46    

Отображение истории выполнения по всем задачам комплексного процесса в документообороте

Документооборот и делопроизводство Практика программирования v8 ДО Абонемент ($m)

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

1 стартмани

15.09.2019    7473    pavelpribytkin96    8    

Описание формата внутреннего представления данных 1С в контексте обмена данными

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

Фирма 1С не рекомендует использовать внутреннее представление данных для любых целей, которые отличны от обмена с 1С:Предприятием 7.7. Но сама возможность заглянуть на "внутреннюю кухню" платформы с помощью функций ЗначениеВСтрокуВнутр(), ЗначениеВФайл(), ЗначениеИзСтрокиВнутр() и ЗначениеИзФайла(), дала возможность сообществу программистов 1С разработать новые приемы разработки и анализа. Так, именно на использовании внутреннего представления был построен алгоритм "быстрого массива", который позволяет практически мгновенно создать массив в памяти на основании строки с разделителями. С помощью разбора внутреннего представления можно "на лету" программным кодом выполнить анализ обычной формы и даже сделать редактор графической схемы. Во внутреннем формате сохраняют свои данные между сеансами различные популярные внешние обработки. А еще это возможность сделать быстрый обмен с внешними системами.

1 стартмани

06.09.2019    20374    Dementor    30    

Некоторая работа с данными через COM Промо

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

В статье приведены примеры работы с Платформой 8.X через COM (точнее, через объект COMConnector). Примеры кода были использованы при реализации прикладных задач в процессе трудовой деятельности.

2 стартмани

05.12.2012    58508    wowik    32    

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

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

Если Вам часто приходится просматривать в отладчике сложные пакетные запросы с большим количеством временных таблиц, то эта статья для Вас.

1 стартмани

27.08.2019    11516    ids79    22    

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

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

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

2 стартмани

24.08.2019    12782    BenGunn    22    

Изменяющееся контекстное меню в 1С 8.3

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

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

1 стартмани

06.08.2019    17902    signum2009    16    

Работа со схемой запроса Промо

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

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

1 стартмани

24.04.2018    46298    kalyaka    35    

Процедура ПриКомпоновкеРезультата

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

Коллекция кода

1 стартмани

26.07.2019    45799    vasilev2015    64    

10 способов получить модуль числа (а может, и больше)

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

Пишем функцию вычисления модуля числа. Сколько способов существует? Давайте посчитаем!

1 стартмани

11.07.2019    10193    sam441    29    

Ловец дедлоков СУБД

Производительность и оптимизация (HighLoad) Практика программирования Разработка v8 Россия Абонемент ($m)

Анализ простейшего дедлока СУБД в рабочей базе с использованием ЦУП (центра управления производительностью) и profiler MS SQL (Microsoft SQL Server). Эта статья будет полезна людям, изучающим вопросы оптимизации работы 1С, или тем, у кого возникают дедлоки в рабочей базе. UPD 09.07.2019 добавлено воспроизведение блокировки в случае установки управляемой блокировки перед чтением набора записей регистра сведений. UPD 10.07.2019 добавлена тестовая база с примером.

1 стартмани

08.07.2019    11706    azazana    79    

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов Промо

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

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    50049    DarkAn    86    

Мониторинг производительности и искусственный интеллект

Производительность и оптимизация (HighLoad) Практика программирования Разработка v8 Абонемент ($m)

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

1 стартмани

01.07.2019    9702    ivanov660    28    

"Убер на складе": динамический расчет маршрутов с учетом реальных расстояний

Учет ТМЦ Практика программирования Учет ТМЦ v8 УУ Абонемент ($m)

Представляю методику и инструмент для динамического расчета маршрутов отбора на высоконагруженных складах для максимального повышения эффективности склада, ускорения проходимости и, как следствие, экономии денег. Это методика и обработка для интеграции в WMS решения. Тестировалось на 1С 8.3.14.1565.

3 стартмани

24.06.2019    17681    informa1555    17    

1С:Ассемблер. Немного летнего веселья!

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

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

1 стартмани

21.06.2019    30977    Evil Beaver    143    

Новый запрос и новая таблица значений как функции Промо

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

Предлагается две простые функции, использование которых уменьшает объем кода в конфигурациях на платформе «1С:Предприятие 8». Эти функции можно добавлять к своему общему модулю, что сделает процесс программирования более эффективным.

1 стартмани

27.11.2012    45631    ildarovich    46    

Еще раз о рабочих днях. Быстрый способ расчета в запросах

Практика программирования Математика и алгоритмы Разработка v8 Абонемент ($m)

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

1 стартмани

20.06.2019    9496    Alxby    11    

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

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

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

1 стартмани

12.06.2019    32100    Hatson    31    

Графики работы из БСП

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

Не очень давно на канале 1С:БСП была опубликована заметка по использованию Графиков работы и Календарных графиков.

1 стартмани

23.05.2019    3558    fenixnow    0    

Уровни, глубина, прародители, циклы и аналоги запросом Промо

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

В продолжение публикации «Транзитивное замыкание запросом» [http://infostart.ru/public/158512/] добавлены другие варианты использования того же приема. Приведены запросы для быстрого определения уровней всех элементов справочника, максимальной глубины справочника, прародителей произвольных элементов справочника, запрос для быстрого определения циклов (на примере справочника спецификаций «1С:Управление производственным предприятием») и определения множеств аналогов номенклатуры (также на примере конфигурации «1С:Управление производственным предприятием»).

1 стартмани

13.11.2012    114849    ildarovich    98    

Создание внешней печатной формы в формате документа Word

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

В статье написано, как создать внешнюю печатную форму (для конфигураций с БСП) в формате Word.

1 стартмани

17.05.2019    17109    ВикторП    22    

Поле адреса в своем справочнике на примере 1С:Бухгалтерия 3

Практика программирования Разработка v8 v8::БУ БП3.0 Россия Абонемент ($m)

В публикации описано, как добавить поле адреса в свой справочник, чтобы вводить адрес через адресный классификатор.

1 стартмани

17.05.2019    6413    vasilievil    4    

Пример настройки шаблонов и реализации печати отчетов в документ MS Word используя функциональную часть "Библиотеки Стандартных Подсистем 1С" (БСП)

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

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

1 стартмани

23.04.2019    7151    olegpkc    11    

Неоплаченные долги при распределении оплаты по правилу ФИФО одним запросом и намного быстрее, чем Вы думали Промо

Практика программирования Дебиторская и кредиторская задолженность Дебиторская и кредиторская задолженность v8 v8::СКД КА1 УТ10 УПП1 УУ Абонемент ($m)

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

1 стартмани

28.02.2014    69234    ildarovich    129    

Ops средствами 1С:Предприятие

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

В статье описан программный пакет "Автоматизация ИТ-процессов" (АИТП), позволяющий автоматизировать задачи по администрированию, управлению и обслуживанию ИТ-инфраструктуры.

1 стартмани

23.04.2019    17842    blackhole321    28    

1C + Python + Django Rest Framework + Vue.js. Опыт несложной full-stack разработки

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

В этой статье мы рассмотрим путь и основные моменты создания небольшого вэб-сервиса, который мы называем "Онлайн Прайс-лист". Выгрузка из 1С, бэкенд, фронтенд, получение заказов в 1С.

1 стартмани

22.04.2019    36067    riposte    66    

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

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

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

05.04.2019    11928    artkor    1    

Транзитивное замыкание запросом Промо

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

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

1 стартмани

29.10.2012    88119    ildarovich    120    

[EnterpriseData] Антисвертка характеристик номенклатуры при выгрузке в Бухгалтерию

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 v8::ПВХ КД УНФ БП3.0 Россия БУ Абонемент ($m)

Рассмотрена выгрузка каждой пары значений Номенклатура - Характерстика из УНФ 1.6 в отдельную номенклатуру в Бухгалтерию 3.0 путём доработки правил обмена в формате EnterpriseData.

1 стартмани

27.03.2019    5186    nforce    6    

Интеграция 1С и SharePoint

Практика программирования Разработка v8 УНФ ДО ERP2 БП3.0 УТ11 УХ КА2 Россия Абонемент ($m)

Заказчики поставили задачу автоматизации согласования заявок на оплату в программе 1С:Бухгалтерия предприятия 3.0. Согласно ТЗ, данные должны подтягиваться из действующей электронной системы документаоборота на MS SharePoint (в дальнейшем СЭД MS SP).

1 стартмани

22.03.2019    5969    -I-    5    

Легкий "тюнинг" УТ 10.3

Практика программирования Разработка v8 v8::ОУ УТ10 Россия УУ Абонемент ($m)

Вариант программной реализации изменения форм типовых объектов для конфигурации Управление торговлей 10.3.

1 стартмани

15.03.2019    4671    pm74    6