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

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

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

Оффлайн magbz

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>


Оффлайн Rasty

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

Оффлайн magbz

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

Оффлайн Rasty

  • *****
  • Сообщений: 963
  • РЕПУТАЦИЯ: 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

  • *****
  • Сообщений: 963
  • РЕПУТАЦИЯ: 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

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

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


 

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

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

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

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

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

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

Ответов: 3
Просмотров: 3337
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Добавление сведений в графу "основание" документа "ТОРГ-12"

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

Ответов: 4
Просмотров: 6778
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984
"Не совпадают сумма документа и общая сумма по платежным ведомостям"

Автор yunovoРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 3792
Последний ответ 11 Янв 2015, 02:55
от MuI_I_Ika

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
alex0402
114 Сообщений
Norfolk
51 Сообщений
LexaK
45 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
друган
21 Сообщений
AsadRoman
20 Сообщений
alexandr_ll
20 Сообщений
Константин5825
18 Сообщений
MrLvovsky MrLvovsky
16 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal