Отладка сложных отчетов на СКД

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

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

Отладка схема СКД отчет консоль запрос сложный "внешние наборы данных" oadExternalDataProcessorOrReportFromFiles DumpExternalDataProcessorOrReportToFiles

Расширение для отладки сложных отчетов на СКД (в т.ч. для собираемых программно "на лету") и быстрого перехода к отладке таких отчетов в консоли запросов и отчетов на СКД.

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

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

Подключаем расширение, перезапускаемся, появляется подсистема "Отладка СКД"

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

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

 -"ОсновнойНабор"(запрос);

- "ПросроченнаяЗадолженность" (таблица значений);

- "ДанныеПервичныхДокументов" (запрос).

I  Шаги для перехода к отладке отчета в консоле запросов

  1. Определим, где ставить точку остановки, используя замер производительности.
  2. В указанной точке вызовем функцию для получения структуры запроса одного из набора данных с параметрами.
  3. Перейдём в консоль запросов и выполним запрос.

 

1. Определяем место точки остановки отладки в Конфигураторе

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

Включаем "Замер производительности" и нажимаем "Сформировать" в отчете. Отключаем "Замер производительности", смотрим и ищем нужное место

 

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

2. Получаем запрос с  установленными параметрами в виде XML

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

ОтладкаСКД.ПолучитьЗапросНабора(СхемаКомпоновкиДанных,КомпоновщикНастроек,"ОсновнойНабор")

ОтладкаСКД.ЗапросВСтрокуXML(ОтладкаСКД.ПолучитьЗапросНабора(СхемаКомпоновкиДанных,КомпоновщикНастроек,"ОсновнойНабор"))

Видим, что в 1-ой записи получили запрос набора данных "ОсновнойНабор" (тип "Запрос"), а во 2-ой тот же запрос набора данных "ОсновнойНабор" (тип "Запрос") в XML.

Копируем строку XML и запускаем консоль запросов

3. В "Консоле запросов" выполняем запрос

Открываем "Консоль запросов" с ИТС https://its.1c.ru/db/files/1CITS/EXE/ExtReps/Unireps83/RequestConsoleManaged/RequestConsoleManaged.zip, я её включил в расширение.

Вставляем скопированную строку XML в текст запроса (хотя это не совсем текст запроса, но это трюк консоли) и нажимаем в "Еще" "Заполнить из XML"

И о чудо ! Строка ХМL превратилась в текст запроса и в параметры с установленными значениями.

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

Нажимаем "Выполнить"

Запрос выполнился, всё работает, дальше уже разбираемся с запросом.

 

II  Шаги для перехода отлаживать отчет в консоли отчетов СКД

  1. Определим, где ставить точку остановки, используя замер производительности.
  2. В указанной точке вызовем функцию для получения схемы компоновки в XML и настроек компоновщика в XML.
  3. Перейдём в консоль отчетов СКД и добавим там отчет, вариант отчета.

1.Определим, где ставить точку остановки, используя замер производительности

Этот шаг ничем не отличается от ранее описанного для работы с консолью запросов

2.Получение схемы компоновки данных и настроек компоновщика в XML

Поставив точки остановки и остановившись при выполнении отчета, пишем в "Табло отладки"

ОтладкаСКД.ЗначениеВСтрокуXML(СхемаКомпоновкиДанных)

ОтладкаСКД.ЗначениеВСтрокуXML(КомпоновщикНастроек.ПолучитьНастройки())

Получаем 2 строки XML:

 - Схема компоновки данных

 - Настройки компоновщика (вариант отчета)

Копируем эти строки в 2 файла. Создаём здесь в конфигураторе 2 текстовых файла и сохраняем например "СхемаСКД.txt" и "НастройкиСКД.txt"

3. Консоль отчетов СКД и добавим там отчет, вариант отчета.

Открывает стандартную консоль отчетов СКД с ИТС https://its.1c.ru/db/files/1CITS/EXE/ExtReps/Unireps83/DCSConsole/DCSConsole.zip, я её добавил в подсистему.

Делаем "Добавить отчет" и кнопку "Загрузить из файла", выбираем файл "СхемаСКД.txt"

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

Всё готов отчет, все параметры и настройки заданы.

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

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

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

Как это делаем по шагам:

 1. Отладкой находим место, где эти таблицы внешних наборов собираются и передаются на выполнение.

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

 2. Выгружаем эти таблицы в XML

С помощью функции ОтладкаСКД.ВнешниеНаборыДанныхВXML , конвертируем переменную ВнешниеНаборыДанных в  XML. Сохраняем эту строку в текстовый файл, например ВнешниеНаборыСКД.txt

 3. Загружаем внешние наборы данных в консоль , выполняем отчет.

Теперь возвращаемся в консоль отчетов СКД из расширения и вызываем пункт "Внешние наборы данных" и выбираем файл ВнешниеНаборыСКД.txt

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

Закрываем окно и нажимаем НАКОНЕЦ "Сформировать"  и отчет формируется.

 

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

ОтладкаСКД.Клиент.СгенерироватьВнешнийОтчет(ПолныйПутьКОтчету = Неопределено, ДанныеСКД)

!!! Внимание: Данная функция работает только для сеанса "Толстый клиент"

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

 

ОтладкаСКДКлиент.СгенерироватьВнешнийОтчет("d:\tmp\externalOuter\СобранныйОтчет.erf",ОтладкаСКД.ПолучитьСтруктуруСДаннымиСхемыСКДВXML(СхемаКомпоновкиДанных,КомпоновщикНастроек.ПолучитьНастройки(),ВнешниеНаборыДанных))

Далее отчет можно запускать как отдельный внешний отчет.

 

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

На текущий момент перечень функций в расширении:

Функция ПолучитьМакетаКД - Возвращает макет выполнения компоновки данных

Функция ПолучитьЗапросНабора - Возвращает запрос с текстом запроса и значениями параметров из компоновщика

Функция ПолучитьЗапросыНаборов  - Возвращает структура запросов всех наборов данных с примененными настройками и значениям параметров компоновщика

Функция ПолучитьРезультатЗапросаНабора - Возвращает результат запроса набора данных с примененными настройками и параметрами компоновщика

Функция ПолучитьРезультатыЗапросовНаборов - Возвращает структуру результатов запросов всех наборов данных схемы компоновки данных с примененными настройками компоновщика

Функция ТабДокВXML - Возвращает результат выполнения СКД в табличный документ в XML, далее табличный документы можно получить обработкой "Табличный документ(Отладка СКД)", включенной в расширение

Функция ПолучитьТабДок - Возвращает результат выполнения СКД в табличный документ

Функция ПолучитьТЗ - Возвращает результат выполнения СКД в таблицу значений

Функция ПолучитьДЗ - Возвращает результат выполнения СКД в дерево значений

ВнешниеНаборыДанныхВXML - возвращает таблицы для внешних наборов данных в XML

СгенерироватьВнешнийОтчет(ПолныйПутьКОтчету, ДанныеСКД) - выгружает во внешний отчет отлаживаемый отчет со всеми настройками.

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

Функция ЗначениеВСтрокуXML

Функция ЗначениеИзСтрокиXML

Функция ЗапросВСтрокуXML

Ещё чуть-чуть доработана "Консоль запросов", добавлено при создании параметров поддержка типов "Массив", "Список значений", "Стандартный период". Без этого может выдавать ошибку по кнопку "Заполнить из XML" при определенных параметрах компоновщика.

 

Тестировался пример на платформе 1С:Предприятие 8.3 (8.3.12.1616)

Бухгалтерия предприятия, редакция 3.0 (3.0.67.43)

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

Наименование Файл Версия Размер
Отладка сложных отчетов на СКД (расширение):

.cfe 184,83Kb
92
.cfe 184,83Kb 92 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. genayo 28.12.18 06:37 Сейчас в теме
"в консоле запросов"?
_qqq; nbondarenko; user764477; sergathome; +4 Ответить
4. sergathome 28.12.18 09:50 Сейчас в теме
(1)
Отчеты на СКД в типовых решениях встречаются очень сложными

Упал под стол. Люблю русскаго языка ! Аффтар жжот !

ЗЫ Пытался читать дальше - ниасилил. автор, сходи в школу штоле, спел чекер поставь... Ну ТАКОГО неуважения к читателю я давно не видел.
kittwell; Andreeei; _qqq; boln; user764477; +5 11 Ответить
5. genayo 28.12.18 09:56 Сейчас в теме
(4) Не, правильно Велик и могуч русский языка :))
user764477; Serg3141; +2 2 Ответить
6. sergathome 28.12.18 09:58 Сейчас в теме
(5) Велик могучим русский языка (с) А.Иванов. Уж если на то пошло. ;)

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

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

