1с расшифровать не активно
Добрый вечер. Может кто с таким сталкивался. Есть необходимость обработать данные расшифровки и запускать свой отчет вместо генерируемого. В литературе по СКД встречается описание этого действия, но примеры сильно упрощенные. Максимум все сводится в определении поля (в которое ткнули правой кнопкой мыши и нажали расшифровать) и либо вызове формы объекта, либо запуске другого отчета с отбором по значению этого поля. Мне нужно в отчете с иерархией расшифровать значение ресурса (количества) и при выборе определенного поля из списка (скажем документ) запустить свой отчет. Чтобы он правильно сформировался нужно сформировать вариант настроек с подготовленными параметрами и отборами. Вопрос как раз в этом и заключается. Идентифицировать выбранное поле (которое выбирается в диалоговом окне из перечня доступных) мне понятно как, определить значения параметров и элементов отбора текущих настроек отчета, тоже вроде понятно как. Не понятно как идентифицировать значение поля группировки (строки) и (или) значения поля столбца (если это таблица, а не список), чтобы полностью отобрать необходимые в моем случае документы.
Если кто-нибудь сталкивался с такой проблемой, киньте пару примерчиков. На прикрепленном рисунке указано какие поля определить я не могу. Заранее благодарен
А что тебе доступно в ДанныеРасшифровки?
Что-то накропал. Единственное что так и не смог, идентифицировать значение колонки. Но и когда сама платформа генерирует расшифровку, тоже не использует значение колонки. Только строку. Прошу ногами не бить. Чувствую что можно было бы по другому, но опыта маловато для недельного изучения СКД. Если кто-нибудь проанализирует и подскажет более оптимальный вариант, буду рад изучить.
Нахомутал конечно с периодом.
переделал по другому
Сложно так сказать, а вообще давно расшифровки не делал
Ну, работает и пусть работает
Ок, лезем на любой ресурс, коих полно, копируем код, правим под свои нужды и вуаля! Отчет работает, только при попытке расшифровать выскакивает какое то окошко с цифрами :( Что делать?
Решение
На самом деле в этом окошке нам сообщается идентификатор расшифровки компоновки данных. Имея этот идентификато и данные расшифровки, мы можем сделать все, что душе угодно.
Рассмотрю случай формирования СКД из обработки (см. в скрепке). Добавил макет СКД, на форму вывел два реквизита "Контрагент" и "ТабДок". Важно иметь доступ к данным расшифровки при обработке расшифровки табличного документа, поэтому добавим переменную, которую будет перебрасывать в процедуру программного формирования отчета. Ну и опишем саму процедуру обработки расшифровки.
Обработка расшифровки открывает значение, но вы можете прописать любое действие.
Специальные предложения
(1) Да, сорри этот код можно выполнить в толстом клиенте упр. приложения. Я когда выкладывал статью делал пример как раз на базе. которая переходит на тонкие формы и там был период когда режим работы обычное приложение, а форма управляемая.
Тут самое главное смысл получения расшифровки по идентификатору.
На УФ надо положить "Данные расшифровки" во временное хранилище. Далее:
Если ТипЗнч(Структура.Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") тогда
ЭлементРасшифровки = Данные.Элементы[Структура.Расшифровка];
Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
Для каждого Поле Из ЭлементРасшифровки.ПолучитьПоля() Цикл
Возврат Поле.Значение;
КонецЦикла;
КонецЕсли;
КонецЕсли;
На форму добавить реквизит "ДанныеРасшифровки" с типом "Строка"
&НаКлиенте
Процедура КонтрагентПриИзменении(Элемент)
&НаСервере
Процедура КонтрагентПриИзмененииНаСервере()
Если Контрагент.Ссылка.Пустая() Тогда
Возврат;
КонецЕсли;
// Создаем СКД. Устанавливаем параметры
СхемаКД = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
ПараметрКД = Настройки.ПараметрыДанных.Элементы.Найти("Контрагент");
ПараметрКД.Значение = Контрагент;
// Создаем Макет КД
КомпоновщикМакетаКД = Новый КомпоновщикМакетаКомпоновкиДанных;
ДанныеРасшифровкиКомпоновкиДанных = Новый ДанныеРасшифровкиКомпоновкиДанных;
МакетКД = КомпоновщикМакетаКД.Выполнить(СхемаКД, Настройки, ДанныеРасшифровкиКомпоновкиДанных);
// Создаем Процесор КД
ПроцессорКД = Новый ПроцессорКомпоновкиДанных;
ПроцессорКД.Инициализировать(МакетКД,, ДанныеРасшифровкиКомпоновкиДанных);
// Выводим
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабДок);
ПроцессорВывода.НачатьВывод();
ПроцессорВывода.Вывести(ПроцессорКД);
ДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровкиКомпоновкиДанных);
&НаКлиенте
Процедура ТабДокОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Данные = Сервер(Расшифровка);
ОткрытьЗначение(Данные);
&НаСервере
Функция Сервер(Расшифровка)
Если ТипЗнч(Расшифровка) = Тип("ИдентификаторРасшифровкиКомпоновкиДанных") тогда
ЭлементРасшифровки = Данные.Элементы[Расшифровка];
Если ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхПоля") Тогда
Для каждого Поле Из ЭлементРасшифровки.ПолучитьПоля() Цикл
Возврат Поле.Значение;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Многие организации используют в программе дополнительный сервис 1С-Отчетность . С помощью него они обмениваются отчетами и прочим электронным документооборотом с контролирующими органами непосредственно из 1С без использования сторонних программ, что очень удобно. Но усложнение программы, как всегда бывает, приводит к новым ошибкам, с которыми нужно уметь справляться.
Прочитав статью, вы:
- Получите важную информацию на 2019 год от оператора 1С-Отчетность Калуга Астрал .
- Узнаете, какие ошибки возникают при обмене электронного документооборота.
- Изучите рекомендации по исправлению ошибок, полученных при попытке расшифровать файл. Это самая распространенная ошибка в 1С-Отчетности .
Ошибка расшифровки файла
Список возможных ошибок 1С-Отчетности можно посмотреть здесь. PDF
- Не расшифровано.
- Не найден сертификат. Ошибка расшифровки файла документа при распаковке пакета.
22 ноября 2018 года оператор 1С-Отчетности распространил следующую информацию для партнеров 1С и пользователей, сдающих отчетность в ПФР Москвы и Московской области.
Если вы сдаете отчетность в ПФР Москвы и Московской области, то вы гарантированно получите указанную ошибку.
Возникновение ошибок
Использование криптопровайдеров ниже версий VipNet 4.2 или КриптоПро CSP 4.0 повлечет возникновение ошибок при обработке документов на стороне ПФР.
Обновление криптопровайдеров
Для исключения технических проблем при работе с ПФР, необходимо обновить криптопровайдеры до версий: VipNet 4.2 или КриптоПро CSP 4.0 и выше.
Пошаговая инструкция по обновлению криптопровайдера
Шаг 1. Откройте криптопровайдер, щелкнув мышкой по иконке VipNet СSP .
Шаг 2. Проверьте версию криптопровайдера VipNet в нижнем левом углу открывшейся формы.
Шаг 3. Обновите версию криптопровайдера по инструкции оператора Калуга Астрал, если:
- сдаете отчетность в ПФР Москвы и Московской области;
- версия вашего криптопровайдера VipNet ниже 4.2.
Другие причины возникновения ошибок
Проверка версии криптопровайдера
Обновление 1С
Второе не менее важное правило: перед глубоким погружением в проблему выполните две несложных проверки в1С:
- проверьте на актуальность релиз вашей 1С;
- уточните права пользователя, отправляющего отчетность.
Отправка отчетности всегда должна выполняться на актуальной версии 1С. Проверьте текущий релиз вашей программы на сайте поддержки пользователей и обновите конфигурацию, если установленный релиз вашей программы не актуальный.
Разработчики вносят изменения в 1С, подключают новые модули, поэтому соответствие релиза программы актуальному перед отправкой отчетности необходимое условие успешной сдачи отчетности.
Права пользователя, отправляющего отчетность
Пользователи, работающие с 1С-Отчетность , должны иметь права:
- Право на защищенный документооборот с контролирующими органами;
- Полные права.
Если с отчетностью работает пользователь не с полными правами, ему необходимо добавить право на защищенный документооборот, например, в Конфигураторе : меню Администрирование — Пользователи на вкладке Прочее .
Если работать с отчетностью стал новый пользователь и у него стала выходить ошибка, а у прежнего пользователя все было нормально — дело, скорее всего. в правах нового пользователя.
Если проверки выполнены, а ошибка осталась — переходите к поиску решения проблемы с помощью:
- технической поддержки Калуга-Астрал;
- самостоятельной настройки криптографии.
Техническая поддержка Калуга-Астрал
Корректность шифровки передаваемого файла сначала проверяет оператор, т.е. компания Калуга-Астрал, после успешной проверки оператором файлы отсылаются непосредственному адресату получения, например, в ПФР.
При возникновении проблем с передачей отчетности, в том числе по расшифровке переданного файла, можно перезвонить непосредственно оператору Калуга-Астрал и попросить помощи:
Техническая поддержка компании работает круглосуточно и успешно устраняет проблемы, связанные с передачей файлов по сервису 1 С-Отчетность , удаленно подключаясь к компьютеру пользователя.
Дозвониться до оператора совсем несложно, в отличие от горячей линии 1С, и работа по решению проблем оператором выполняется без задержек — в момент обращения.
Обратиться в техподдержку Калуга-Астрал один из самых простых вариантов решить проблемы. Работа выполняется профессионально и бесплатно в рамках приобретенного сервиса 1С:Отчетность .
На сайте оператора собраны все возможные ошибки и пути их устранения. Это настоящая библиотека «скорой помощи» пользователю. Мы очень рекомендуем в нее заглядывать:
Настройка криптографии
Поскольку проблема носит чисто технический характер и может быть вызвана множеством причин, рассмотреть которые в одной статье очень сложно, мы дадим в этой части статьи:
- свои экспертные рекомендации, которые помогали нам решить проблему у наших клиентов;
- общий список рекомендации 1С, включающий работу с ОС и 1С одновременно.
Рекомендации Бухэксперт8
Если все технические рекомендации, указанные выше, выполнены, переходим к проверке состояния файлов сертификатов и их настроек в учетной записи документооборота 1С.
Как зайти в настройки учетной записи документооборота?
В разных конфигурациях откройте вкладку Список заявлений : справочник Организации — ЭДО — Список заявлений .
Откройте список заявлений и проверьте, чтобы не было «красноты».
Перейдите на вкладку Служебная информация , откройте графу Учетная запись — результат и выполните команду Открыть (щелкнув мышкой по двум квадратикам).
В открывшемся окне можно:
- проверить параметры настройки;
- обновить сертификаты контролирующих органов по нажатию кнопки Настроить автоматически сейчас ;
- проверить параметры доступа к серверу;
- проверить цифровые сертификаты ответственных лиц организации;
- выбрать пользователей системы 1С, которым будет предоставлен доступ к сервису 1С-Отчетность .
После выполнения каждой инструкции нажимайте кнопки Обменяться и Расшифровать . Проблема может решиться после любого выполненного шага.
Если предложенные шаги не привели к решению проблемы — переустановите криптопровайдер.
Полный список рекомендаций 1С
Полный список рекомендаций 1С для устранения ошибки в операционной системе:
- Повторно выполнить настройку криптографии на компьютере.
- Переустановить личный сертификат.
- Провести тестирование контейнера закрытого ключа, связанного с сертификатом.
- Сбросить пароль на контейнер закрытого ключа.
- Повторно перенести контейнер закрытого ключа в реестр при необходимости.
Действия по исправлению ошибки в 1С:
- Пометить на удаление имя сертификата ЭЦП, и поставив префикс Не использовать , чтобы не спутать с новым элементом справочника.
- Добавить сертификат из хранилища сертификатов, для которого была проведена повторная установка.
- Провести Тест настроек сертификата .
- Указать новый элемент справочника Сертификаты ЭЦП в Соглашении.
- Провести Тест настроек соглашения .
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Умение исправлять ошибки в программе — задача более сложная, чем учет в ней хозяйственных операций. Этому не учат на курсах бухгалтеров и на курсах 1С. Но без этого умения вы не сможете сдавать правильную отчетность и успешно работать в программе.
Понимая это, БухЭксперт8 подготовил специальный сборник по возможным ошибкам 1С. И не просто сделал подборку своих экспертных статей, но и дал конкретные рекомендации по исправлению.
Ошибки в публикации сгруппированы по темам:
Каждую тему предваряет краткий обзор. Это поможет легко сориентироваться в предоставленной информации и отобрать только ту, что касается конкретных ошибок.
Информация этого сборника мега-полезна! Мы гордимся, что первыми из обучающих фирм представляем своим пользователям этот единый Путеводитель по ошибкам и их исправлению в 1С. Мы уверены, что он будет вашей «скорой помощью» в самых сложных ситуациях.
Административные
В данном разделе собрана информация о так называемых «административных» ошибках. Их объединяет, что вызваны они не ошибками программного кода 1С или некорректными действиями пользователей, а административными настройками.
1C Отчетность: не удалось расшифровать файл
Многие организации используют в 1С дополнительный сервис 1С-Отчетность , с помощью которого они обмениваются отчетами и прочими электронными документами с контролирующими органами без использования сторонних программ, что очень удобно. Но усложнение программы неизбежно приводит к ошибкам, с которыми нужно уметь справляться. В статье подробно разбирается ошибка Не удалось расшифровать файл.
1С удаление: указанная учетная запись уже существует
Внутренняя ошибка компоненты dbeng8
Причина ошибки Внутренняя ошибка компоненты dbeng8 — нарушение структуры базы данных. Это может быть вызвано различными ситуациями, например, некорректным закрытием 1С из-за отключения электроэнергии, сбоем работы сети и т. п. Ошибка может проявиться как при запуске программы, так и при ее закрытии или выполнении какого-нибудь действия.
Конфигурация узла распределенной ИБ не соответствует ожидаемой
Распределенная информационная база используется для организации работы филиалов и подразделений, позволяя обмениваться информацией между ними. Технология обмена между базами достаточно надежна, но время от времени ломается и она. В статье рассматривается ошибка Конфигурация узла распределенной ИБ не соответствует ожидаемой.
Компонента 1С: Печать штрихкодов не установлена на данном компьютере
Конфигурация базы данных не соответствует сохраненной конфигурации 1С
В статье описывается, что может быть этому причиной. Главное — не паниковать!
Лицензия не обнаружена. Не обнаружен ключ защиты программы
При покупке 1С в комплект поставки включается лицензия на данное программное обеспечение. Лицензия может быть представлена в виде аппаратного ключа — специальной флешки для установки в USB-порт компьютера или программного ключа лицензии — пинкода программной защиты.
В статье разбирается, почему программа может не видеть лицензию.
Нарушение прав доступа
Ошибка Нарушение прав доступа появляется при попытках обращения пользователя к объекту, прав на который у него нет. Очень часто это происходит при вводе нового пользователя в 1С, доработке программного кода и обновлении программы.
Нарушение целостности системы 1С
Начало сеанса с информационной базой запрещено
Недостаточно памяти 1С
Ошибка Недостаточно памяти 1С появляется при выполнении каких-то объемных операций, которые требуют определенного количества ресурса компьютера. Причем в обычном режиме программа 1С работает относительно нормально. В статье даются рекомендации по исправлению ситуации.
Ошибка Не найден файл внешней компоненты возникает при использовании в 1С дополнительных сервисов, например:
В статье на конкретном примере показывается, как решить проблему.
Не обнаружена установленная версия 1С Предприятия
Ранее ошибка Не обнаружена установленная версия 1С Предприятия могла появиться при смене платформы 1С: Предприятие с 8.2 на 8.3. Кроме того, ошибка может возникнуть вследствие некорректной установки 1С, при переустановке операционной системы и по иным причинам. Во всех этих случаях файл, отвечающий за запуск платформы 1CEStart.cfg, начинает работать некорректно.
Из статьи вы узнаете, что тут можно сделать.
Обнаружено неправомерное использование данного программного продукта
Ошибка 1С: Начало сеанса с информационной базой запрещено
Ошибка ввода пинкода. Пинкод не укомплектован
Ошибка при выполнении операции с информационной базой 1С 8.3
Один из самых страшных сценариев для пользователя при работе в 1С — невозможность войти в информационную базу. В статье разбираются причины возникновения ошибок с информационной базой и даются рекомендации по их исправлению.
Ошибка формата потока
Ошибка СУБД: файл базы данных поврежден
Ошибка Удаленный узел не прошел проверку в 1С связана с проверкой сертификатов. Начиная с Платформы 8.3.8, 1С при проверке использует те же сертификаты, что и операционная система Windows. Исходя из этого, можно с высокой долей вероятности утверждать, что ошибка связана не с самой 1С, а с настройками подключения к интернету.
У пользователя недостаточно прав на исполнение операции
Ошибка Недостаточно прав на исполнение операции появляется при использовании в программе разграничении прав на уровне пользователей. В статье разбирается пример ошибки и даются рекомендации по ее исправлению.
Установка запрещена на основании системной политики
Ошибка Этот хост неизвестен возникает при подключении к серверу 1С и связана с тем, что в процессе запуска базы не удается определить IP-адрес сервера. В статье даются рекомендации по ее исправлению.
Программные
Ошибки этой темы вызываются некорректным программным кодом. При описании ошибки наши эксперты не просто воссоздают ее саму, но и учат работать со встроенными инструментами 1С — Синтаксис-помощником 1С . В некоторых случаях для наглядности создают внешние обработки для демонстрации правильного и неправильного программного кода. А также дают навыки использования Отладчика в 1С и учат аналитической работе в Конфигураторе .
Информация бесценна для всех, кто пробует свои силы в написании внешних обработок и отчетов, а также для обычных пользователей, получающих подробную инструкцию по поиску и исправлению ошибок.
Записи регистра сведений стали неуникальными
Какой бы ни была причина появления этой ошибки, она говорит об одном: в регистре сведений есть запись с ключевыми параметрами, для которой имеется несколько значений, и программа 1С не знает: какая из этих записей правильная.
В статье дается подробная инструкция по поиску и исправлению ошибки.
Метод объекта не обнаружен
БухЭксперт8 подготовил в статье 3 примера формирования ошибки Метод объекта не обнаружен. Вы познакомитесь с Синтаксис-помощником 1С , узнаете причины появления ошибки и получите рекомендации для ее исправления с использованием встроенной справки 1С.
Неизвестный идентификатор формы
При работе с управляемыми формами 1С можно встретить ошибку Неизвестный идентификатор формы. Чаще всего ее причина — неправильное указание имени формы объекта в программном коде.
Недостаточно фактических параметров
Ошибка Недостаточно фактических параметров показывает, что в исполняемую функцию передано меньше параметров, чем необходимо для выполнения операции. Для анализа ошибки Бухэксперт8 подготовил специальный пример.
Из статьи вы узнаете, на что обращать внимание при появлении этой ошибки, и получите подробные рекомендации по ее исправлению.
Поле объекта недоступно для записи
Ошибка Поле объекта недоступно для записи появляется при доработках программного кода и обновлениях программы. БухЭксперт8 подготовил внешние обработки, содержащие ошибки и способы их исправления, которые вы можете скачать.
Поле объекта не обнаружено
При обновлении базы 1С, установке новой Платформы, внесении изменений в конфигурацию возможно появление ошибки Поле объекта не обнаружено. В зависимости от причины, вызвавшей эту ошибку, есть разные варианты ее устранения. О них вы узнаете из этой статьи.
Переменная не определена
Ошибка Переменная не определена указывает на то, что программа не может получить нужную информацию в исполняемом программном коде. Это может быть связано с обновлением или доработкой программы. В статье даются рекомендации по исправлению ошибки.
Печатная форма недоступна 1С 8.3 при вызове внешней печатной формы
При подключении внешних печатных форм в 1С может появиться ошибка Печатная форма недоступна. В статье рассматривается порядок действий по исправлению ошибки.
Слишком много фактических параметров
Ошибка Слишком много фактических параметров указывает, что при выполнении операции в процедуру ее обработки переданы лишние параметры. Проблема серьезнее, чем кажется на первый взгляд, поскольку не всегда это вызвано ошибками программного кода.
БухЭксперт8 подготовил подробный разбор причин появления ошибки и рекомендации по ее устранению.
Пользовательские
Большое количество забивается решеткой
Ошибка Большое количество забивается решеткой показывает, что при отображении данных места, отведенного под вывод результата, недостаточно. Ситуация возникает, если в свойствах ячейки отчета задано свойство размещения Забивать данные. Из статьи вы получите рекомендации для решения проблемы.
Значение поля номер не уникально
Ошибка Значение поля номер не уникально возникает при создании нового документа или справочника. При записи 1С автоматически присваивает объекту новый номер, но сохранить новые данные не может: где-то в журнале документов уже есть объект с таким же номером.
Причина этой ошибки чаще всего — ручное исправление номеров документов.
Конфликт блокировок при выполнении транзакции
Ошибка совместного доступа к файлу
Ошибка совместного доступа к файлу указывает, что к файлу, захваченному одним процессом, пытается обратиться другой процесс — например, при попытке одновременного использования одного файла разными пользователями в 1С. Пока пользователь, захвативший файл, не закроет его, попытка открыть файл другим пользователем будет блокироваться. В статье даются рекомендации для устранения ошибки.
При работе в 1С с сетевым принтером возможны ситуации, когда при запуске на печать отчета или печатной формы документа выдается ошибка печати. Ситуация усугубляется тем, что из приложений Word и Excel печать выполняется нормально. В статье даны рекомендации по исправлению ошибки.
Заключение
ПУТЕВОДИТЕЛЬ по ошибкам и их исправлению в 1С подготовлен командой профессионалов — консультантами и программистами БухЭксперт8. Сохраните эту страничку в социальных сетях или в закладках как шпаргалку. Пользуйтесь ею онлайн всегда, когда это будет необходимо.
Если вам понадобится дополнительная профессиональная помощь
в работе с 1С:Бухгалтерия 3.0
мы будем рады видеть вас на нашем курсе
Бухгалтерский и налоговый учет в 1С:Бухгалтерия 8 ред.3 от А до Я, ОСНО или УСН на ваш выборЕсли Вы еще не подписаны:
Активировать демо-доступ бесплатно →
или
Оформить подписку на Рубрикатор →
После оформления подписки вам станут доступны все материалы Бухэксперт8, записи поддерживающих эфиров и вы сможете задавать любые вопросы по программе 1С.
Помогла статья?
Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно
Похожие публикации
-
Вы приобрели 1С 8.3 и готовитесь работать на ней или.«Технические» ошибки – это ошибки, которые допущенные не в счете-фактуре.Ниже вы можете просмотреть запись семинара на тему: "ТОП-9 горячих.Ниже вы можете просмотреть запись семинара на тему: "ТОП-9 горячих.
(1 оценок, среднее: 5,00 из 5)
Публикацию можно обсудить в комментариях ниже.
Обратите внимание!
В комментариях наши эксперты не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно в Личном кабинете
Вы можете задать еще вопросов
Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8
Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>
Изменения в 2022 году, о которых нужно знать бухгалтеру
6-НДФЛ за 1 квартал 2022 в 1С
Санкции и контрмеры: как работать организации и ее бухгалтеру в новой реальности. Часть 2
Учет малоценных ОС и запасов (ОСН)
Отчетность за 1 квартал 2022
Огромное спасибо за Ваш труд. Обязательно подпишусь еще при первой возможности.
В некоторых ситуациях использовать возможности объекта ОбработкаРасшифровкиКомпоновкиДанных не представляется возможным, и возникает необходимость программного получения значений полей, которые присутствовали в некоторой ячейке табличного документа, для которой можно получать расшифровку.
В данной статье описывается, каким образом устроен объект ДанныеРасшифровки и как его можно использовать для получения значений полей и полей группировок.
ВАЖНО!
Для того, чтобы при выводе отчета объект ДанныеРасшифровки был заполнен, следует его создать при компоновке макета и передать в процессор компоновки данных.
Для создания объекта ДанныеРасшифровки, при вызове метода Выполнить компоновщика макета, следует передать переменную, в которую требуется поместить созданный объект.
Пример:
Код 1C v 8.х
Для того, чтобы данные расшифровки заполнились при формировании результата, необходимо передать объект ДанныеРасшифровки в метод Инициализировать процессора компоновки данных.
Пример:
Код 1C v 8.х
Если используется метод объекта Отчет СкомпоноватьРезультат, то для заполнения данных расшифровки следует передать в метод переменную, в которую необходимо поместить данные расшифровки.
Пример:
Код 1C v 8.х
Если отчет формируется при помощи стандартной команды отчета Сформировать, то данные расшифровки помещаются в свойство расширения формы отчета ДанныеРасшифровки.
Объект ДанныеРасшифровки содержит настройки, для которых этот объект был сформирован (заполняются при генерации макета компоновки данных) и коллекции элементов расшифровки (заполняются при формировании результата).
Каждый элемент расшифровки имеет идентификатор (который и помещается в ячейку табличного документа - результата) и массив идентификаторов родительских элементов расшифровки. Имея идентификатор расшифровки из объекта ДанныеРасшифровки можно получить элемент расшифровки при помощи метода Получить или при помощи операции [].
Пример:
Код 1C v 8.х
Существуют два типа элементов расшифровки: ЭлементРасшифровкиКомпоновкиДанныхПоля и ЭлементРасшифровкиКомпоновкиДанныхГруппировка.
ЭлементРасшифровкиКомпоновкиДанныхПоля содержит список значений полей, которые присутствуют в элементе расшфровки. В каждом значении имеется указание того, для какого поля содержится значение (соответствует пути к данным поля в терминах настроек компоновки данных, например: Номенклатура.ОсновнойПоставщик), само значение поля, и указание того, что значение было получено для иерархической записи (имеет значение Истина, если значение было получено от иерархической записи).
ЭлементРасшифровкиКомпоновкиДанныхГруппировка содержит имя группировки, для которой был создан элемент (соответствует идентификатору группировки в настройках из данных расшифровки).
При компоновке результата процессор компоновки данных заполняет данные расшифровки следующим образом:
1. При выводе группировки помещает в данные расшифровки элемент типа ЭлементРасшифровкиКомпоновкиДанныхГруппировка, с указанием того, какая группировка выводится. Если выводится вложенная группировка, то в качестве идентификатора родительского элемента группировки будет использован идентификатор расшифровки от родительской группировки.
2. В качестве дочернего к элементу группировки выдает в данные расшифровки элемент типа ЭлементРасшифровкиКомпоновкиДанныхПоля, в который выдает значения полей, по которым осуществлялась группировка. Например, если группировка осуществлялась по полю Номенклатура.ОсновнойПоставщик, то в значениях полей будет находиться значение для этого поля. При этом, если группировка выполнялась по иерархии и в настоящий момент выдавалась иерархическая запись, то в значении поля группировки об этом будет сказано в свойстве Иерархия.
3. При выводе ячеек процессор компоновки получит из каждой ячейки список полей, которые нужно помещать в ее расшфровку и создаст в данных расшифровки для ячейки элемент типа ЭлементРасшифровкиКомпоновкиДанныхПоля, в который поместит значения полей. При этом родительским для нового элемента будет являться элемент, содержащий значения полей группировки, т.е. элемент, заполненный на втором шаге. Если выводился элемент для ресурсов на пересечении группировок кросс-таблицы, то у элемента будет установлено два родительских элемента - один от группировки - строки и один от группировки - колонки. Идентификатор вновь созданного элемента будет помещен в качестве значения расшифровки в ячейку результирующего табличного документа. Именно этот идентификатор придет в обработчик расшифровки, если пользователь потребует расшифровать в отчет в данной ячейке.
Обработка расшифровки.
При обработке расшифровки, в обработчик поля табличного документа будет передаваться идентификатор расшифровки. По этому идентификатору из объекта данных расшифровки можно получить элемент расшифровки. В этом элементе будут находиться значения полей, которые предполагалось выдавать в качестве расшифровки в данной ячейке.
Есть вероятность, что не те ДанныеРасшифровки я "засылаю" (только начинаю изучать СКД детально), но результат очень порадовал.
Если кому-то интересно.
Делал печатную форму документа через СКД, там соответственно нет формы, есть только макет.
Код который исправляет ситуацию:
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДокумент); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
//Подмена расшифровки в макете Для к = 1 По ТабДокумент.ВысотаТаблицы Цикл Если ТабДокумент.Область(к,1).Расшифровка<>Неопределено Тогда ТабДокумент.Область(к,1,к,ТабДокумент.ШиринаТаблицы).Расшифровка=ДанныеРасшифровки.Элементы[ТабДокумент.Область(к,1).Расшифровка].ПолучитьПоля()[0].Значение; КонецЕсли; КонецЦикла;
Соответственно расшифровка берется из первой колонки и ставится на всю строку, в моём случае этого достаточно.
Читайте также: