Ошибка при установке значения атрибута контекста текст

Построитель-Ошибка -(Текст)

Я
   НатальяК

11.08.06 — 18:22

Постановка:

1. Текст запроса Построителя в модуле объекта

2. В модуле формы наращиваю запрос (условия)

При ПОВТОРНОМ «Сформировать» имею:

Ошибка при установке значения атрибута контекста (Текст)

Помогите….дереву дремучему

   PR

1 — 11.08.06 — 18:25

Неправильный код значит, в коде ищи ошибку

   НатальяК

2 — 11.08.06 — 18:47

Краткость не удалась(таланту нет)

ТЕКСТ В модуле

Построитель.Текст =

       «ВЫБРАТЬ

       |    Продажи.Номенклатура,

       |    Продажи.Регистратор,

       |    Продажи.Количество КАК Количество,

       |    Продажи.Стоимость КАК СУММА,

       |    Продажи.ДокументПродажи.Контрагент,

       |    Продажи.ДокументПродажи.Дата,

       |    Продажи.ДокументПродажи.Номер

       |ИЗ

       |    РегистрНакопления.Продажи КАК Продажи

       |ГДЕ

       |    Продажи.ДокументПродажи.Проведен

       |    И Продажи.Период > &НачПериода

       |    И Продажи.Период < &КонПериода

       |»;

текст в форме:

Если ЗначениеНеЗаполнено(ВводНоменклатура) Тогда

       Предупреждение («НЕ указана Номенклатура»);    

   Иначе    

       Построитель.Текст = Построитель.Текст + »    

           |    И Продажи.Номенклатура = &Номенклатура

           |ИТОГИ

           |    СУММА(Количество)

           |ПО

           |    ОБЩИЕ

           |»;

при первом «Сформировать» очень хорошо выполняет

а при ПОВТОРНОМ

тыкает в форму на строчку

Построитель.Текст = Построитель.Текст + »    

           |    И Продажи.Номенклатура = &Номенклатура

воть…

ЗЫ. Это я про 8-ку писала, но ловкость рук…… можно перенести?

   PR

3 — 11.08.06 — 18:55

И сколько раз ты собираешься наращивать текст построителя?

   НатальяК

4 — 11.08.06 — 19:00

Есть ограничения?

когда я делала этот отчет НЕ Построителем… вопроса не возникала…

а мне Построитель нравится… как обойти ошибку, а?

   PR

5 — 11.08.06 — 19:02

Что, ты больше одного раза добавляла
           |    И Продажи.Номенклатура = &Номенклатура
           |ИТОГИ
           |    СУММА(Количество)
           |ПО
           |    ОБЩИЕ
           |»;
и у тебя все работало?!

   НатальяК

6 — 11.08.06 — 19:10

да

текст запроса был в форме

и в начале стояло

Процедура КнопкаСформироватьНажатие(Кнопка)

   Запрос = Новый Запрос;

…..

чудненьк Фсё получалось…

   PR

7 — 11.08.06 — 19:23

Мда, может я конечно ошибаюсь, но все-таки женщинам как правило лучше не заниматься программированием, мозг у них как-то по другому устроен :o)

Строка
Запрос = Новый Запрос;
создает НОВЫЙ объект, у которого НИКАКОГО текста еще нет, поэтому текст запроса ессно НЕ наращивается
а Построитель.Текст = …
НЕ создает нового объекта, а поэтому его текст после первого прибавления второй раз уже работать не будет :o)

   НатальяК

8 — 11.08.06 — 19:27

Это ты, конечно, верно подметил… про мозги… ЗАЧЕМ по твоему я тебе эту строчку написала?!

переведу вопрос

КАК  ТАКОЕ НАПИСАТЬ С ПОСТРОИТЕЛЕМ

   PR

9 — 11.08.06 — 19:30

(8) Очень просто. Например так.

Если ЗначениеНеЗаполнено(ВводНоменклатура) Тогда
       Предупреждение («НЕ указана Номенклатура»);    
       Возврат;
КонецЕсли;

Построитель.Текст =
       «ВЫБРАТЬ
       |    Продажи.Номенклатура,
       |    Продажи.Регистратор,
       |    Продажи.Количество КАК Количество,
       |    Продажи.Стоимость КАК СУММА,
       |    Продажи.ДокументПродажи.Контрагент,
       |    Продажи.ДокументПродажи.Дата,
       |    Продажи.ДокументПродажи.Номер
       |ИЗ
       |    РегистрНакопления.Продажи КАК Продажи
       |ГДЕ
       |    Продажи.ДокументПродажи.Проведен
       |    И Продажи.Период > &НачПериода
       |    И Продажи.Период < &КонПериода
       |    И Продажи.Номенклатура = &Номенклатура
       |ИТОГИ
       |    СУММА(Количество)
       |ПО
       |    ОБЩИЕ
       |»;

   НатальяК

10 — 11.08.06 — 19:33

если не задана Номенклатура нужно вывести ВСЁ а если задана, то по конкретной позиции…

   PR

11 — 11.08.06 — 19:36

Наташа, вы меня извините, но я бы вам порекомендовал срочно подучиться или чем-нить другим заняться :o)
Без обид, просто констатация факта :o)

Если ЗначениеНеЗаполнено(ВводНоменклатура) Тогда

               Предупреждение («НЕ указана Номенклатура»);    

               Построитель.Текст =
       «ВЫБРАТЬ
       |    Продажи.Номенклатура,
       |    Продажи.Регистратор,
       |    Продажи.Количество КАК Количество,
       |    Продажи.Стоимость КАК СУММА,
       |    Продажи.ДокументПродажи.Контрагент,
       |    Продажи.ДокументПродажи.Дата,
       |    Продажи.ДокументПродажи.Номер
       |ИЗ
       |    РегистрНакопления.Продажи КАК Продажи
       |ГДЕ
       |    Продажи.ДокументПродажи.Проведен
       |    И Продажи.Период > &НачПериода
       |    И Продажи.Период < &КонПериода
       |»;
Иначе
       Построитель.Текст =
       «ВЫБРАТЬ
       |    Продажи.Номенклатура,
       |    Продажи.Регистратор,
       |    Продажи.Количество КАК Количество,
       |    Продажи.Стоимость КАК СУММА,
       |    Продажи.ДокументПродажи.Контрагент,
       |    Продажи.ДокументПродажи.Дата,
       |    Продажи.ДокументПродажи.Номер
       |ИЗ
       |    РегистрНакопления.Продажи КАК Продажи
       |ГДЕ
       |    Продажи.ДокументПродажи.Проведен
       |    И Продажи.Период > &НачПериода
       |    И Продажи.Период < &КонПериода
       |    И Продажи.Номенклатура = &Номенклатура
       |ИТОГИ
       |    СУММА(Количество)
       |ПО
       |    ОБЩИЕ
       |»;
КонецЕсли;

   НатальяК

12 — 11.08.06 — 19:37

Я как раз учусь

   PR

13 — 11.08.06 — 19:39

(12) Тогда вы рано начали задавать вопросы на форуме, такую элементарщину нужно читать в ЖКК (документация) и на дисках ИТС.
А вообще лучшая школа — это 1С франчайзи, устройтесь в какой-нить, там научат :o)

   НатальяК

14 — 11.08.06 — 19:42

малиновые штаны? ну тогда

КУуууу

   PR

15 — 11.08.06 — 19:48

(14) Нет, просто подсказки на форуме как правило ничему не учат, люди через минуту забывают то, что им сказали, потому что они НЕ ПОНИМАЮТ этого, они просто тупо переписывают код, который им написали :o)

Да и почему в среде одинэсников считается, что прочитать несколько жалких книжек — себя не уважать и всегда успеется? Почему бы не потратить месяц на самообучение?

   НатальяК

16 — 11.08.06 — 19:52

Я форум очень внимательно читаю (и перечитываю) и ссылку твою по Построителю распечатала и N-ского захода прониклась

но другой литературы кроме ПС и твоей статьи где бы для «особенных Ламеров» ( к коим я себя отношу) нет.

поэтому решила спросить

   НатальяК

17 — 11.08.06 — 20:00

и это……