Зеленый травк ложится под ногами,
И сам к бумаге тянется рука,
И я шепчу дрожащие губами:
«Велик могучим русский языка!»

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

Шуршат зверушки, выбежнув навстречу,
Приветливыя лапками маша:
Я среди тут пробуду целый вечер,
Бессмертные творения пиша.

Но, выползя на миг из тины зыбкой,
Болотная зеленовая тварь
Сувает мне с заботливой улыбкой
Большой Орфографический словарь.

(с) Александр Иванов

Автору топика посвящается.
kittwell; anatoliy.kichuk; Valerich; _qqq; Tangram; sansys; Lumis; FreeArcher; DoctorRoza; SanchoD; Serg3141; TMV; RBC159; user774630; wowik; the1; Albert_2008; Йожкин Кот; +18 2 Ответить
15. KazanKokos 8 29.12.18 16:15 Сейчас в теме
(6) Где то на лурке была статья про анальную сексуальность грамар-наци. Автор написал много слов и просто сделал опечатки. )
Semyonat; sergathome; +2 1 Ответить
18. sergathome 30.12.18 15:31 Сейчас в теме
(15) ОК, зетс райт. Но мину-сователи-то...

[ ] - место для дополнительного минуса
19. acanta 30.12.18 15:45 Сейчас в теме
(18) Любите смотреть кино - полюбите и рекламу...
Прикрепленные файлы:
sergathome; +1 Ответить
21. boln 1031 30.12.18 22:07 Сейчас в теме
(6) Эт фигня.
С НАСТУПАЮЩИМ УРА !!

Он был московский алкоголец
И даже ванну не имел
Она же с роду комсомолец
И вся полна суровных дел !!

Однажды случей приключился
На 31 декабря
С друзьями в бане он на пился
И стал зелёная сопля !!

Они ехидски по шутили
Сменяв товарищу жильё
И оказался он в квартире
Прям на постели у неё !!

Она при шла и стала плакать
За что мне Боги это всё
А он воняит как собака
И маты разные несёт !!

Со рвал обои и картины
Везде на пукал на дышал
Пришол жених её ревнивный
И во своясе убежал !!

А он чего ты при ципилась
Орёт на целый Ленинград
Но тут она в него влюбилась
И даже зделала салат !!

Он бросил пить с того момента
И стал вобще как огурец
Потом на речи президента
Он ей признался на конец !!

И туд- же Боги Поднебеси
Блогословили иху связь
Потом прошол медовый месец
И дочка Лиза родилась !!

С тех пор они друг друга любят
А таг- же тёща и свекровь
Я призываю добры люди
Давайте выпьем за Любовь !!

https://m.vk.com/wall-59599461_442965
sergathome; +1 1 Ответить
2. Бэнни 133 28.12.18 09:31 Сейчас в теме
Можно более быстро и без лишних движений воспользоваться Инструментами разработчика от TormozIT. Там отладить можно все что угодно
zqzq; Student1C; deaddy64; user764477; mai_k; CSiER; tormozit; SergSergWolf; alsan; abadonna83; json; +11 Ответить
3. leosoft 149 28.12.18 09:41 Сейчас в теме
(2) Бэнни, а можете статью написать также на конкретном примере?
35. tormozit 6229 24.02.19 00:22 Сейчас в теме
(3) Сделал свежее видео https://youtu.be/qVGXWU8w1W0
ABudnikov; CbIHok; Крококот; +3 Ответить
7. buganov 156 28.12.18 11:26 Сейчас в теме
(2) и под УФ???
Я, видимо, пропустил релиз ИР под управляемое приложение
LeonBBBBBB; user717534; TreeDogNight; Rustig; +4 Ответить
9. Бэнни 133 28.12.18 12:05 Сейчас в теме
(7) я всегда для этого инструмента использую обычное приложение. А для запуска отчета на отладку пользуюсь обычным приложением. Но есть возможность работы подсистемы в толстом клиенте управляемые формы
http://forum.infostart.ru/forum9/topic173707/message1809453/#message1809453
Student1C; +1 2 Ответить
25. tormozit 6229 08.01.19 10:24 Сейчас в теме
(7) ИР выпускается в 3-х вариантах: подсистема, портативный и расширение. В управляемом приложении не работает только портативный. Но в управляемом приложении используются обычные формы.
26. tormozit 6229 08.01.19 10:33 Сейчас в теме
(2) Да. В ИР такая задача решается намного проще и универсальнее. Отладчик кстати строковые значения целиком не показывает и обрезает их примерно после 300К (точнее 320000) символов. Причем от разрядности приложения это не зависит. Поэтому если снимок данных для отладки превысит этот барьер (например при наличии больших входных временных таблиц запроса или наборов данных компоновки), то отладить предложенным в статье способом не выйдет. В ИР такой проблемы нет.
DrAku1a; deaddy64; Крококот; Бэнни; +4 Ответить
8. adapter 553 28.12.18 11:42 Сейчас в теме
хорошая статья, спасибо!
Gang031; alsan; +2 Ответить
11. w.r. 589 28.12.18 12:40 Сейчас в теме
Что за консоль запросов такая волшебная со вставкой из XML?
12. maxx 923 28.12.18 12:44 Сейчас в теме
(11)Стандартная консоль запросов с ИТС, в справке в этой консоли можно прочитать про кнопку "Заполнить из XML"
Rustig; alsan; user774630; w.r.; +4 Ответить
13. w.r. 589 28.12.18 13:14 Сейчас в теме
(12)

