Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
25 Июл 2017, 01:32
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Как обратиться к перечислению 1с 8.2 управляемая с модуля менеджера документа  (Прочитано 1108 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн magbz

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-25
  • Сайт: 
Имеется общий модуль ОбщегоПРНазначения с
Функция ПолучитьИмяЗначенияПеречисления(Ссылка) Экспорт
        Если Ссылка.Пустая() Тогда
            Возврат "";
        КонецЕсли;
//получаем как названо перечисление в конфигураторе   
ИмяПеречисления = Ссылка.Метаданные().Имя;
//теперь получим индекс где хранится то что нам надо
Индекс = Перечисления[ИмяПеречисления].Индекс(Ссылка);
//и вот счастье. возвращаем то что нам надо - идентификатор!!!
Возврат Метаданные.Перечисления[ИмяПеречисления].ЗначенияПеречисления[Индекс].Имя;

КонецФункции // ПолучитьИмяЗначенияПеречисления()

имеется джокумент Поступление
в форме документа функция работает

&НаКлиенте
Процедура ПриОткрытии(Отказ)
      Если Объект.Организация.Пустая()Тогда
      Объект.Организация = ОбщегоПРНазначения.НайтиОрганизациюПОКодуИНаименованию("00-000001","")
          КонецЕсли;

         ВидОперации =  ОбщегоПРНазначения.ПолучитьИмяЗначенияПеречисления(Объект.ВидОперации);
   Если ВидОперации = "ПоступлениеОтФизЛиц" Тогда
      Заголовок = "Поступление от жильцов";
      Элементы.ОтловЖивотного.Видимость = Ложь;
      Элементы.Контрагент.Заголовок = "Житель";
      Элементы.Заявка.Видимость = Ложь;
      ОчиститьГруппуОтловЖивотного();

             ИначеЕсли ВидОперации = "ВозвратОтВладельца" Тогда
            Заголовок = "Возврат животного";
           Элементы.ОтловЖивотного.Видимость = Ложь;
            Элементы.Контрагент.Заголовок = "Бывший владелец";
            Элементы.Заявка.Видимость = Истина;
            ОчиститьГруппуОтловЖивотного();

            ИначеЕсли ВидОперации = "ОтказХозяевов" Тогда
            Заголовок = "Отказ хозяина";
           Элементы.ОтловЖивотного.Видимость = Ложь;
            Элементы.Контрагент.Заголовок = "Хозяин";
            Элементы.Заявка.Видимость = Ложь;
            ОчиститьГруппуОтловЖивотного();


   Иначе
      Заголовок = "Поступление от подрядчика";
        Элементы.ОтловЖивотного.Видимость = Истина;
      Элементы.Заявка.Видимость = Истина;
      Элементы.Контрагент.Заголовок = "Подрядчик";
   КонецЕсли;
   
   КонецПроцедуры

а модуле менеджера эта функция не работает

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

   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(Выборка.Организация, Выборка.Дата, ,);   
   
   ВидОперации =  ОбщегоПРНазначения.ПолучитьИмяЗначенияПеречисления(ВидОперации);
   
   Если ВидОперации = "ПоступлениеОтФизЛиц" Тогда
         Заголовок = "Поступление от жильцов";
         ИначеЕсли ВидОперации = "ВозвратОтВладельца" Тогда
                Заголовок =    "Возрат животного с приюта";
                 ИначеЕсли ВидОперации = "ОтказХозяевов" Тогда
                        Заголовок = "Поступление от хозяевов";
                         Иначе
                        Заголовок = "Поступление от подрядчика";
   КонецЕсли;

   ОбластьЗаголовок.Параметры.ТекстЗаголовка =
            Заголовок
           + Выборка.Номер
           + " от "
           + Формат(Выборка.Дата, "ДФ=""dd MMMM yyyy""");

   ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
   ОбластьПитомцыШапка = Макет.ПолучитьОбласть("ПитомцыШапка");
   ОбластьПитомцы = Макет.ПолучитьОбласть("Питомцы");
   Подвал = Макет.ПолучитьОбласть("Подвал");

   ТабДок.Очистить();

   ВставлятьРазделительСтраниц = Ложь;
   Пока Выборка.Следующий() Цикл
      Если ВставлятьРазделительСтраниц Тогда
         ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
      КонецЕсли;

      ТабДок.Вывести(ОбластьЗаголовок);

      ОбластьШапка.Параметры.Заполнить(Выборка);
      ТабДок.Вывести(ОбластьШапка, Выборка.Уровень());

      ТабДок.Вывести(ОбластьПитомцыШапка);
      ВыборкаПитомцы = Выборка.Питомцы.Выбрать();
      Пока ВыборкаПитомцы.Следующий() Цикл
         ОбластьПитомцы.Параметры.Заполнить(ВыборкаПитомцы);
         ТабДок.Вывести(ОбластьПитомцы, ВыборкаПитомцы.Уровень());
      КонецЦикла;

      Подвал.Параметры.Заполнить(Выборка);
      ТабДок.Вывести(Подвал);

      ВставлятьРазделительСтраниц = Истина;
   КонецЦикла;
   //}}
КонецПроцедуры

выдает ошибку
{ОбщийМодуль.ОбщегоПРНазначения.Модуль(11)}: Значение не является значением объектного типа (Пустая)
     Если Ссылка.Пустая() Тогда


Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн magbz

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-25
  • Сайт: 
В функции в общем модуле тип пустой, а менеджера тип массив

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн magbz

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-25
  • Сайт: 
Функция в общем модуле она рабочая потому что работает в модуле формы документа...я так думаю проблема в получении ссылки на перечисление в модуле менеджера
Добавлено: 25 Фев 2016, 14:10

В модуле формы документа
Объект.ВидОперации Тип ПеречислениеСсылка.ВидыОперацииПоступленияЖ
а в модуле менеджера
ВидОперации Тип
Добавлено: 25 Фев 2016, 14:13

Пробовал та изменить запрос
Запрос = Новый Запрос;
   Запрос.Текст =
   "ВЫБРАТЬ
   |   Поступление.АдресМестаОтлова,
   |   Поступление.ВидОперации,
   |   Поступление.Ветеринар,
   |   Поступление.Водитель,
   |   Поступление.Дата,
   |   Поступление.Договор,
   |   Поступление.Заявка,
   |   Поступление.Кинолог,
   |   Поступление.Комментарий,
   |   Поступление.Контрагент,
   |   Поступление.Машина,
   |   Поступление.Номер,
   |   Поступление.Организация,
   |   Поступление.Ответственный,
   |   Поступление.ПричинаОтлова,
   |   Поступление.Питомцы.(
   |      НомерСтроки,
   |      Наименование
   |   ),
   |   ВидыОперацийПоступленияЖ.Ссылка
   |ИЗ
   |   Документ.Поступление КАК Поступление
   |      ЛЕВОЕ СОЕДИНЕНИЕ Перечисление.ВидыОперацийПоступленияЖ КАК ВидыОперацийПоступленияЖ
   |      ПО Поступление.ВидОперации = ВидыОперацийПоступленияЖ.Ссылка
   |ГДЕ
   |   Поступление.Ссылка В(&Ссылка)";
   Запрос.Параметры.Вставить("Ссылка", Ссылка);
   Выборка = Запрос.Выполнить().Выбрать();

Последний раз редактировалось: magbz; 25 Фев 2016, 14:13. Причина: Объединение сообщений

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
перечисление тут не причем
{ОбщийМодуль.ОбщегоПРНазначения.Модуль(11)}: Значение не является значением объектного типа (Пустая)
     Если Ссылка.Пустая() Тогда

что должно быть в ссылке? ссылка на документ?
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн magbz

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-25
  • Сайт: 
Я же пытаюсь по виду перечисления изменить заголовок печатной формы....в функцию на общий модуль должна идти ссылка на перечисление
Добавлено: 25 Фев 2016, 14:43

почему то запрос не срабатывает!? в отладчике пишет Выборка значение ошибка чтения значения

Последний раз редактировалось: magbz; 25 Фев 2016, 14:43. Причина: Объединение сообщений

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
выборка это выборка, его обход совершается
Пока Выборка.Следующий() Цикл
    АдресМестаОтлова = Выборка.АдресМестаОтлова;
КонецЦикла;

если хотите сразу все видеть, то запрос.выполнить().выгрузить();
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)


 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4193
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 14675
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 3769
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 298
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7232
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

alex0402
91 Сообщений
oleg-x
83 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
67 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
44 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений
wise wise
21 Сообщений
xproh
21 Сообщений

* Кто онлайн

  • Точка Гостей: 137
  • Точка Скрытых: 0
  • Точка Пользователей: 8
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal