[РЕШЕНО] Как получить данные строки табличного документа?

Тема в разделе "Система компоновки данных (СКД)", создана пользователем Vidocq05, 13 мар 2014.

  1. TopicStarter Overlay
    Vidocq05
    Offline

    Vidocq05 Опытный в 1С

    Регистрация:
    8 фев 2013
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Платформа 8.3 Конфигурация УТ 11.1. Управляемое приложение. Внешний отчет. Нужно сделать расшифровку. Как получить данные всей строки табличного документа результата запроса? Это нужно для формирования расшифровки. Или подскажите, как заполнить данными расшифровку при формировании отчета. Если возможно то с примером кода. Заранее спасибо.
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.984
    Симпатии:
    398
    Баллы:
    104
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    У вас табличный документ на форме, или вы его программно создаете ?
  4. TopicStarter Overlay
    Vidocq05
    Offline

    Vidocq05 Опытный в 1С

    Регистрация:
    8 фев 2013
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    На форме.
  5. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    В макете делаете расшифровку не ячейки, а строки. В обработчике расшифровки прописываете необходимую функциональность вашей расшифровки.
  6. TopicStarter Overlay
    Vidocq05
    Offline

    Vidocq05 Опытный в 1С

    Регистрация:
    8 фев 2013
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Не совсем понял. Можно подробнее. Где в макете?
  7. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    У вас же макет есть, который потом выводите в ваше табличное поле ?
  8. TopicStarter Overlay
    Vidocq05
    Offline

    Vidocq05 Опытный в 1С

    Регистрация:
    8 фев 2013
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Нету. Макет создается автоматически.
  9. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Ну тогда походу вы пошли самым длинным путем. Вам нужно получать каждую выводимую строку, анализировать ее и проверять на расшифровку (есть ли это свойство у данной ячейки / строки). Как по мне - без макета это делать гемор. А делать с макетом - переписывать половину отчета.
  10. TopicStarter Overlay
    Vidocq05
    Offline

    Vidocq05 Опытный в 1С

    Регистрация:
    8 фев 2013
    Сообщения:
    67
    Симпатии:
    0
    Баллы:
    26
    Решено. Как реализовал (может кому пригодится). Только средствами СКД, без строчки кода. Макет генерируется автоматически.
    После создания запроса. На вкладке "Настройки" конструктором настроек создаю отчет (тип - Список), выбираю поля Склад, Номенклатура и все ресурсы (расшифровку, а это ссылки на документы - не выбираю), группировка - Склад, Номенклатура. ОК. Далее снимаю галку с "Детальные записи". Выделяю "Детальные записи", внизу (там где Настройка: Отчет <Детальные записи>) выбираю <Детальные записи>, выбираю вкладку "Выбранные поля", снимаю галку с "Авто". Все.
    При выводе данных клацаем правой клавишей мышки по интересующей номенклатуре, выбираем "Расшифровка", выбираем в списке интересующее поле, получаем список ссылок на документы в отдельном окне по данной номенклатуре, т.е. те детальные записи, по которым отключено отображение в отчете.
    У кого возникнут вопросы - пишите в личку.
  11. Bonny
    Offline

    Bonny Опытный в 1С

    Регистрация:
    15 янв 2015
    Сообщения:
    56
    Симпатии:
    0
    Баллы:
    26
    У меня предопределенный макет, расшифровку делаю средствами кросс-таблицы. Щелкая по ячейке - выходит кросс-таблица со всеми данными из регистра. Как получить данные из строки, в которой происходит расшифровка и отфильтровать по ним данные кросс-таблицы? Код ниже:
    Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;

    Отчет = Отчеты.ОтчетСписокКроссТаблица.Создать();

    СтруктураНостроек = Новый Структура;
    СтруктураНостроек.Вставить("ИмяРегистра", "ДебиторыКредиторы");
    СтруктураНостроек.Вставить("ДатаКон", ТекущаяДата());

    СоответствиеОтбора = Новый Соответствие;
    //СоответствиеОтбора.Вставить("Контрагент", Контрагент);
    СтруктураНостроек.Вставить("Отбор",СоответствиеОтбора);

    СоответствиеГруппировок = Новый Соответствие;
    СоответствиеГруппировок.Вставить("Контрагент");

    СтруктураНостроек.Вставить("ГруппировкиСтрок", СоответствиеГруппировок);
    СтруктураНостроек.Вставить("ВыбранныеПоля", Новый Структура("ДокументЗадолженности", "ДокументЗадолженности"));
    СтруктураНостроек.Вставить("РаскрашиватьИзмерения", Истина);

    Отчет.Настроить(СтруктураНостроек);

    ФормаОтчета = Отчет.ПолучитьФорму();
    ФормаОтчета.ОбновитьОтчет();
    ФормаОтчета.Открыть();

    КонецПроцедуры

    Закомментированная строка - не поддается. Пробовала через Расшифровка.Контрагент, ДанныеРасшифровки.Контрагент. Выдает ошибку либо на несоответствие типа, либо что не находит. Расшифровка - это регистратор из регистра, на основании которого строится кросс таблица. В макете отчета этого документа нет
    Последнее редактирование: 12 янв 2016

Поделиться этой страницей