8.х Написание внешнего отчета

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем MyNameNoName, 26 июн 2013.

  1. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Понятно. А можно этот же флажок привязать к полю ввода чтобы при включение оно становилось активным, а по умолчанию нельзя было нечего выбрать?
  2. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Смысл должен быть таким:
    Код:
    Процедура Флажок1ПриИзменении(Элемент)
    Если Флажок1 = Истина Тогда
    ПолеВвода3.Активно;
    Иначе
    ПолеВвода3.Пассивно;
    КонецЕсли;
    
  3. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Код:
    Если Флажок1 Тогда
    ЭлементыФормы.ПолеВвода3.Доступность = Истина;
    Иначе
    ЭлементыФормы.ПолеВвода3.Доступность = Ложь;
    КонецЕсли
  4. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    А как само условие теперь переписать?
    Код:
    |    И ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель В(&ПараметрГруппа)
    
    Код:
    Если Флажок1 = Истина Тогда
    Запрос.УстановитьПараметр("ПараметрГруппа", ПараметрГруппа);
    Иначе
    ПараметрГруппа В ????(нужны все группы)
    КонецЕсли;
    
    Перечислять их все или можно проще?
  5. rshakiro
    Offline

    rshakiro Профессионал в 1С Команда форума

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    строку нужно в условие переписать:
    Код:
    Запрос.Текст = Запрос.Текст + "И ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель В(&ПараметрГруппа)";
    примерно так:
    Код:
    Если Флажок1 = Истина Тогда
    Запрос.Текст = Запрос.Текст + "И ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель В(&ПараметрГруппа)";
    Запрос.УстановитьПараметр("ПараметрГруппа", ПараметрГруппа);
    Иначе
    //ПараметрГруппа В ????(нужны все группы)
    КонецЕсли;
  6. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Тебе надо не только параметр менять, но и в запросе менять услови в зввисимости от флага..


    Код:
    Текст = "тут текст запроса без параметра";
    Если Флажок1 Тогда
    Текст=Текст + "
    |Где
    |твой параметр = &ПараметрГруппа ";
    Иначе
    Текст=Текст + "
    |Где
    |твой параметр В(ПараметрГруппа )";
    Запрос.Текст=текст;
    я не проверял на синтаксический контроль
  7. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Гениально, но что-то я не до понимаю видимо
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |	СУММА(ПотребностиЗаказовНаПроизводство.Количество) КАК ЗаказКоличество,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.Код КАК ЗаказНоменклатураКод,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.Артикул КАК ЗаказНоменклатураАртикул,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.Наименование КАК ЗаказНоменклатураНаименование,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства КАК ЗаказНоменклатураВидВоспроизводства,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.ВидНоменклатуры КАК ЗаказНоменклатураВидНоменклатуры,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.БазоваяЕдиницаИзмерения КАК ЗаказНоменклатураБазоваяЕдиницаИзмерения,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.ОсновнойПоставщик КАК НоменклатураОсновнойПоставщик
    |ИЗ
    |	РегистрНакопления.ПотребностиЗаказовНаПроизводство КАК ПотребностиЗаказовНаПроизводство
    |ГДЕ
    |	ПотребностиЗаказовНаПроизводство.ЗаказНаПроизводство В(&ПараметрЗаказ)
    |	И ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства В(&ПараметрВидВоспроизводства)
    |
    |СГРУППИРОВАТЬ ПО
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.Код,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.Артикул,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.Наименование,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.ВидНоменклатуры,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.БазоваяЕдиницаИзмерения,
    |	ПотребностиЗаказовНаПроизводство.Номенклатура.ОсновнойПоставщик";
    Запрос.УстановитьПараметр("ПараметрЗаказ", ПараметрЗаказ);
    Запрос.УстановитьПараметр("ПараметрВидВоспроизводства", ПараметрВидВоспроизводства);
    Запрос.УстановитьПараметр("ПараметрГруппа", ПараметрГруппа);
    Если Флажок1 = Истина Тогда
    Запрос.Текст = Запрос.Текст + "И ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель В(&ПараметрГруппа)";
    КонецЕсли;
    Таблица = Запрос.Выполнить().Выгрузить();
    
    {Форма.ФормаОтчета.Форма(86)}: Ошибка при вызове метода контекста (Выполнить)
    Таблица = Запрос.Выполнить().Выгрузить();
    по причине:
    {(23, 67)}: Синтаксическая ошибка "ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель"
    ПотребностиЗаказовНаПроизводство.Номенклатура.ОсновнойПоставщикИ <<?>>ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель В(&ПараметрГруппа)
  8. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | СУММА(ПотребностиЗаказовНаПроизводство.Количество) КАК ЗаказКоличество,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Код КАК ЗаказНоменклатураКод,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Артикул КАК ЗаказНоменклатураАртикул,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Наименование КАК ЗаказНоменклатураНаименование,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства КАК ЗаказНоменклатураВидВоспроизводства,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ВидНоменклатуры КАК ЗаказНоменклатураВидНоменклатуры,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.БазоваяЕдиницаИзмерения КАК ЗаказНоменклатураБазоваяЕдиницаИзмерения,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ОсновнойПоставщик КАК НоменклатураОсновнойПоставщик
    |ИЗ
    | РегистрНакопления.ПотребностиЗаказовНаПроизводство КАК ПотребностиЗаказовНаПроизводство
    |ГДЕ
    | НашПараметрЗаказ
    | И ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства В(&ПараметрВидВоспроизводства)
    |
    |СГРУППИРОВАТЬ ПО
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Код,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Артикул,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Наименование,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ВидНоменклатуры,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.БазоваяЕдиницаИзмерения,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ОсновнойПоставщик";
    Запрос.УстановитьПараметр("ПараметрВидВоспроизводства", 1);
    Если Флажок1= Истина Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "НашПараметрЗаказ", "ПотребностиЗаказовНаПроизводство.ЗаказНаПроизводство В(&ПараметрГруппа)";
    Запрос.УстановитьПараметр("ПараметрГруппа", ПараметрГруппа);
    Иначе
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "НашПараметрЗаказ", "ПотребностиЗаказовНаПроизводство.ЗаказНаПроизводство =&ПараметрЗаказ)";
    Запрос.УстановитьПараметр("ПараметрЗаказ", ПараметрЗаказ);
    КонецЕсли;
    
    Таблица = Запрос.Выполнить().Выгрузить();
  9. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    удалено
  10. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Схожу с ума:
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    СУММА(ПотребностиЗаказовНаПроизводство.Количество) КАК ЗаказКоличество,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.Код КАК ЗаказНоменклатураКод,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.Артикул КАК ЗаказНоменклатураАртикул,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.Наименование КАК ЗаказНоменклатураНаименование,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства КАК ЗаказНоменклатураВидВоспроизводства,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.ВидНоменклатуры КАК ЗаказНоменклатураВидНоменклатуры,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.БазоваяЕдиницаИзмерения КАК ЗаказНоменклатураБазоваяЕдиницаИзмерения,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.ОсновнойПоставщик КАК НоменклатураОсновнойПоставщик
    |ИЗ
    |    РегистрНакопления.ПотребностиЗаказовНаПроизводство КАК ПотребностиЗаказовНаПроизводство
    |ГДЕ
    |    ПотребностиЗаказовНаПроизводство.ЗаказНаПроизводство В(&ПараметрЗаказ)
    |    И ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства В(&ПараметрВидВоспроизводства)
    |   НашПараметрЗаказ
    |СГРУППИРОВАТЬ ПО
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.Код,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.Артикул,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.Наименование,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.ВидНоменклатуры,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.БазоваяЕдиницаИзмерения,
    |    ПотребностиЗаказовНаПроизводство.Номенклатура.ОсновнойПоставщик";
    Запрос.УстановитьПараметр("ПараметрЗаказ", ПараметрЗаказ);
    Запрос.УстановитьПараметр("ПараметрВидВоспроизводства", ПараметрВидВоспроизводства);
    Запрос.УстановитьПараметр("ПараметрГруппа", ПараметрГруппа);
    Если Флажок1 = Истина Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "НашПараметрЗаказ", "ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель В(&ПараметрГруппа)");
    Иначе
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "НашПараметрЗаказ", "ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель =&ПараметрЗаказ)");
    КонецЕсли;
    Таблица = Запрос.Выполнить().Выгрузить();
    
    {Форма.ФормаОтчета.Форма(88)}: Ошибка при вызове метода контекста (Выполнить)
    Таблица = Запрос.Выполнить().Выгрузить();
    по причине:
    {(15, 4)}: Синтаксическая ошибка "ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель"
    <<?>>ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель =&ПараметрЗаказ)
  11. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    сравни свой и мой запросы... сделай как у меня , я не проверял, но вроде все ок
  12. Неназываемый
    Offline

    Неназываемый Опытный в 1С Команда форума

    Регистрация:
    2 фев 2007
    Сообщения:
    507
    Симпатии:
    7
    Баллы:
    29
    Код:
    |	ПотребностиЗаказовНаПроизводство.ЗаказНаПроизводство В(&ПараметрЗаказ)
    |	И ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства В(&ПараметрВидВоспроизводства)
    |   НашПараметрЗаказ
  13. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26

    Вложения:

  14. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | СУММА(ПотребностиЗаказовНаПроизводство.Количество) КАК ЗаказКоличество,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Код КАК ЗаказНоменклатураКод,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Артикул КАК ЗаказНоменклатураАртикул,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Наименование КАК ЗаказНоменклатураНаименование,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства КАК ЗаказНоменклатураВидВоспроизводства,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ВидНоменклатуры КАК ЗаказНоменклатураВидНоменклатуры,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.БазоваяЕдиницаИзмерения КАК ЗаказНоменклатураБазоваяЕдиницаИзмерения,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ОсновнойПоставщик КАК НоменклатураОсновнойПоставщик
    |ИЗ
    | РегистрНакопления.ПотребностиЗаказовНаПроизводство КАК ПотребностиЗаказовНаПроизводство
    |ГДЕ
    |   НашПараметрЗаказ
    | И ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства В(&ПараметрВидВоспроизводства)
    |СГРУППИРОВАТЬ ПО
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Код,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Артикул,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.Наименование,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ВидВоспроизводства,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ВидНоменклатуры,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.БазоваяЕдиницаИзмерения,
    | ПотребностиЗаказовНаПроизводство.Номенклатура.ОсновнойПоставщик";
    Запрос.УстановитьПараметр("ПараметрЗаказ", ПараметрЗаказ);
    Запрос.УстановитьПараметр("ПараметрВидВоспроизводства", ПараметрВидВоспроизводства);
    Запрос.УстановитьПараметр("ПараметрГруппа", ПараметрГруппа);
    Если Флажок1 = Истина Тогда
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "НашПараметрЗаказ", "ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель В(&ПараметрГруппа)");
    Иначе
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "НашПараметрЗаказ", "ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель =&ПараметрЗаказ");
    КонецЕсли;
    Таблица = Запрос.Выполнить().Выгрузить();
    
    замени свое на это, у меня текст запроса нормально формируется, все должно работать
  15. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Заменил, все равно не формируется

    Не формируется если не стоит галочка группа
  16. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    {Форма.ФормаОтчета.Форма(89)}: Ошибка при вызове метода контекста (Выполнить)
    Таблица = Запрос.Выполнить().Выгрузить();
    по причине:
    {(15, 61)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
    неограниченной длины и поля несовместимых типов.
    И ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель <<?>>= &ПараметрЗаказ

    Нужно видимо использовать выразить как но тогда ругается нет как
  17. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    у параметр заказ какой тип данных?
  18. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    СписокЗначений

    А причем он тут мне нужен ПараметрГруппа он типа СправочникСсылка.Номенклатура
  19. n.s.gnedash
    Offline

    n.s.gnedash Опытный в 1С Команда форума

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29
    я спросил про ПараметрЗаказ, а не про ПараметрГруппа... наверно там строка
  20. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Нет параметр заказ там список значений и ссылается он на справочник ДокументСсылка.ЗаказНаПроизводство

    {(14, 61)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
    неограниченной длины и поля несовместимых типов.
    И ПотребностиЗаказовНаПроизводство.Номенклатура.Родитель <<?>>= &ПараметрЗаказ

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