СКД. Объединение ячеек на примере "Справка инвентаризации расчетов с покупателями и поставщиками по форме ИНВ-17"

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

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

СКД объединение ячеек соединить ячейки сгруппировать на

Шпаргалка. Объединение ячеек в отчете на СКД с произвольным макетом.

Всем доброго времени суток. 

Данная статья используется больше для себя как шпаргалка. 

Опишу вкратце задачу. Иногда возникает ситуация, когда пользователь хочет видеть отчеты с объединёнными ячейками как в Экселе (визуально представлено на главной картинке темы). Каждый раз приходилось что-то выдумывать. И данная задача решалась разными методами.

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

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

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

В чем заключается мое универсальное решение. В процедуре «ПриКомпоновкеРезультата» после стандартного вывода отчета я начинаю работать с самим табличным документом (куда вывел результат). Определяю высоту таблицы. И в цикле прохожу сам табличный документ по определенным ячейкам. Что имеется в виду:

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

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

Ниже код. + внешний отчет для примера.

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

	МакетКомпоновки =  КомпоновщикМакета.Выполнить(МакетСКД,Настройки,ДанныеРасшифровки);
	ПроцессорКД = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКД.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина);
	  
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКД);	
    //-Стандартный вывод СКД отчета
    
    //+Объеденим ячейки 
    ОбъединитьЯчейкиВТабличномДокументе(ДокументРезультат);    
    //-Объеденим ячейки
    
КонецПроцедуры
 
Процедура ОбъединитьЯчейкиВТабличномДокументе(ТабличныйДокумент) Экспорт
    
    СтарыйКонтрагент = "";
    НачалоОбласти = "";
    ЭтоПервыйВход = Истина;
    //представим нашу область объединения ввиде квадрата.
    //его параметры:
    //                верхний левый улог - строка R26 столбец С6
    //                правый нижний угол - строка R26 столбец С23
    //в итоге получилась область R26С6:R26С23
    
    //так вот для того, чтобы программно объединить ячейки - в моем случаи нужно узнать строки. А колонки всегда жестко завязаны.
    ОбластьЛевыйВерхнийУгол = 26;
    ОбластьПравыйНижнийУгол = 26;
    

    ВысотаТЧ = ТабличныйДокумент.ВысотаТаблицы;
    
    Для Сч = 26 По ВысотаТЧ Цикл
        ТекОбласть = "R" + Сч + "C6:R" + Сч + "C23";
        НайденнаяОбласть = ТабличныйДокумент.Область(ТекОбласть);
        
        Если ТекОбласть <> НачалоОбласти И НайденнаяОбласть.Текст <> СтарыйКонтрагент Тогда 
            Если НЕ ЭтоПервыйВход  Тогда 
                ГотоваяОбластьДляОбъединения = "R" + Строка(ОбластьЛевыйВерхнийУгол) + "C6:R" +  Строка(Сч-1) + "C23";
                
                ОбластьЛевыйВерхнийУгол = Сч;
                ОбластьПравыйНижнийУгол = Сч;
                
                Область = ТабличныйДокумент.Область(ГотоваяОбластьДляОбъединения);
                Область.Объединить();
            Иначе
                ЭтоПервыйВход = Ложь;
            КонецЕсли;

            НачалоОбласти = ТекОбласть;    
            СтарыйКонтрагент = НайденнаяОбласть.Текст;
        КонецЕсли;
    КонецЦикла; 
    
КонецПроцедуры

 

Данный внешний отчет тестировался на Бухгалтерия предприятия, редакция 3.0 (3.0.75.104).

 

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

Наименование Файл Версия Размер
СКД. Объединение ячеек на примере "Справка инвентаризации расчетов с покупателями поставщиками по форме ИНВ-17":
.erf 15,43Kb
12.03.20
1
.erf 15,43Kb 1 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. wowik 740 11.03.20 15:36 Сейчас в теме
+1. Свой макет в СКД, программная работа с табличным документом ("Область.Объединить()" и т.д.). Много времени потрачено. Не проще все руками, без СКД нарисовать?
3. boobzx 15 12.03.20 07:08 Сейчас в теме
(1)
роще все руками, без СКД нарисовать?


Не проще. Данное решение раньше делал руками. Приходилось описывать расшифровку, анализировать область вывода на печать и разделять страницу, чтобы все влезло на лист. Поля при печати. Почему пошел этим путем (СКД) - много мелкой муторной работы СКД сама уже выполнила. Мне осталось только Объединить области. Да и потом. Стандартный (Типовой Код ) в процедуре "ПриКомпоновкеРезультата" уже заполняется копипастом. И он на каждом углу разобран. Так что, осталось только объединить области.

Лично для меня это пока оптимальное решение.
2. the1 456 11.03.20 20:04 Сейчас в теме
4. boobzx 15 12.03.20 07:14 Сейчас в теме
(2) Баян баяном. А в явном виде для быстрого поиска решения нет с 2013 года.
Данное решение видел. Оно и легло в основу моего решения. И да, тут тоже Постобработка ТабДока.
5. the1 456 12.03.20 09:15 Сейчас в теме
(4) Вот если бы это сделать настройкой компоновки, то цены бы не было.
6. boobzx 15 12.03.20 09:29 Сейчас в теме
(5)Да. Согласен. Но не удалось. :(
7. the1 456 12.03.20 09:48 Сейчас в теме
(6) Пока еще никому не удалось))
Оставьте свое сообщение

См. также

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

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

СКД: штрихкоды в несколько колонок

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

СКД. Ресурсы в несколько колонок, на примере РС Штрихкоды номенклатуры.