ТВОЙ ПРИМЕР не работает

и не потому, что я чего то не понимаю….

   PR

18 — 11.08.06 — 20:05

(17) Если он не работает, то он не у меня не работает, так как я всего лишь показал принцип, верность текста запроса я ессно не проверял, как я могу его проверить :o)

   НатальяК

19 — 14.08.06 — 12:13

Прочитав еще раз ТВОЙ трактат таки сдела..

НО (учитывая, что мозг мой женский) не стала плодить как ты предлагал запросы а упрямо нарашиваю имеющийся

всё работает. ты был прав (конечно прав) не имеет значение где в модуле или в форме.

   dimoff

20 — 14.08.06 — 12:16

Про женщин в (7) не согласен. Видел множество мужских примеров, куда более вопиющих.

   PR

21 — 14.08.06 — 14:10

(20) Из всякого правила…

   PR

22 — 14.08.06 — 14:12

(19) Поздравляю.
Хотя, если запрос не наращивается, а один раз делается либо таким, либо таким (а так и есть, судя по твоим постам), то мне кажется более логичным задание его одним блоком, хотя бы потому, что его можно редактировать в конструкторе ;)

   acsent

23 — 14.08.06 — 14:14

        Построитель.Текст =
        "ВЫБРАТЬ
        |    Продажи.Номенклатура,
        |    Продажи.Регистратор,
        |    Продажи.Количество КАК Количество,
        |    Продажи.Стоимость КАК СУММА,
        |    Продажи.ДокументПродажи.Контрагент,
        |    Продажи.ДокументПродажи.Дата,
        |    Продажи.ДокументПродажи.Номер
        |ИЗ
        |    РегистрНакопления.Продажи КАК Продажи
        |ГДЕ
        |    Продажи.ДокументПродажи.Проведен
        |    И Продажи.Период > &НачПериода
        |    И Продажи.Период < &КонПериода
        |{
        |ГДЕ
        |    Продажи.Номенклатура КАК Номенклатура
        |}
        |ИТОГИ
        |    СУММА(Количество)
        |ПО
        |    ОБЩИЕ
        |";
        ЭлОтбора = Построитель.Отбор.Добавить("Номенклатура");
        ЭлОтбора.Значение = ВводНоменклатура;
        ЭлОтбора.Использование = НЕ ЗначениеНеЗаполнено(ВводНоменклатура);
   НатальяК

24 — 14.08.06 — 20:33

(23)

Красиво как получается.

Спасибо.

   НатальяК

25 — 16.08.06 — 14:08

Эх…. признаю…. туплю…. ну туплю! Что тут сказать?

По порядку.

ПостроительОтчета является реквизитом отчета

На форме сделала табличное поле

Данные:ПостроительОтчета.Порядок

тип значения: Порядок

(тест запроса находится в Форме)

не работает (не добавить, не изменить)

Построитель = Новый ПостроительОтчета;

   Построитель.Текст =

   «ВЫБРАТЬ

   |    Продажи.Номенклатура,

   |    Продажи.Регистратор,

   |    Продажи.Количество КАК Количество,

   |    Продажи.Стоимость КАК СУММА,

   |    Продажи.ДокументПродажи.Контрагент,

   |    Продажи.ДокументПродажи.Дата,

   |    Продажи.ДокументПродажи.Номер,

   |    Продажи.Регистратор.Ответственный.Ссылка

   |{ВЫБРАТЬ

   |    Номенклатура.*,

   |    Регистратор.*,

   |    Количество,

   |    СУММА,

   |    ДокументПродажиКонтрагент.*,

   |    ДокументПродажиДата КАК ДокументПродажиДата,

   |    ДокументПродажиНомер,

   |    РегистраторОтветственныйСсылка.*}

   |ИЗ

   |    РегистрНакопления.Продажи КАК Продажи

   |ГДЕ

   |    Продажи.ДокументПродажи.Проведен

   |    И Продажи.Период > &НачПериода

   |    И Продажи.Период < &КонПериода

   |{ГДЕ

   |    Продажи.Номенклатура КАК Номенклатура,

   |    Продажи.Регистратор.Ответственный.Ссылка КАК Менеджер}

   |{УПОРЯДОЧИТЬ ПО

   |    ДокументПродажиНомер,

   |    ДокументПродажиДата,

   |    ДокументПродажиКонтрагент.*,

   |    СУММА,

   |    Количество}

   |ИТОГИ

   |    СУММА(Количество)

   |ПО

   |    ОБЩИЕ

   |{ИТОГИ ПО

   |    СУММА}»;

       
       
       
   Построитель.ЗаполнитьНастройки();

   
   Построитель.Параметры.Вставить(«НачПериода», НачПериода );

   Построитель.Параметры.Вставить(«КонПериода», КонПериода );

   Построитель.Параметры.Вставить(«Номенклатура», ВНоменклатура);

    ЭлОтбора = Построитель.Отбор.Добавить(«Номенклатура»);

    ЭлОтбора.Значение = ВНоменклатура;

    ЭлОтбора.Использование = НЕ ЗначениеНеЗаполнено(ВНоменклатура);

