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

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

  1. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Не помогает, я так и пробовал. Поле ввода называется ПолеВвода2, а хранящиеся данные ПараметрВидВоспроизводства.
    Код:
    Процедура ПолеВвода2Открытие(Элемент, СтандартнаяОбработка)
    ПолеВвода2 = Перечисления.ВидыВоспроизводстваНоменклатуры.Закупка;
    КонецПроцедуры
    
  2. n.s.gnedash
    Offline

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

    Регистрация:
    15 авг 2010
    Сообщения:
    1.359
    Симпатии:
    5
    Баллы:
    29

    Вложения:

  3. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Что-то не работает все равно.
    Код:
    Процедура ПриОткрытии()
    ПолеВвода2 = Перечисления.ВидыВоспроизводстваНоменклатуры.Закупка;
    КонецПроцедуры
    
    Имя поля ввода : ПолеВвода2
    Данные = ПараметрВидВоспроизводства
    Тип значения = ПеречислениеСсылка.ВидыВоспроизводстваНоменклатуры
  4. n.s.gnedash
    Offline

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

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

    MyNameNoName Опытный в 1С

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

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

    Регистрация:
    2 фев 2007
    Сообщения:
    507
    Симпатии:
    7
    Баллы:
    29
    Код:
    Процедура ПриОткрытии()
    ПараметрВидВоспроизводства = Перечисления.ВидыВоспроизводстваНоменклатуры.Производство;
    КонецПроцедуры
    Что за ПолеВвода2?
    В данном случае это новая переменная. Т.к. данные для элемента формы ПолеВвода2 называются "ПараметрВидВоспроизводства".
  7. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Точно!!! СПасибо)))
    Разрешите еще пару вопросиков, а то уже наверное замучил всех.
    Код:
    Функция ПолучитьАналог3(Код) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    АналогиНоменклатуры.Аналог.Наименование КАК АналогНаименование,
    |    СправочникНоменклатура.Код КАК НоменклатураКод
    |ИЗ
    |    РегистрСведений.АналогиНоменклатуры КАК АналогиНоменклатуры
    |        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
    |        ПО АналогиНоменклатуры.Номенклатура = СправочникНоменклатура.Ссылка
    |ГДЕ
    |    СправочникНоменклатура.Код = &Код
    |
    |СГРУППИРОВАТЬ ПО
    |    АналогиНоменклатуры.Аналог.Наименование,
    |    СправочникНоменклатура.Код";
    Запрос.УстановитьПараметр("Код",Код);
    РезультатЗапроса = Запрос.Выполнить();
    Выборка = РезультатЗапроса.Выбрать();
    Аналог = "";
    Пока Выборка.Следующий() Цикл
    Аналог = Выборка.АналогНаименование;
    КонецЦикла;
    Возврат Аналог;
    КонецФункции
    
    Есть такая функция, а точнее 3 функции:
    ПолучитьАналог1
    ПолучитьАналог2
    ПолучитьАналог3
    Как реализовать, чтобы функция ПолучитьАналог1 получала крайний аналог, ПолучитьАналог2 - предпоследний, ПолучитьАналог3 - 3 аналог с конца. Регистр АналогиНоменклатуры не переодический.
  8. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    если все 3 функции используют один и тот же запрос, то я бы обЪединила все в одну функцию, и выбрала 3 последних элемента в полученной выборке
  9. Неназываемый
    Offline

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

    Регистрация:
    2 фев 2007
    Сообщения:
    507
    Симпатии:
    7
    Баллы:
    29
    У меня дежавю. Опять аналоги, опять непериодический регистр и опять кривой запрос.
  10. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    +1

    2ТС: а по какому принципу вы выбирать будете 3 последних, без упорядочивания у вас на одних и тех же данных выбрка каждый раз в разнобой будет. Вам полюбому надо как-то упорядочивать
  11. Неназываемый
    Offline

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

    Регистрация:
    2 фев 2007
    Сообщения:
    507
    Симпатии:
    7
    Баллы:
    29
  12. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ладно вам, у человека беда, он помощи просит. Все мы учились и на своих ошибках в том числе
  13. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

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

    MyNameNoName Опытный в 1С

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

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

    Регистрация:
    2 фев 2007
    Сообщения:
    507
    Симпатии:
    7
    Баллы:
    29
    Вы этот вопрос уже задавали в другой теме. Ссылка на тему с ответом я вам выше дал.
  16. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    Решил проблему вот так:
    Крайнее значение:
    Код:
    Для Значения = 1 По Выборка.Количество()  Цикл
    Выборка.Следующий();
    КонецЦикла;
    Возврат Выборка.АналогНаименование;
    
    Предпоследнее:
    Код:
    Для Значения = 1 По (Выборка.Количество() - 1) Цикл
    Выборка.Следующий();
    КонецЦикла;
    Возврат Выборка.АналогНаименование;
    
    Предпредпоследнее:
    Код:
    Для Значения = 1 По (Выборка.Количество() - 2) Цикл
    Выборка.Следующий();
    КонецЦикла;
    Возврат Выборка.АналогНаименование;
    
  17. Неназываемый
    Offline

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

    Регистрация:
    2 фев 2007
    Сообщения:
    507
    Симпатии:
    7
    Баллы:
    29
    Зачем в функцию передавать код номенклатуры?
    Зачем возвращать наименование аналога?
    Зачем перебирать всю выборку когда можно запросом получить то что нужно?

    [​IMG]
  18. TopicStarter Overlay
    MyNameNoName
    Offline

    MyNameNoName Опытный в 1С

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

    MyNameNoName Опытный в 1С

    Регистрация:
    17 май 2013
    Сообщения:
    931
    Симпатии:
    0
    Баллы:
    26
    У меня в обработке есть макет. Можно ли как-нибудь сделать так чтобы можно было включать/отключать колонки?
  20. rshakiro
    Offline

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

    Регистрация:
    17 мар 2011
    Сообщения:
    2.236
    Симпатии:
    144
    Баллы:
    104
    Можно добавить еще один макет (без колонок), на форму добавить флажок(с типом БУЛЕВО), в зависимости от значения флажка, выводите нужный макет... Например:

    Код:
    Если ПодробныйОтчет = Истина Тогда
    Макет = ПолучитьМакет("Подробный");
    Иначе
    Макет = ПолучитьМакет("Простой");
    КонецЕсли;

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