8.х [Решено] Вызвать стандартную карточку счета

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем ЕкатеринаНик, 14 авг 2014.

  1. TopicStarter Overlay
    ЕкатеринаНик
    Offline

    ЕкатеринаНик Опытный в 1С

    Регистрация:
    8 ноя 2010
    Сообщения:
    698
    Симпатии:
    1
    Баллы:
    29
    Есть элементарный отчет - материальный, надо чтоб по колонкам Приход-Расход двойным щелчком вызывалась карточка счета с параметрами - текущая номенклатура, счет, склад, выбранный для отчета период. Как?
    Помогите с пунктами, как это сделать?
  2. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Обработку расшифровки курите.
  3. TopicStarter Overlay
    ЕкатеринаНик
    Offline

    ЕкатеринаНик Опытный в 1С

    Регистрация:
    8 ноя 2010
    Сообщения:
    698
    Симпатии:
    1
    Баллы:
    29
    Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

    СтандартнаяОбработка = ложь;
    МассивПолей = ТиповыеОтчеты.ПолучитьМассивПолейРасшифровки(Расшифровка, ДанныеРасшифровки, , истина);
    ну вот, вытащила вот такую процедуру из стандартных, скопированная, даже открывает саму карточку счета. Но - ругается на ДанныеРасшифровки - что это и откуда брать?
    В ячейку я еще не посадила ПараметрыРасшифровки.
    Где курить? ссылки есть?
    (если чо, я вообщето не курю ;) )
  4. TopicStarter Overlay
    ЕкатеринаНик
    Offline

    ЕкатеринаНик Опытный в 1С

    Регистрация:
    8 ноя 2010
    Сообщения:
    698
    Симпатии:
    1
    Баллы:
    29
    Значит так,
    1. на форму разместить ПолеТабличногоДокумента1, в него выводить макет.
    2. в макете в ПараметрРасшифровки Строка.Параметры.ДанныеРасшифровки = ВашеЗначениеРасшифровки; можно передать Структуру, я передавала ссылку, т.к. остальные реквизиты все равно уже были заполненные на форме отчета.
    3.
    Код:
    Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
       
            СтандартнаяОбработка = ложь;
       
            ФормаРасшифровка = Отчеты.КарточкаСчета.ПолучитьФорму(,, Новый УникальныйИдентификатор);
            ФормаРасшифровка.РежимРасшифровки = Истина;
            ФормаРасшифровка.Счет = Счет10;
           
            Поле            = "Субконто1";
            Поле             = Новый ПолеКомпоновкиДанных(Поле);
            Отбор            = ФормаРасшифровка.КомпоновщикНастроек.Настройки.Отбор;
            ВидСрав         = ВидСравненияКомпоновкиДанных.Равно;
            Значение        = Расшифровка;
            Использование    = Истина;
           
            НовыйЭлемент = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            НовыйЭлемент.Использование  = Использование;
            НовыйЭлемент.ЛевоеЗначение  = Поле;
            НовыйЭлемент.ВидСравнения   = ВидСрав;
            НовыйЭлемент.ПравоеЗначение = Значение;
           
            Поле            = "Субконто2";
            Поле             = Новый ПолеКомпоновкиДанных(Поле);
            Отбор            = ФормаРасшифровка.КомпоновщикНастроек.Настройки.Отбор;
            ВидСрав         = ВидСравненияКомпоновкиДанных.Равно;
            Значение        = Склад;
            Использование    = Истина;
           
            НовыйЭлемент = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            НовыйЭлемент.Использование  = Использование;
            НовыйЭлемент.ЛевоеЗначение  = Поле;
            НовыйЭлемент.ВидСравнения   = ВидСрав;
            НовыйЭлемент.ПравоеЗначение = Значение;
    
           
            Поле            = "Счет";
            Поле             = Новый ПолеКомпоновкиДанных(Поле);
            Отбор            = ФормаРасшифровка.КомпоновщикНастроек.Настройки.Отбор;
            ВидСрав         = ВидСравненияКомпоновкиДанных.Равно;
            Значение        = Счет10;
            Использование    = Истина;
           
            НовыйЭлемент = Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
            НовыйЭлемент.Использование  = Использование;
            НовыйЭлемент.ЛевоеЗначение  = Поле;
            НовыйЭлемент.ВидСравнения   = ВидСрав;
            НовыйЭлемент.ПравоеЗначение = Значение;
    
            ФормаРасшифровка.Организация     = Организация;
            ФормаРасшифровка.НачалоПериода     = НачДата;
            ФормаРасшифровка.КонецПериода      = КонДата;
            //ФормаРасшифровка.Счет             = Счет10;
              ФормаРасшифровка.Настроить();
           
            Для Каждого ЭлементСтруктуры Из ФормаРасшифровка.ДанныеОтчета.ПоказателиОтчета Цикл
                ЭлементСтруктуры.Значение.Значение = Ложь;
            КонецЦикла;
           
            ФормаРасшифровка.ДанныеОтчета.ПоказателиОтчета.БУ.Значение             = Истина;
            ФормаРасшифровка.ДанныеОтчета.ПоказателиОтчета.Количество.Значение    = Истина;
            ФормаРасшифровка.Открыть();
            ФормаРасшифровка.ОбновитьОтчет();
    КонецПроцедуры
    Код мне не сильно нравится, но работает как надо.
    --- Объединение сообщений, 20 авг 2014 ---
    Замечания приветствуются!

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