…..

   НатальяК

26 — 17.08.06 — 12:48

УРА!!!!!!!!!!

сняла с тормоза!!!

(26) Поздравляю :))

Содержание:

1.       Ошибка при установке значения атрибута контекста

2.       Ошибка при получении значения атрибута контекста

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

1.    Ошибка при установке значения атрибута контекста

Ошибка при установке значения атрибута контекста говорит нам о невозможности присвоить выбранное значение определенному атрибуту информационного объекта. Вызвано это либо несовпадением типа атрибута и присваиваемого ей значения, отсутствием возможности присвоить значение выбранному атрибуту, так как его можно только читать, но не записывать в него, отсутствием прав у текущего пользователя на запись значений в данный атрибут. Например, в реквизит «ДатаДокумента» с типом «Дата» пытаемся записать строку, в реквизит с типом данных ссылки на документ пытаемся записать не ссылку, а объект, полученный по ссылке, что невозможно из-за несоответствия типов, что приводит к ошибке установки значения атрибута. 

Другой пример – проходя циклом выборку запроса, пытаемся в колонку выборки записать значение, что невозможно, так как значения выборки запроса можно только считывать, а для того, чтобы можно было полученные из запроса данные изменять в коде, нужно пользоваться не выборкой, а выгружать результат запроса в таблицу значений, в таком случае в цикле по ней можно будет менять значения в колонках, но только на значения, соответствующие типу колонки. Либо у пользователя, под которым выполняется код, нет прав на изменение даты документа, при попытке записать в данный реквизит новую дату, будет выведено сообщение об ошибке установке значения, но в причине будет указано отсутствие прав у пользователя.  

2.    Ошибка при получении значения атрибута контекста

Ошибка при получении значения атрибута контекста указывает на невозможность прочитать значение атрибута объекта в силу его отсутствия, либо отсутствия прав на его чтение. Например, обращение к несуществующему реквизиту объекта, несуществующему полю выборки из запроса, несуществующему свойству элемента формы и т.п. Так же как пример можно рассмотреть получение текущего пользователя из параметров сеанса — если данный параметр сеанса не установлен, то тоже будет выведена ошибка получения значения атрибута контекста, но в причине будет указана попытка получения неинициализированного значения параметра сеанса.

При возникновении данных ошибок значения атрибута в 1Св первую очередь следует проверить существование атрибута, к которому обращаются, затем проверить совпадение типов значений атрибута и присваиваемого ему значения, затем уже проверить права на установку либо чтение значения. Проверить, является ли дело в правах либо дать права на действия с атрибутом, можно, установив привилегированный режим для совершения действия с данным атрибутом, прописав перед строчкой с ошибкой УстановитьПривилегированныйРежим(Истина), после строчки — УстановитьПривилегированныйРежим(Ложь).  

Специалист компании «Кодерлайн»

Александр Суворов

>
8.2 Проблема с временной таблицей в постоителе

  • Подписаться на тему
  • Сообщить другу
  • Скачать/распечатать тему



Сообщ.
#1