1 стартмани

02.03.2020    674    1    shetill    0       

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

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

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

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

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

2 стартмани

27.02.2020    5687    5    wowik    36       

ОСВ по счету 60, 62 с группировкой по контрагенту - Анализ не закрытых авансов

Отчеты и формы Бухгалтер Внешний отчет (ert,erf) v8 v8::БУ v8::СКД БП3.0 Россия БУ Абонемент ($m) Дебиторская и кредиторская задолженность Оборотно-сальдовая ведомость, Анализ счета Бухгалтерские

Отчет ОСВ по счету 60, 62 сделан на СКД с группировкой Организация / Контрагент / Договор / Счет будет полезен тем, кто анализирует не закрытые авансы в разрезе контрагентов.

2 стартмани

16.12.2019    2079    13    a_v_u    7       

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

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

4900 рублей

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

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

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

1 стартмани

25.11.2019    3592    1    Isonic    7       

Печать расчетов с контрагентом из документов "1С:Бухгалтерии 3.0"

Отчеты и формы Бухгалтер Пользователь Внешняя обработка (ert,epf) v8 v8::БУ БП3.0 Россия БУ Дебиторская и кредиторская задолженность Абонемент ($m) Пакетная печать Печатные формы документов

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

1 стартмани

08.09.2019    3847    9    accounting_cons    4       

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

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

4900 рублей

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

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

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

1 стартмани

05.08.2019    10915    11    masterkio    9       

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

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

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

1 стартмани

01.07.2019    5019    6    lmnlmn    7       

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

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

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

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

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

1 стартмани

28.06.2019    5189    4    Isonic    14       

DevOps для 1С. Онлайн-курс проходит с 16 апреля по 11 июня 2020 года. Промо

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

12000 рублей

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

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

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

1 стартмани

12.06.2019    21636    19    Hatson    22       

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

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

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

1 стартмани

17.05.2019    5235    3    artms    0       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Автоматическое формирование актов сверки (Бухгалтерия предприятия 3.0)

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::БУ БП3.0 Россия БУ Дебиторская и кредиторская задолженность Абонемент ($m) Обработка документов

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

3 стартмани

16.05.2019    3900    34    Black-fog    1       

Сверка остатков по счету 62.02 - 76.АВ

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

Сверка остатков по счету 62.02 - 76.АВ (авансы) на заданную дату. Обработок на эту тему полно, но не все отчеты реально отражают сверенное сальдо.

1 стартмани

16.04.2019    4241    17    pupkinSana    0       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 20 апреля по 15 мая 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

Групповое формирование актов сверки взаиморасчетов и рассылка по электронной почте (БП 3.0)

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8::БУ БП3.0 Россия БУ Дебиторская и кредиторская задолженность Абонемент ($m) Обработка документов Email

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

1 стартмани

12.04.2019    4376    29    andy23    8       

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

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

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

05.04.2019    7723    2    artkor    1       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

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

5500 рублей

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

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

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

1 стартмани

27.03.2019    10678    12    ellavs    11       

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

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

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

1 стартмани

21.03.2019    3990    8    pavel_pss    0       

Базовый курс для начинающих 1С-программистов. Онлайн-интенсив со 2 июня по 2 июля 2020 г. Промо

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

4500-9500 рублей

Календарь взаиморасчетов (Анализ задолженности покупателей и поставщиков по дням / месяцам). УПП

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

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

1 стартмани

19.03.2019    2806    16    machnef    0       

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

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

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

1 стартмани

12.03.2019    3967    3    majoram    0       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

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

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

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

1 стартмани

07.02.2019    4451    MaxxiMiliSan    2       

Анализ закрытия авансов по 60, 62 счетам

Отчеты и формы Бухгалтер Внешний отчет (ert,erf) v8::БУ БП3.0 Россия БУ Дебиторская и кредиторская задолженность Абонемент ($m) Бухгалтерские Анализ учета

Отчет выводит неверно закрытые либо разнесенные авансы. Вывод только тех данных (договоров с поставщиками), у которых на выбранную дату есть сальдо по 62.01 и 62.02 одновременно либо 60.01 и 60.02 одновременно.

1 стартмани

04.02.2019    3981    24    vitalbasl    0       

Онлайн-курс «Автоматизация процессов управления МТО: методика сбора и формализации требований» с 1 апреля по 13 мая 2020 года. Промо

Цель курса - повысить полноту и качество сбора и формализации требований к автоматизации процессов управления материально-техническим обеспечением. Курс основан на процессном подходе, позволяет в полном объеме выявить и учесть все факторы, влияющие на специфику процессов управления МТО. Участники курса получают теоретические знания в области организации процессов управления МТО и готовый инструментарий для сбора и формализации требований по автоматизации этих процессов (шаблоны, опросники, модели).

40000 рублей

Групповое создание актов сверки "Бухгалтерии предприятия" ред. 3.0

Инструменты и обработки Бухгалтер Внешняя обработка (ert,epf) v8 v8::БУ БП3.0 Россия БУ Дебиторская и кредиторская задолженность Абонемент ($m) Обработка документов

Простая, но полезная обработка по массовому созданию документов актов сверок за период в "Бухгалтерии предприятия 3.0". Есть отборы по группе контрагентов, остаткам и оборотам на счетах, доп.опции. В базе создаются документы "Акт сверки расчетов".

1 стартмани

19.01.2019    5840    14    maxx    0       

Особенность встроенной функции Представление() в СКД [поход на грабли]

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

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

1 стартмани

15.01.2019    7611    Dementor    5