Описание обработки "Консоль отчетов" с СКД и не только...

07.11.08

Разработка - Работа с интерфейсом

Данный блог является прямым продолжением и развитием проекта http://infostart.ru/profile/15778/projects/2795/ и попыткой создания руководства по консоли отчетов с применением системы компоновки данных
ВСТУПЛЕНИЕ:

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

НАЧНЕМ С КОНЦА:
Для того чтобы понять где применить обработку из проекта необходимо знать что умеет СКД и как это реализовать, но так как мне длизко по духу решение практических задач и если я сейчас начну рассказывать теорию то половина останется непонятым или забытым, поэтому хочу разобрать несколько практических примеров, а потом расскажу о прелестях СКД.

ПРИМЕР 1:

Наверно все знают универсальные типовые обработки такие как "Групповая обработка справочников и документов" (входящая в состав конфигураций) и "Универсальный подбор и обработка объектов" которая есть на диске ИТС. Часто я мечтал их объеденить, так как последняя имеет большой функционал по обработке объектов но умеет выбирать только по одному виду объектов. Остальные обработки не будем рассмаривать, скажу только одно, ни одна не подошла мне полностью каято чегото не умеет.
Условие задания:
Мы заметили ошибку в проведении документа(ов) из за которой неверно делались движения регистра например в ЗУП "ВзаиморасчетыСРаботникамиОРганизаций"
***
!!! Замечание: Несложно взять любой другой регистр влюбой конфигурации, это замечание будет относится и для всех примеров, примеры прозрачные и могут относится к любой конфигурации.
***
и исправили ее. Отлично, но теперь нам надо перепровести все документы (или за период) связанные с этим регистром. В этом и будет заключаться наша простая задача.

Вариантов несколько:
1. Использовать универсальные обработки.
Но в первой обработе придется руками отмечать самим все документы у которых есть движения по этому регистру что не совсем удобно потому что по нашему регистру их 24 и все на память не упомнишь. Во второй вообще заколебешься перебирать по одному документы. Вот и получается, что универсальные обработки не совсем уж и универсальные и это еще самый простой пример из практики.
2. Написать обработку самому. На самом деле написать такую обработку не сложно, но связано с ошибками (результат выборки мы можем посмотреть только в отладчике и не в очень уобной форме). Ко всему прочему обычно я такие обработки относил в папку Temp и удалял. Как иногда обидно что помнишь что когда то писал обработку, но написать заново легче чем найти.
3. Попробуем использовать обработку из проекта. В ней требуется написать запрос который делается в конструкторе за 3 секунды если не писать условий если писать чуть больше:
ВЫБРАТЬ
ВзаиморасчетыСРаботникамиОрганизаций.Регистратор
ИЗ
РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций КАК ВзаиморасчетыСРаботникамиОрганизаций
ГДЕ
ВзаиморасчетыСРаботникамиОрганизаций.Период МЕЖДУ НАЧАЛОПЕРИОДА(&Период, МЕСЯЦ) И КОНЕЦПЕРИОДА(&Период, МЕСЯЦ)

И написать код по перепроведению объектов, но над этим придется потрудится ))))):
Для каждого СтрокаДерева Из ДеревоОбъектов Цикл
СтрокаДерева.Регистратор.ПолучитьОбъект().Записать(РежимЗаписиДокумента.Проведение);
КонецЦикла;

где: ДеревоОбъектов - итог работы СКД (обрабатываемое нами дерево), Регистратор - наименование поля полученного нами дерева в данном случае документа регистратора. Далее получаем объект и записываем его с проведением.

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

ОПИСАНИЕ: Закладка "Наборы данных"

На закладке присутствует окошко с деревом наших наборов данных и две кнопочки над ним: 1) "Добавить набор данных" - добавляет один из наборов данных
-"Запрос" - уже знакомый многим запрос с конструктором и всеми сопутствующими делами. Конструктор запроса можно вызвать кнопкой "Конструктор запроса..." находящейся справа над полем "Запрос", которое заполняется текстом запроса если выделенный в левом окошечке набор даннх является запросом (!!! Замечание: Если при нажати на кнопку "Конструктор запроса..." в окошке "Запрос" выделена определенная область, то конструктор пытается отрыть именно эту область, применяется если необходимо открыть и отредактировать например только вложенный запрос).
-"Объект" - при использовании данного набора данных нам придется написать имя внешнего набора данных переданных например через ПроцессорКомпоновкиДанных.Инициализировать(, , , ) придется описать и все реквизиты передаваемые во внешних данных и используемые в СКД.
-"Объединение" - название говорит само за себя: данный вид позволяет объединять несколько наборов данных "запрос" и/или несколько надоров данных "объект" в один набор данных.
2) "Удалить текущий" - удаляет текущий набор данных

НЮАНСЫ И ТОНКОСТИ при работе с Консолью отчетов, СКД, запросами

- Если Вы рассчитываете выражение и при каких либо условиях одно из составляющих окажется NULL (Реквизит1 - Реквизит2, например если Реквизит2 = NULL) то в результате расчета Вы получите так же NULL. Необходимо учитывать такие ситуации и например применять конструкцию ЕСТЬNULL(Реквизит2, 0). ПРОДОЛЖЕНИЕ СЛЕДУЕТ...

P.S. Времени не фонтан так что извините что не все сразу...

См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61793    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

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

5000 руб.

14.01.2016    54398    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

2400 руб.

29.06.2020    16695    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10734    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    9607    151    acces969    31    

118

Модель состояния для MVC

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

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3665    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12077    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. rasswet 82 24.11.08 12:57 Сейчас в теме
2. coder1cv8 3468 24.11.08 13:40 Сейчас в теме
3. WiseSnake 1519 24.11.08 13:53 Сейчас в теме
(1)(2) Извините что задерживаю продолжение, тут проект доделываю... времени очень мало. Продолжение будет скоро. Может на следующей неделе.
4. kurator1C 24.02.09 09:57 Сейчас в теме
Желающим изучить СКД рекомендую книжку:
http://v8.1c.ru/metod/books/book.jsp?id=132
любители холявы могут найти её здесь
http://forum.ru-board.com/topic.cgi?forum=93&topic=0259&start=0&limit=1&m=1#1

называется "Разработка сложных отчетов в 1С-Предприятии 8 (система компоновки данных) (Хрусталева, 2008)".
Кижка хорошая, за два вечера СКД становится ясной и понятной.
Однако...

В данной книге мало уделенно внимание работе с СКД средствами встроенного языка, хотя для толчка примеры есть.
Evg-Lylyk; +1 Ответить
6. WiseSnake 1519 25.02.09 11:44 Сейчас в теме
(4) Изучил эту книжку. Книжка хорошая но не вряд ли стоит выкладывать прямые ссылки. В СКД еще много мелочей которые надо знать.
(5) Это не в этой ветке. У Вас нет библиотеки картинок. Я устанавливаю картинки на кнопки. Спасибо! Учту этот момент.
5. kurator1C 24.02.09 11:29 Сейчас в теме
Ошибки при открытии:

1. {Форма.Форма(1309)}: Поле объекта не обнаружено (ЕстьОповещение)
КнопкаЗамер.Картинка = БиблиотекаКартинок.ЕстьОповещение;
2.{Форма.Форма(1314)}: Поле объекта не обнаружено (Настройка)
КнопкаНастроек.Картинка = БиблиотекаКартинок.Настройка;

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

Полез изучать код, мож тада пойму...
7. ZhakeKZ 04.05.17 11:13 Сейчас в теме
Здравствуйте,

Есть подробная инструкция как использовать Консоль СКД, который сейчас есть в ИТС ?
Я на диске ИТС нашел для управляемого, а мне нужен для обычного.
8. WiseSnake 1519 05.05.17 11:39 Сейчас в теме
(7) Консоль для меня уже не актуальна. Я пользуюсь другими разработками. Я думаю выкладывать свою разработку, но она будет немножко платная.
9. Sinsinmin 24.05.17 09:26 Сейчас в теме
(7) Пользуюсь Инструментом разработчика с сайта. http://devtool1c.ucoz.ru/. Правда придётся подразобраться)))) но очень удобно в итоге.

(8) Привет Алексей))
10. ZhakeKZ 24.05.17 10:20 Сейчас в теме
Я понял в чем была проблема, теперь умею пользоваться стандартным консолем СКД из ИТС.
Оставьте свое сообщение