видимо пользовался более старой версией обработки, где не было такой функции. Скачал с ИТС новую версию. Спасибо!
14. mp40 10 29.12.18 01:02 Сейчас в теме
Спасибо за статью! Тоже брал итоговый запрос в режиме отладки. Но остальных хитростей не знал.
16. Rustig 1665 29.12.18 19:18 Сейчас в теме
(0) представляю какую огромную работу выполнил автор, затем приложил усилия - чтобы подробно и с картинками продемонстрировать свой метод! спасибо за труд! окупится сторицей!
Yashazz; asdas9111; +2 Ответить
17. maxx 923 30.12.18 13:15 Сейчас в теме
(16) Спасибо за поддержку. Конечно извиняюсь за опечатки, но те, кто статьи пишет на Infostart (а не просто тролит ), знает, что там собственный редактор, где эти опечатки, ошибки не показываются, а писать сначала в Word а потом переносить на Infostart это неудобно, если статья со скриншотами, картинками. А хотелось успеть "сдать" статью до Нового года!.
32. Jestery 22.02.19 08:50 Сейчас в теме
(17) Неплохой прием. Спасибо за труд. Не обращайте внимание на троллей.
20. user619273_alevtina 30.12.18 18:34 Сейчас в теме
22. le_ 207 02.01.19 13:11 Сейчас в теме
Автор, не могли бы вы уделить 10 минут времени на то, чтобы медленно и внимательно прочитать статью и исправить орфографические ошибки и опечатки?
Статья годная, но ашипка напригаит читать сделать хароший отчёту.
23. maxx 923 08.01.19 09:43 Сейчас в теме
(22) Исправил ошибки в тексте
24. maxx 923 08.01.19 09:44 Сейчас в теме
Добавил возможность подгружать внешние наборы данных в консоле отчётов СКД, описано в статье.
27. maxx 923 16.01.19 10:14 Сейчас в теме
16.01.2019 Добавлена в расширение для отладки отчетов функция, которая позволяет во время отладки в Конфигураторе выгрузить отлаживаемый отчет во внешний отчет (в файл) со всеми настройками в момент точки остановки
28. LexSeIch 208 16.01.19 11:37 Сейчас в теме
Мир этому дому! Больше решений - хороших и разных! Автору за труд спасибо. А вообще, в споре истина и рождается: читаешь комментарии и видишь разные подходы для решения одной и той-же задачи, мнения и аргументы, а порой и интересная информация просто так, мимолётом, маленьким вкраплением проскакивает. Критика и обсуждения полезны конструктивные. ИМХО.
29. adapter 553 17.01.19 09:48 Сейчас в теме
отладка скд - быстрый способ:

1. точка останова на строке вида

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

2. в отладке получаем результат функции из бсп
ОбщегоНазначения.ЗначениеВСтрокуXML(МакетКомпоновки)

3. Консоль СКД из ИТС
без скд в xml и настроек варианта сразу помещаем текст из п.2 в окно
"Макет для табличного документа XML" \ Выполнить в табличный документ с текущим макетом

прим: Если Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")
то используем окно "Макет для коллекции XML"
Igorrrr; tiro; user874148; Jestery; salbey; Danil.Potapov; +6 Ответить
36. Jestery 12.03.19 23:08 Сейчас в теме
(29) Решил попробовать ваш вариант, скачал консоль СКД , так и не понял где там есть окно "Макет для табличного документа XML" , подскажите пож, если нетрудно подробнее по 3 пункту.
38. SanchoD 212 24.07.19 14:56 Сейчас в теме
(29)
отладка скд - быстрый способ:



Мне функция вернула обрезанную строку. Ну и естественно в консоли вылезла ошибка.
Как такие варианты обыгрывать?
39. maxx 923 24.07.19 15:48 Сейчас в теме
(38) Не понял о какой именно функции говорите. Поподробнее напишите.
40. SanchoD 212 24.07.19 16:00 Сейчас в теме
(39) Я про ОбщегоНазначения.ЗначениеВСтрокуXML(МакетКомпоновки)
Получил значение этой функции в отладчике оно заканчивается вот так:

" .....
Тогда (ЕстьNull(НаборДанных1.Доход13, 0) - ЕстьNull(НаборДанных1.Вычет, 0) - ЕстьNull(НаборДанных1.ВычетСтан..."

Т.е. не вывело весь текст. Отсюда и вопрос, как-то можно получить весь, не обрезанный текст возвращаемый этой функцией?
Ну чтобы дальше уже скормить ее консоли.
41. maxx 923 24.07.19 16:24 Сейчас в теме
(40) Скорее всего у вас очень большая схема. У отладчика есть ограничение на количество символов в строках переменных.

Думаю. вам надо обернуть эту функцию ещё в одну, которая скинет строку в текстовый файл.
Например, в общий модуль добавьте, еще одну функцию

Функция СохранитьТекстВФайл(ИмяФайла, ТекстСтрока)  Экспорт

 ТекстДок = Новый ТекстовыйДокумент;
 ТекстДок.ДобавитьСтроку(ТекстСтрока);
 ТекстДок.Записать(ИмяФайла);

  Возврат ИмяФайла;

КонецФункции
Показать


Тогда вызов будет в отладке как-то так
СохранитьТекстВФайл("d:\:debug.txt",ОбщегоНазначения.ЗначениеВСтрокуXML(МакетКомпоновки) )
42. SanchoD 212 24.07.19 16:32 Сейчас в теме
(41) Понял, спасибо. Тоже пришел к выводу, что надо в файл записывать. Искал готовую функцию в ЗУПе. Не нашел. Без расширения значит никак в типовых не обойтись.
30. TABEZI1234 24.01.19 08:59 Сейчас в теме
31. avz_1C 10 31.01.19 13:11 Сейчас в теме
33. German_Tagil 26 22.02.19 12:20 Сейчас в теме
дойдет дело до БП 3.0 - будем разбираться
34. maxx 923 22.02.19 12:23 Сейчас в теме
(33) БП 3.0 это пример был что в всем понятен, а так со сложными отчётами я прежде всего наоборотался в других конфигурациях в т.ч. и нетиповых, отраслевых
37. adapter 553 13.03.19 10:17 Сейчас в теме
43. Andy_NTG 5 24.10.19 14:36 Сейчас в теме
Вот эта строчка не работает: ОтладкаСКД.ПолучитьЗапросНабора(СхемаКомпоновкиДанных,КомпоновщикНастроек,"ОсновнойНабор");
Табло отладки ругается на то, что переменная ОтладкаСКД не определена.
44. Andy_NTG 5 24.10.19 16:06 Сейчас в теме
(43) С этим разобрался. Не подключил расширение, оказывается. Но возникла другая проблема в УТ 11.4:

Строка в табло: ОтладкаСКД.ЗапросВСтрокуXML(ОтладкаСКД.ПолучитьЗапросНабора(СхемаКомпоновкиДанных,КомпоновщикНастроек,"НаборДанных"))

Результат: {ОтладкаСКД ОбщийМодуль.ОтладкаСКД.Модуль(128)}: Значение не является значением объектного типа (Запрос)
45. maxx 923 24.10.19 16:21 Сейчас в теме
(44) может быть ваш набор данных в схеме СКД называется не "НаборДанных" а по другому
46. Andy_NTG 5 24.10.19 17:11 Сейчас в теме
(45) к сожалению, нет. Именно так и называется. Правлю как раз тот же отчёт в УТ 11.4, что и в презентации расширения.
47. Andy_NTG 5 25.10.19 13:51 Сейчас в теме
На УТ 11.4.10.62 и платформе 8.3.15.1700 не работает обработка, как и писал выше. Полезное расширение. Хочется решить проблему с его работоспособностью.
48. maxx 923 25.10.19 14:03 Сейчас в теме
(47) Сообщите строку кода, где вы делаете остановку в отладке и какой метод или что не работаете ?
49. Andy_NTG 5 25.10.19 14:59 Сейчас в теме
(48) Отчёт ДебиторскаяЗадолженность, Модуль объекта, процедура ПриКомпоновкеРезультата, строка 64 (МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиКомпоновкиДанных, ДанныеРасшифровки);
)
51. maxx 923 27.10.19 02:00 Сейчас в теме
(49)
(44)
ОтладкаСКД.ПолучитьЗапросНабора(СхемаКомпоновкиДанных,КомпоновщикНастроек,"НаборДанных")


Вы пытаетесть получить запрос у набора данных с именем "НаборДанных", который является не набор-запросом, а набор-объектом, поэтому и ошибка
54. Andy_NTG 5 27.10.19 13:34 Сейчас в теме
(51) Ваше расширение не работает для версии отчёта в УТ 11.4, получается. Либо нужно менять передаваемые параметры каким-то образом.
50. Andy_NTG 5 26.10.19 21:25 Сейчас в теме
Максим, не проверял работоспособность расширения ещё? Крутое расширение, но не работает, похоже.
52. maxx 923 27.10.19 02:02 Сейчас в теме
(50) ответил вам выше в (51)

и просьба писать точнее, не "не расширение не работает", а " у меня не работает ваше расширение на моём конкретном примере, похоже я что-то делаю не так или не разобрался"
53. Andy_NTG 5 27.10.19 13:33 Сейчас в теме
(52) просьба быть внимательнее. Именно расширение не работает, пока не доказано обратное. Я выполнил все инструкции по подключению. Версию платформы и конфигурации я так же указывал. И не разобрались с вопросом именно Вы или в том числе как минимум.
55. maxx 923 27.10.19 13:36 Сейчас в теме
(53)я проверил на УТ 11.4 последней версии, все работает
Andy_NTG; +1 Ответить
56. Andy_NTG 5 27.10.19 13:52 Сейчас в теме
(55) хорошо, я понял. Думаю, есть смысл уточнить в инструкции, как подключать набор-объект кроме набора-запроса.
57. cprit 436 26.12.19 13:25 Сейчас в теме
Добрый день!
Для обычных форм есть замечательный набор инструментов "Инструменты разработчика 1С", но его невозможно использовать в линуксе и в тонком и веб клиенте.

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

Использование этого пакета инструментов хотим сделать общедоступным(OpenSource), разработку вести через гитхаб с использованием EDT.

Можем ли мы включить в этот набор обработки(или часть идей и функционала) из этой публикации?

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

Ссылка на репозиторий с новыми инструментами https://github.com/cpr1c/tools_ui
58. Yashazz 3637 09.01.20 13:31 Сейчас в теме
Несмотря на поистине "аццкую" грамотность статьи, плюсую. Проделана немалая и весьма полезная работа, спасибо.
Оставьте свое сообщение

См. также

Расширение возможностей печати: Вывод произвольного нижнего и верхнего колонтитула Промо

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

Расширяем функционал вывода нижнего / верхнего колонтитула. Стандартно 1С имеет достаточно ограничений по выводу и наполнению колонтитулов содержимым, взять хотя бы такие, как вывод только текста и отсутствие ограничения на номер конечной страницы. А при разработке кода сталкиваешься с тем, что свой блок с нижним колонтитулом нужно прижимать к низу страницы. Казалось бы быстро решаемый вопрос, но и в нем есть нюансы. Сейчас я расскажу о том, как решалась эта задача. UPD 15.02.2018. Добавлен вывод верхнего колонтитула; Вывод колонтитулов на первой и последней странице управляется параметрами; Научился считать страницы: Добавлено заполнение переменных аналогичных стандартным из колонтитулов; Задаются форматы даты и времени. Ограничения прежние: 1. Повторно сформировать табличный документ после смены параметров страницы интерактивно.; 2. Передавать данные для более плотной печати как можно более мелко нарезанными кусками.

1 стартмани

29.12.2017    45153    32    agent00mouse    0    

Работа с запросами в 1С СКД. Отладка СКД

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

В предыдущем разделе мы изучали с вами особенности работы с запросами в СКД. Для изучения (отладки) работы различных схем компоновки данных я использовал консоль компоновки данных.

15.04.2020    3861    ProfessionStore    3    

Два способа реализации ABC-анализа контрагентов для БП 3.0

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

В данной статье рассматриваются 2 способа реализации ABC анализа контрагентов для конфигурации Бухгалтерия предприятия 3.0 (версия  3.0.75.109).

1 стартмани

17.03.2020    2980    9    Астиг    8    

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

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

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

1 стартмани

11.03.2020    2946    5    MaxxiMiliSan    7    

СКД: красивые надписи в заголовках колонок

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

Необходимо немного исправить вывод надписей в заголовках колонок, сделать более читаемый вариант. Как это сделать?

2 стартмани

27.02.2020    10959    7    wowik    36    

Примерная схема проведения документов (Механизм проведения) в ERP 2.5.x.x

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

Некий шаблон "общей" картины связи процедур выполняемых типовым механизмом проведения в ERP 2.5.

1 стартмани

27.01.2020    7316    12    s14adow    7    

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

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

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

1 стартмани

23.12.2019    4399    5    jump0    0    

Решение задач по мотивам статьи "30 задач. Странных и не очень"

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

Обработка по мотивам статьи: https://infostart.ru/public/1161686/

1 стартмани

04.12.2019    3720    2    batsy66    9    

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

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

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

1 стартмани

25.11.2019    7037    1    Isonic    8    

html + css + js в поле HTML документа 1С на примере решения задачи ханойских башен

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

Рассматривается пример использования html + css + js в полеHTMLдокумента 1с. Вызов функций javascript со стороны 1С с передачей параметров. Решение головоломки "Ханойская башня" с визуализацией в среде 1С.

1 стартмани

11.11.2019    7636    9    mangushov    0    

Инициалы имени иностранного сотрудника в ЗУП 3.1

Практика программирования Печатные формы документов v8 v8::СПР ЗУП3.x Россия Абонемент ($m)

Решение проблемы лишнего дефиса в двойном имени иностранного сотрудника с помощью простого расширения.

1 стартмани

10.10.2019    5924    0    accounting_cons    2    

Индикатор выполнения (прогресс-бар) с таймером остаточного времени выполнения (обычное приложение + УФ)

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

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

1 стартмани

08.10.2019    7016    14    slayer-ekb    5    

Формирование внешнего отчета в фоне

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

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

1 стартмани

07.08.2019    11136    7    partizand    14    

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

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

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

1 стартмани

05.08.2019    26613    26    masterkio    18    

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

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

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

1 стартмани

28.06.2019    9204    6    Isonic    14    

Пример печатной формы в Word для УТ 11.4, ERP. КА 2.4, подложка и колонтитулы

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

Пример внешней печатной формы с выводом в MS Word для УТ 11.4, КА 2, ERP 2.4, печатная форма печатается из документа "Заказ клиента". Для примера разобрано програмнное заполнение верхнего и нижнего колонтитулов, а также печать в качестве подложки - логотипа организации (печать картинки на заднем фоне, при этом у логотипа уменьшена яркость и он повернут на 45 градусов).

1 стартмани

30.05.2019    4472    17    DarkPinch222    5    

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

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

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

1 стартмани

17.05.2019    12251    14    artms    0    

Генерация внешнего отчета на основе варианта в "классической" консоли СКД

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

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

1 стартмани

16.01.2019    7364    21    maxx    21    

Шаблон кросс-таблицы с иерархией на СКД

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

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

1 стартмани

22.12.2018    11591    16    wizard.ilmir02    3    

Чат на управляемых формах

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

Чат для 1С на управляемых формах, для работы в браузере. Возможности: Есть общая комната Можно создавать открытые и закрытые комнаты Переписка между двумя пользователями (беседа) Протестировано на платформе 8.3.12.1714.

2 стартмани

14.12.2018    7048    11    panihinnv    14    

Печать QR кода

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

Простой пример печати QR кода.

1 стартмани

18.11.2018    9852    13    ah7777777    5    

Объединение нескольких печатных форм в один табличный документ

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

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

1 стартмани

17.11.2018    16385    7    echo77    6    

Отчет для демонстрации работы с программной расшифровкой СКД

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

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

1 стартмани

08.11.2018    8167    9    budidich    1    

Диаграмма Ганта и графическая схема сторонними средствами

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

Примеры формирования диаграммы Ганта и графической схемы в 1С сторонними средствами.

1 стартмани

01.11.2018    8134    6    no_betrayal    6    

И снова группировка столбцов в СКД

Практика программирования v8 v8::СКД УТ11 Россия Абонемент ($m)

В публикации описано создание отчета "Остатки по складам" с группировкой по строкам и столбцам.

1 стартмани

23.10.2018    13907    1    vasilievil    9    

Параметризованные заголовки полей СКД

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

Доработанный шаблон типового отчета, который это позволяет менять заголовки полей в зависимости от значений параметров.

2 стартмани

21.09.2018    9559    3    echo77    3    

Преобразование отбора компоновки данных к линейному условию для запроса

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

Описание механизма преобразования интерактивного отбора компоновки данных в условие для использования в запросе, данный механизм можно использовать в конфигурации Бухгалтерия предприятия 3.0 и везде в управляемых приложениях, где используется регистр бухгалтерии "Хозрасчетный", также можно адаптировать к любому источнику данных

10 стартмани

10.09.2018    5223    2    scarabey2006    4    

Табель учета рабочего времени или как создать календарик в табличной части документа

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

Мой велосипед по созданию документа учета рабочего времени. Обработка предназначена для Управляемых форм, тестировалась на Управление нашей фирмой, редакция 1.6 (1.6.10.44),1С:ERP Управление предприятием 2 (2.4.4.124) платформы (8.3.12.1412),(8.3.11.2867)

1 стартмани

24.08.2018    4932    3    Doreng    2    

Вывод результата отчета СКД в разные табличные документы

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

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

1 стартмани

21.08.2018    15356    13    Dipod    4    

[Механизм интерфейса] Интерактивный выбор даты

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

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

1 стартмани

16.08.2018    12101    8    rpgshnik    18    

Линия тренда в диаграмме на графике "Биржевая свеча"

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

Отчет демонстрирует, как можно отразить линию тренда на биржевом графике типа "свеча" средствами 1С.

1 стартмани

11.08.2018    7585    19    Scop    3    

Горячая клавиша для открытия ячеек таблиц, отчетов

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

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

1 стартмани

10.08.2018    6813    2    leobrn    0    

Часы в 1С

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

Часы в 1с с использованием продвинутого рисования

1 стартмани

25.07.2018    6169    3    Plash    7    

Множество Мандельброта на 1С

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

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

1 стартмани

20.03.2018    4784    3    kylix90    3    

Таблица значений в параметрах СКД

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

Шаблон отчета на СКД, где в качестве параметра передаётся таблица значений.

1 стартмани

31.01.2018    10635    27    skydivespb    4    

Пример реализации технологии Блокчейн в 1С 8.3

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

Конфигурация предназначена для простого и понятного описания технологии блокчейн. Имеется 2 вида документов: Приходная накладная и Расходная накладная. Их постоянно кто-то создает и пробует изменить. В документе Блокчейн хранится контрольная сумма каждого документа, и их тоже какое-то чужое лицо может изменить и поправить. Так в базе 1С хранится информация с нулевым уровнем доверия.

10 стартмани

26.01.2018    11330    1    astracrypt    2    

Пример решения расчетной задачи с табелем (для 1С:Специалист)

Практика программирования Решение задач на 1С:Специалист Учет рабочего времени Учет рабочего времени v8 v8::СПР УУ Абонемент ($m)

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

1 стартмани

25.01.2018    18140    7    perepetulichka    3    

Подпись в мобильном приложении

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

Подпись клиента в вашем мобильном приложении.

1 стартмани

04.01.2018    16070    48    onec.developer    7    

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

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

Данная небольшая статья (и обработка для использования в практике своей работы) предлагается вниманию начинающим и опытным программистам 1С в качестве небольшого пособия по освоению программирования на платформе 1С. Есть такая книжка «1С: Предприятие Опыты программирования», написал ее небезысвестный в узких одинэсовских кругах О. В. Бартеньев (издательство «Диалог-МИФИ», 2004 г.), так вот, при внимательном ее изучении у пытливого пользователя возникает множество вопросов. Предлагаемая обработка позволяет решить некоторые из них.

1 стартмани

06.10.2017    10340    8    vik2006    12