,
16.08.12, 06:55

    Делаю запрос для построителя:

    ExpandedWrap disabled

      ТаблицаПервичныхДанных = Новый ТаблицаЗначений;

      ТаблицаПервичныхДанных.Колонки.Добавить(«ДатаВизитаМесяцСтрокой», Новый ОписаниеТипов(«Строка»));

      УниверсальныйОтчет.ПостроительОтчета.Параметры.Вставить(«ТаблицаПервичныхДанных», ТаблицаПервичныхДанных);

      ТекстЗапроса = «

      |ВЫБРАТЬ

      |   *

      |ПОМЕСТИТЬ

      |   ПервичнаяТаблица

      |ИЗ

      |   &ТаблицаПервичныхДанных КАК ТаблицаПервичныхДанныхВрем

      |;

      |

      |…….»;

      УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;

    Вываливается сообщение:
    Ошибка при установке значения атрибута контекста (Текст)
    УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
    по причине:
    {(7, 2)}: Неверные параметры «ТаблицаПервичныхДанных»
    <<?>>&ТаблицаПервичныхДанных КАК ТаблицаПервичныхДанныхВрем

    Что делать не соображу, нужно поместить данные в первичную таблицу из таблицы значений для выполнения запроса, как это ещё можно сделать?


    Outlander



    Сообщ.
    #2

    ,
    22.08.12, 14:25

      Таблица Первичных данных должна быть жестко типизирована


      lastlogic



      Сообщ.
      #3

      ,
      23.08.12, 11:03

        Цитата Outlander @ 22.08.12, 14:25

        должна быть жестко типизирована

        Сделал так:

        ExpandedWrap disabled

          КС = Новый КвалификаторыСтроки(10);

          Массив = Новый Массив;

          Массив.Добавить(Тип(«Строка»));

          ОписаниеТиповС = Новый ОписаниеТипов(Массив, , КС);

          ТаблицаПервичныхДанных = Новый ТаблицаЗначений;

          ТаблицаПервичныхДанных.Колонки.Добавить(«ДатаВизитаМесяцСтрокой», ОписаниеТиповС, «ДатаВизитаМесяцСтрокой», 10);

        Не помогло, также ошибка.


        Outlander



        Сообщ.
        #4

        ,
        24.08.12, 07:12

          Выбрать * в этом случае тоже не катит :( надо явно именовать поля

          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)

          0 пользователей:

          • Предыдущая тема
          • 1С: Проблемы и решения
          • Следующая тема

          [ Script execution time: 0,0532 ]   [ 15 queries used ]   [ Generated: 14.06.23, 03:20 GMT ]  

          Anhel

          Постоялец

          ru
          Offline Offline


          Доброго времени суток! Не могу понять что делаю не так, подскажите что не правильно:

          ТаблицаДанных = ТЗ.Скопировать();

          ТекстЗапроса = «ВЫБРАТЬ
                         | ВЫРАЗИТЬ(ТаблицаДанных.ДокументОснование КАК Документ.ПеремещениеТоваров) КАК ДокументОснование,
                         | ВЫРАЗИТЬ(ТаблицаДанных.Номенклатура КАК Справочник.Номенклатура) КАК Номенклатура,
                         | ВЫРАЗИТЬ(ТаблицаДанных.Количество КАК ЧИСЛО) КАК Количество,
                         | ВЫРАЗИТЬ(ТаблицаДанных.ЦенаТранспорта КАК ЧИСЛО) КАК ЦенаТранспорта,
                         | ВЫРАЗИТЬ(ТаблицаДанных.ЦенаНоменклатуры КАК ЧИСЛО) КАК ЦенаНоменклатуры,
                         | ВЫРАЗИТЬ(ТаблицаДанных.СуммаНоменклатуры КАК ЧИСЛО) КАК СуммаНоменклатуры,
                         | ВЫРАЗИТЬ(ТаблицаДанных.ЦенаБезТранспорта КАК ЧИСЛО) КАК ЦенаСТрРасходами,
                         | ВЫРАЗИТЬ(ТаблицаДанных.СуммаБезТранспорта КАК ЧИСЛО) КАК СуммаСТрРасходами,
                         | ВЫРАЗИТЬ(ТаблицаДанных.ЦенаЗатратНаКуб КАК ЧИСЛО) КАК ЦенаЗатратНаМ3,
                         | ВЫРАЗИТЬ(ТаблицаДанных.СкладПолучатель КАК Справочник.Склады) КАК СкладПолучатель
                         |ПОМЕСТИТЬ Таблица
                         |{ВЫБРАТЬ
                         | ДокументОснование.*,
                         | Номенклатура.*,
                         | Количество,
                         | ЦенаТранспорта,
                         | ЦенаНоменклатуры,
                         | СуммаНоменклатуры,
                         | ЦенаСТрРасходами,
                         | СуммаСТрРасходами,
                         | ЦенаЗатратНаМ3,
                         | СкладПолучатель.*}
                         |ИЗ
                         | &ТаблицаДанных КАК ТаблицаДанных
                         |{ГДЕ
                         | (ВЫРАЗИТЬ(ТаблицаДанных.ДокументОснование КАК Документ.ПеремещениеТоваров)).* КАК ДокументОснование,
                         | (ВЫРАЗИТЬ(ТаблицаДанных.Номенклатура КАК Справочник.Номенклатура)).* КАК Номенклатура,
                         | (ВЫРАЗИТЬ(ТаблицаДанных.Количество КАК ЧИСЛО)) КАК Количество,
                         | (ВЫРАЗИТЬ(ТаблицаДанных.ЦенаТранспорта КАК ЧИСЛО)) КАК ЦенаТранспорта,
                         | (ВЫРАЗИТЬ(ТаблицаДанных.ЦенаНоменклатуры КАК ЧИСЛО)) КАК ЦенаНоменклатуры,
                         | (ВЫРАЗИТЬ(ТаблицаДанных.СуммаНоменклатуры КАК ЧИСЛО)) КАК СуммаНоменклатуры,
                         | (ВЫРАЗИТЬ(ТаблицаДанных.ЦенаБезТранспорта КАК ЧИСЛО)) КАК ЦенаСТрРасходами,
                         | (ВЫРАЗИТЬ(ТаблицаДанных.СуммаБезТранспорта КАК ЧИСЛО)) КАК СуммаСТрРасходами,
                         | (ВЫРАЗИТЬ(ТаблицаДанных.ЦенаЗатратНаКуб КАК ЧИСЛО)) КАК ЦенаЗатратНаМ3,
                         | (ВЫРАЗИТЬ(ТаблицаДанных.СкладПолучатель КАК Справочник.Склады)).* КАК СкладПолучатель}
                         |{УПОРЯДОЧИТЬ ПО
                         | ДокументОснование.*,
                         | Номенклатура.*,
                         | Количество,
                         | ЦенаТранспорта,
                         | ЦенаНоменклатуры,
                         | СуммаНоменклатуры,
                         | ЦенаСТрРасходами,
                         | СуммаСТрРасходами,
                         | ЦенаЗатратНаМ3,
                         | СкладПолучатель.*}
                         |{ИТОГИ ПО
                         | ДокументОснование.*,
                         | Номенклатура.*,
                         | Количество,
                         | ЦенаТранспорта,
                         | ЦенаНоменклатуры,
                         | СуммаНоменклатуры,
                         | ЦенаСТрРасходами,
                         | СуммаСТрРасходами,
                         | ЦенаЗатратНаМ3,
                         | СкладПолучатель.*}
                         |;
                         |
                         |////////////////////////////////////////////////////////////////////////////////
                         |ВЫБРАТЬ
                         | Таблица.ДокументОснование КАК ДокументОснование,
                         | Таблица.Номенклатура,
                         | Таблица.Количество КАК Количество,
                         | Таблица.ЦенаТранспорта КАК ЦенаТранспорта,
                         | Таблица.ЦенаНоменклатуры КАК ЦенаНоменклатуры,
                         | Таблица.СуммаНоменклатуры КАК СуммаНоменклатуры,
                         | Таблица.ЦенаСТрРасходами КАК ЦенаСТрРасходами,
                         | Таблица.СуммаСТрРасходами КАК СуммаСТрРасходами,
                         | Таблица.ЦенаЗатратНаМ3 КАК ЦенаЗатратНаМ3,
                         | Таблица.СкладПолучатель
                         |{ВЫБРАТЬ
                         | ДокументОснование.*,
                         | Номенклатура.*,
                         | Количество,
                         | ЦенаТранспорта,
                         | ЦенаНоменклатуры,
                         | СуммаНоменклатуры,
                         | ЦенаСТрРасходами,
                         | СуммаСТрРасходами,
                         | ЦенаЗатратНаМ3,
                         | СкладПолучатель.*}
                         |ИЗ
                         | Таблица КАК Таблица
                         |{ГДЕ
                         | Таблица.ДокументОснование.*,
                         | Таблица.Номенклатура.*,
                         | Таблица.Количество,
                         | Таблица.ЦенаТранспорта,
                         | Таблица.ЦенаНоменклатуры,
                         | Таблица.СуммаНоменклатуры,
                         | Таблица.ЦенаСТрРасходами,
                         | Таблица.СуммаСТрРасходами,
                         | Таблица.ЦенаЗатратНаМ3,
                         | Таблица.СкладПолучатель.*}
                         |
                         |УПОРЯДОЧИТЬ ПО
                         | Таблица.ДокументОснование.Дата
                         |{УПОРЯДОЧИТЬ ПО
                         | ДокументОснование.*,
                         | Номенклатура.*,
                         | Количество,
                         | ЦенаТранспорта,
                         | ЦенаНоменклатуры,
                         | СуммаНоменклатуры,
                         | ЦенаСТрРасходами,
                         | СуммаСТрРасходами,
                         | ЦенаЗатратНаМ3,
                         | СкладПолучатель.*}
                         |ИТОГИ
                         | СУММА(Количество),
                         | СУММА(ЦенаТранспорта),
                         | СУММА(ЦенаНоменклатуры),
                         | СУММА(СуммаНоменклатуры),
                         | СУММА(ЦенаСТрРасходами),
                         | СУММА(СуммаСТрРасходами),
                         | СУММА(ЦенаЗатратНаМ3)
                         |ПО
                         | ОБЩИЕ,
                         | ДокументОснование
                         |{ИТОГИ ПО
                         | ДокументОснование.*,
                         | Номенклатура.*,
                         | Количество,
                         | ЦенаТранспорта,
                         | ЦенаНоменклатуры,
                         | СуммаНоменклатуры,
                         | ЦенаСТрРасходами,
                         | СуммаСТрРасходами,
                         | ЦенаЗатратНаМ3,
                         | СкладПолучатель.*}»;

          Параметры = УниверсальныйОтчет.ПостроительОтчета.Параметры;
          Параметры.Вставить(«ТаблицаДанных», ТаблицаДанных);
          УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;

          Выдает ошибку: {ВнешнийОтчет.Доставки.МодульОбъекта(253)}: Ошибка при установке значения атрибута контекста (Текст)
             УниверсальныйОтчет.ПостроительОтчета.Текст = ТекстЗапроса;
          по причине:

          по причине:
          {(25, 2)}: Неверные параметры «ТаблицаДанных»
          <<?>>&ТаблицаДанных КАК ТаблицаДанных


          Записан
          Kivals


          По-моему так делать нельзя — нужно идти через МенеджерВременныхТаблиц. Вот пример для простого запроса (без построителя):

          // Сформируем запрос
          МенеджерВТ = Новый МенеджерВременныхТаблиц();
          Запрос=Новый Запрос();
          Запрос.МенеджерВременныхТаблиц = МенеджерВТ;

          // Текущие препараты в документе
          ТекстЗапроса =
            «ВЫБРАТЬ
            | Препарат, Кво, Период
            |ПОМЕСТИТЬ ПрепаратыДокумента
            |ИЗ
            | &Препараты КАК Препараты
            |ГДЕ Препараты.Кво<>0
            |»;
          Запрос.Текст=ТекстЗапроса;
          Запрос.Параметры.Очистить();
          Запрос.Параметры.Вставить(«Препараты», Препараты.Выгрузить()); // Препараты — это табличная часть
          Запрос.Выполнить();
          // …
          // Сведем количество в одну таблицу
          ТекстЗапроса =
            «ВЫБРАТЬ
            | ЕСТЬNULL(ПрепаратыДокумента.Период, ЕСТЬNULL(ПрепаратыДокументаПлан.Период, ПрепаратыРегистра.Период)) КАК Период,
            | ЕСТЬNULL(ПрепаратыДокумента.Препарат, ЕСТЬNULL(ПрепаратыДокументаПлан.Препарат, ПрепаратыРегистра.Препарат)) КАК Препарат,
            | ЕСТЬNULL(ПрепаратыДокумента.Кво, ПрепаратыРегистра.Кво) КАК Кво,
            | ЕСТЬNULL(ПрепаратыДокументаПлан.ПлановоеКво, ПрепаратыРегистра.ПлановоеКво) КАК ПлановоеКво
            |ПОМЕСТИТЬ Препараты
            |ИЗ
            | ПрепаратыРегистра КАК ПрепаратыРегистра
            | ПОЛНОЕ СОЕДИНЕНИЕ ПрепаратыДокумента КАК ПрепаратыДокумента
            | ПО ПрепаратыРегистра.Препарат = ПрепаратыДокумента.Препарат
            | И ПрепаратыРегистра.Период = ПрепаратыДокумента.Период
            | ПОЛНОЕ СОЕДИНЕНИЕ ПрепаратыДокументаПлан КАК ПрепаратыДокументаПлан
            | ПО ПрепаратыРегистра.Препарат = ПрепаратыДокументаПлан.Препарат
            | И ПрепаратыРегистра.Период = ПрепаратыДокументаПлан.Период»;
          Запрос.Текст=ТекстЗапроса;
          Запрос.Параметры.Очистить();
          Запрос.Выполнить();


          Записан
          Anhel

          Постоялец

          ru
          Offline Offline


          Спасибо за ответ. Получается что построитель не может использовать внешние таблицы как ТЗ?


          Записан
          Kivals


          Да нет — мне кажется может. Просто сначала их нужно поместить во временную таблицу простым запросом (ВЫБРАТЬ * ПОМЕСТИТЬ ВременнаяТаблица ИЗ &ТаблицаДанных КАК ТаблицаДанных), а уже потом использовать ее (временную таблицу) в основном запросе.


          Записан
          Anhel

          Постоялец

          ru
          Offline Offline


          Не хочет так работать, пробовали МенеджеромВрТаб и временной таблицей, внешним источником данных, ругается и все.


          Записан
          Anhel

          Постоялец

          ru
          Offline Offline


          Сделал отчет через макет табличного документа.


          Записан

          Ошибка при установке значения атрибута контекста (СписокВыбора)

          Данная ошибка возникает при попытке установить полю с типом «СписокЗначений» значение неподходящего типа. Например: Неопределено. 

          Полная ошибка

          Ошибка при установке значения атрибута контекста (СписокВыбора)
          ЭлементыФормы.Поставщик.СписокВыбора = КЭШируемые.СписокПоставщиков(Контрагент);
          по причине:
          Несоответствие типов

          Скриншот:oshibka-ustanovki-spiska-vybora

          Причина: В функции, которая формировала данный список (КЭШируемые.СписокПоставщиков()) отсутствовал возврат значения.


          В экспериментальных целях:

          передал значение с типом «Массив»  — текст ошибки не поменялся.

          В итоге переписал на более универсальный метод ЗагрузитьЗначения() самого элемента диалога:

          ЭлементыФормы.Поставщик.СписокВыбора.ЗагрузитьЗначения(КЭШируемые.СписокПоставщиков(Контрагент));

          Реклама — искусство превращения полуправды в полную ложь.

          Понравилась статья? Поделить с друзьями:
        • Ошибка при установке значения атрибута контекста сессия
        • Ошибка при установке значения атрибута контекста путькданнымзаголовка
        • Ошибка при установке значения атрибута контекста путькданным недопустимое значение
        • Ошибка при установке значения атрибута контекста приоритет
        • Ошибка при установке значения атрибута контекста пользовательос