Вертикальная автофиксация для СКД

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

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

61
В СКД очень не хватает возможности автофиксации строк. Обусловлено это невозможностью однозначно определить их количество в общем случае. Однако в большинстве случаев это можно сделать

Обращаю ваше внимание, что приведенная процедура работает не всегда корректно. Но в большинстве случаев она сделает свое дело.

// Выводит результат СКД с установкой вертикальной автофиксации.
// Параметры:
// Таб - ТабличныеДокумент, ПолеТабличногоДокумента - куда выводим отчет;
// ПроцессорКомпоновкиДанных - ПроцессорКомпоновкиДанных;
// ЭлементыРасшировки - ЭлементыРасшифровкиКомпоновкиДанных;
// МассивИгнорируемыхПолей - Массив, *Неопределено - массив имен игнорируемых полей;
// РазрешитьПрерывание - Булево, *Истина.
//
Процедура ЛксВывестиРезультатКомпоновкиСАвтофиксациейСтрок(Таб, ПроцессорКомпоновкиДанных, ЭлементыРасшировки,
 Знач МассивИгнорируемыхПолей = Неопределено, РазрешитьПрерывание = Истина) Экспорт 
 
 ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
 ПроцессорВывода.УстановитьДокумент(Таб);
 ПроцессорВывода.НачатьВывод();
 ФиксацияВыполнена = Ложь;
 Если МассивИгнорируемыхПолей = Неопределено Тогда
  МассивИгнорируемыхПолей = Новый Массив;
 КонецЕсли; 
 Пока Истина Цикл
  ЭлементРезультатаКомпоновкиДанных = ПроцессорКомпоновкиДанных.Следующий();
  Если ЭлементРезультатаКомпоновкиДанных = Неопределено Тогда
  Прервать;
  КонецЕсли;
  
  // Автофиксация
  Если Не ФиксацияВыполнена Тогда
  Для Каждого ЗначениеПараметра Из ЭлементРезультатаКомпоновкиДанных.ЗначенияПараметров Цикл
  Если ТипЗнч(ЗначениеПараметра.Значение) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") Тогда
  ЗначенияПолейРасшифровки = ЭлементыРасшировки[ЗначениеПараметра.Значение].ПолучитьПоля();
  Для Каждого ЗначениеПоляРасшифровки Из ЗначенияПолейРасшифровки Цикл
  Если МассивИгнорируемыхПолей.Найти(ЗначениеПоляРасшифровки.Поле) = Неопределено Тогда
  Таб.ФиксацияСверху = Таб.ВысотаТаблицы;
  ФиксацияВыполнена = Истина;
  Прервать;
  КонецЕсли;
  КонецЦикла;
  Если ФиксацияВыполнена Тогда
  Прервать;
  КонецЕсли;
  КонецЕсли;
  КонецЦикла;
  КонецЕсли;
  
  ПроцессорВывода.ВывестиЭлемент(ЭлементРезультатаКомпоновкиДанных);
  Если РазрешитьПрерывание Тогда
  ОбработкаПрерыванияПользователя();
  КонецЕсли; 
 КонецЦикла;
 ПроцессорВывода.ЗакончитьВывод();
 
КонецПроцедуры // ЛксВывестиРезультатКомпоновкиСАвтофиксациейСтрок

61

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

Комментарии
Избранное Подписка Сортировка: Древо
2. tormozit 5641 25.12.08 22:22 Сейчас в теме
Вот параметры вывода, которые влияют на корректность работы:
Выводить заголовок
Выводить параметры данных
Выводить отбор

Для каждого надо делать "смещение". Попробую решить эту проблему
3. tormozit 5641 25.12.08 22:49 Сейчас в теме
Сделал намного более интеллектуальный анализ. Теперь (2) не влияет на корректность определения.
12. Fargoth 03.09.09 20:13 Сейчас в теме
(3) А как бы листинг намного более интеллектуального анализа получить?
13. tormozit 5641 04.09.09 09:47 Сейчас в теме
(12) Он здесь (синим цветом).
14. Fargoth 04.09.09 16:53 Сейчас в теме
(13) А чего то оно мне при использовании вывода параметров не корректно высоту шапки определяет...
4. alexeys81@ukr.net 15.01.09 17:34 Сейчас в теме
Я чо-то туплю. А как получить ПроцессорКомпоновкиДанных, чтобы передать его в процелуру ЛксВывестиРезультатКомпоновкиСАвтофиксациейСтрок()?
5. alexeys81@ukr.net 15.01.09 18:18 Сейчас в теме
Сорри, уже вдуплил. Отлично всё работает!
6. alexeys81@ukr.net 16.01.09 10:52 Сейчас в теме
Ещё вопросик. Отчёт выводится, строки фиксируются, но пропала расшифровка. Когда кликаю по какой-либо ячейке, чтобы расшифровать, никакое меню не выпадает. Выскакивает окно с кодом элемента. Что делаю не так? Вызываю указанную процедуру из отчёта след образом:

Перем ДанныеРасшифровки;
ЭлементыФормы.Результат.Очистить();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровки);
ЛксВывестиРезультатКомпоновкиСАвтофиксациейСтрок(ЭлементыФормы.Результат, ПроцессорКомпоновкиДанных, ДанныеРасшифровки.Элементы);
7. therva 54 31.05.09 21:37 Сейчас в теме
(6) Переменную "ДанныеРасшифровки" нужно создавать конструктором:

Процедура ДействияФормыДействиеСформировать(Кнопка)
// Вставить содержимое обработчика.

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;


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


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

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,ДанныеРасшифровки);

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

КонецПроцедуры
8. anig99 2704 03.06.09 09:39 Сейчас в теме
Ещё бы сделать автофиксацию первой колонки
9. Defor 08.08.09 16:10 Сейчас в теме
Предлагаю фиксацию устанавливать при анализе ячеек результата:

// Автофиксация таблицы
//
// Параметры
// Результат - <Тип.ТабличныйДокумент> - Табличный документ формы
Процедура Автофиксация(Результат)

Для индСтр=1 По Результат.ВысотаТаблицы Цикл
Для индКол=1 По Результат.ШиринаТаблицы Цикл
Ячейка = Результат.Область("R"+индСтр+"C"+индКол);
Если не Ячейка.Расшифровка = Неопределено Тогда
Результат.ФиксацияСверху = индСтр - 1;
возврат;
КонецЕсли;
КонецЦикла;
КонецЦикла;

КонецПроцедуры
10. tormozit 5641 11.08.09 12:48 Сейчас в теме
(9) Можно, но зачем 2 раза вместо одного обходить возможно огромный табличный документ?
11. Defor 17.08.09 12:25 Сейчас в теме
Обход происходит только до первой ячейки, в которой имеется расшифровка.

В принципе можно оставить перебор только строк.

До конца цикла выполнение произойдет только в том случае когда отчет пустой.
15. mevgenym 85 14.09.09 10:38 Сейчас в теме
вариант из типовых

Если Не ТаблицаЗафиксирована
И ЭлементРезультата.ЗначенияПараметров.Количество() > 0
И ТипЗнч(КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда

ТаблицаЗафиксирована = Истина;

ДокументРезультат.ФиксацияСверху = ДокументРезультат.ВысотаТаблицы;

КонецЕсли;
16. 1СПрограммер 17.09.09 10:33 Сейчас в теме
у меня постоянно пишет, что не может найти макет ;(((

{Отчет.БДДС.Форма.ФормаОтчета(301)}: Ошибка при вызове метода контекста (Вывести): Ошибка вывода результата
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
по причине:
Ошибка вывода результата
по причине:
Макет не найден "Макет1"
17. tormozit 5641 17.09.09 11:01 Сейчас в теме
Теперь будем вообще все ошибки по СКД писать сюда?) Лучше их писать в форуме.
18. n949eo 09.11.11 12:07 Сейчас в теме
Оставьте свое сообщение

См. также

СКД. Лайфхак №2. Собираем отчет еще удобнее 70

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

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

20.11.2019    4714    aximo    15       

Базовый курс по разработке мобильных 1C-приложений для Android-устройств. Третий поток. Онлайн-интенсив с 11 февраля по 05 марта 2020 г. Промо

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

7500 рублей

Некоторые редко используемые возможности СКД 74

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

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

11.11.2019    5645    kser87    39       

Лайфхак работы с СКД. Собираем отчет. 69

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

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

25.10.2019    7799    aximo    23       

Перенос документов и справочников ERP 2 / КА 2 / УТ 11 => БП 3.0 Промо

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

19700 руб.

Немного про СКД. Характеристики и проверка пустого отчета 76

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

Пример использования характеристик в СКД и программная работа с ними. А также описание проверки результата отчета на заполненность.

10.10.2019    4675    YPermitin    7       

Полезняшки по СКД и построителям. Просто код 47

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

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    4922    Yashazz    45       

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

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

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

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

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

10.10.2019    3090    evgeni-red    6       

Три способа создания одного отчета на СКД 82

Статья Программист Нет файла v8 v8::СКД ERP2 УТ11 КА2 Бесплатно (free) Практика программирования

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

08.10.2019    6321    ids79    23       

Онлайн-курс "Технология выполнения проектов ERP-класса – процессный подход". Третий поток. Курс проходит с 21 января по 18 марта 2020 года. Промо

Курс разработан Внедренческим центром «Раздолье». Курс предназначен для подготовки аналитиков, архитекторов и руководителей проектов автоматизации процессов управления с использованием комплексных ИТ-систем (1С:ERP, 1С:УХ, 1С:КА, 1С:УТ). В основе курса лежит методика применения процессного подхода.

9000 рублей

СКД. Отчеты с картинками 204

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

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    7314    YPermitin    26       

СКД не только для отчетов 145

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

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

18.09.2019    9414    YPermitin    31       

Очный семинар по регулярному менеджменту Александра Фридмана "Вы или Хаос", 12 декабря 2019 г. , Санкт-Петербург Промо

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

от 11000 до 29000 рублей

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

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

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

05.09.2019    16777    ids79    44       

Перенос данных КА 1.1 / УПП 1.3 => БП 3.0 (перенос остатков, документов и справочников из "1С:Комплексная автоматизация 1.1" / УПП 1.3 в "1С:Бухгалтерия 3.0"). Обновлен до версий КА 1.1.115.х, УПП 1.3.127.х! Промо

Разработка позволяет перенести остатки по всем счетам бух.учета в программу "1С:Бухгалтерия предприятия 8", ред. 3.0 на выбранную дату начала ведения учета. Также переносятся документы за период и вся необходимая справочная информация. Правила оперативно обновляю при выходе новых релизов. Рассылка обновлений правил бесплатно в течение 12 месяцев. Есть видеодемонстрация проведения переноса данных. Конфигурации при использовании обмена остаются полностью типовыми. Перенос данных возможен в Бухгалтерию 3.0 версии ПРОФ, КОРП или базовую.

24700 руб.

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

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

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

08.08.2019    19809    ids79    31       

Форма отчета СКД 59

Статья Пользователь Нет файла v8::СКД 1cv8.cf Бесплатно (free) Работа с интерфейсом

Описание объекта ОбщиеФормы – ФормаОтчета.

01.08.2019    4677    vasilev2015    5       

Перенос документов, остатков и справочников КА 1.1 => КА 2 / УТ 11. Обновлено до КА 2.4.10.х и УТ 11.4.10.х! Промо

Более 130 компаний выполнили переход на КА 2 или УТ 11 с помощью нашей разработки! Позволяет перенести не только остатки и справочники (как типовая обработка), но и документы за нужный период времени. Предоставляем техподдержку, оперативно исправляем замечания, выпускаем обновления при выходе новых релизов программ 1С. Вы можете проверить разработку до покупки: сделаем бесплатный тестовый перенос из вашей базы КА 1.1 и предоставим доступ к базе-результату через веб-клиент!

29700 руб.

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

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

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

26.07.2019    17733    ids79    8       

Перенос данных УТ 10.3 => УТ 11 / КА 2 / ERP 2 (ЕРП 2) (документы, остатки и справочная информация из "1С:Управление торговлей, ред. 10.3" в УТ 11 / КА 2 / ERP 2). Обновлен до УТ 10.3.56.х, УТ 11.4.10.х, КА 2.4.10.х и ERP 2.4.10.х! Промо

Уже более 100 компаний приобрели перенос и выполнили переход на УТ 11 / КА 2 / ERP 2 с помощью нашей разработки! Обработка перехода с УТ 10.3 на УТ 11 / КА 2 / ERP 2 позволяет перенести не только остатки на указанную дату (как типовой перенос), но и все возможные документы за выбранный период. При выходе новых релизов этих программ оперативно выпускаем обновление обработки. Предоставляем техническую поддержку. Можем сделать бесплатный тестовый перенос!

29700 руб.

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

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

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

17.07.2019    14340    ids79    27       

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

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

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

09.07.2019    9450    ids79    0       

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

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

6500 рублей

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

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

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

04.07.2019    10250    SeiOkami    49       

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

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

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

02.07.2019    16240    ids79    8       

Перенос данных БП 3.0 => УТ 11 / КА 2 / ERP 2 (ЕРП) (перенос остатков, документов и справочной информации из "1С:Бухгалтерия предприятия 8", ред.3.0). Обновлено до БП 3.0.73.х, УТ 11.4.10.х, КА 2.4.10.х., ERP 2.4.10.х! Промо

Переносятся документы за выбранный период, справочная информация и остатки по счетам бух. учета в программу УТ 11 / КА 2 / ЕРП 2 (ERP). Переносятся все возможные виды операций ввода остатков на нужную дату. Есть отбор по периоду переноса документов и фильтр по организации, доступен выбор даты ввода остатков. Если нужно переносить что-то дополнительно, то обычно бесплатно добавляем это в перенос . Смотрите видеодемонстрацию со звуком - советами по переносу и рекомендациями настройки программ.

29700 руб.

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

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

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

25.06.2019    24719    ids79    17       

Не провоцируйте СКД, или пример "как не надо" 52

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

Пример того, что не нужно использовать в запросах, чтобы не провоцировать СКД.

10.06.2019    8429    SeiOkami    91       

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

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

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

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

Еще один способ нестандартной расшифровки отчета. Без использования обработчиков формы. Для ленивых 94

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

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

16.05.2019    6556    tusv    55       

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП 93

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

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

14.05.2019    9732    Viktor_Ermakov    6