Присвоить значение реквизиту неопределенный

Можно ли реквизиту неопределеного типа присвоить значение справочника?

Я
   mdx

22.09.10 — 15:50

Добрый день!

Ситуация такая:

в документе счетфактура обнаружил,что реквизит ТЧ товар — неопределенного типа, соответственно когда обработкой я реквизиту товар присваиваю результат поиска в  справочнике номенклатура товар = спр.текущийэлемент()(элемент точно найден) то в документе товар остается пустым. это лечится изменением типа с неопределенного на справочник номенклатура,НО боюсь чтоб ничего не поехало в результате такого преобразования, как быть?

  

Партнерская программа EFSOL Oblako

   chelentano

1 — 22.09.10 — 15:51

(0) программно, перед присвоением, тип назначай реквизиту

   mdx

2 — 22.09.10 — 15:52

тоесть приводить тип справочник.номенклатура к типу неопределенный? если да то ткните плз кодом

   chelentano

3 — 22.09.10 — 15:55

(2) нет. надо реквизиту неопределенного типа назначить сначала тип, потом присвоить значение. почитай в СП про НазначитьТип()

   mdx

4 — 22.09.10 — 15:55

спасибо прочтем

   mdx

5 — 22.09.10 — 15:59

назначить тип что-то не помогло

   vS

6 — 22.09.10 — 16:00

код покажи

   mdx

7 — 22.09.10 — 16:01

док.назначитьтип(«Товар»,»Справочник.Номенклатура»);
Спр.НайтиПоКоду(докосн.Номенклатура.Артикул, 0);
Док.Товар = Спр.ТекущийЭлемент();

   mdx

8 — 22.09.10 — 16:07

код кривой?

   vS

9 — 22.09.10 — 16:08

док это чо?

   vS

10 — 22.09.10 — 16:08

СП читал? :) или скурил?

   vS

11 — 22.09.10 — 16:10

сначала Вид, вообщето ;)

   mdx

12 — 22.09.10 — 16:12

док объекттипа счетфактура.
тоесть вид? в СП написано сначала реквизит потом тип

Синтаксис:
НазначитьТип(<ИмяРеквизита>,<ИмяТипа>,<Длина>,<Точность>)

   ado

13 — 22.09.10 — 16:16

(7) «Справочник.» убери.

   ado

14 — 22.09.10 — 16:17

(11) Вид скорее всего уже назначен.

   vS

15 — 22.09.10 — 16:17

(14) я ж не телепат, код у человека попросил :)

   ado

16 — 22.09.10 — 16:19

(13) Хотя нет, гоню.

   ado

17 — 22.09.10 — 16:22

Кажется, проблема здесь:

Спр.НайтиПоКоду(докосн.Номенклатура.Артикул, 0);
   mdx

18 — 22.09.10 — 16:23

2 адо находит.проверено. если менять тип Товара на номенклатуру то товар встает найденный нормально. в СП написано в примере «Справочник.Товары» видимо Справчник таки нужно,нет?

   ado

19 — 22.09.10 — 16:24

(17) Исправь на:

Спр.НайтиЭлемент(докосн.Номенклатура);

И, надеюсь, в докосн строки перебирать не забываешь?

   mdx

20 — 22.09.10 — 16:24

вотвроде простая какбе вещь,ан нет не заводится =( в обработине переноса осталось только этот вопрос рульнуть, а в конфе тип реквизита СФ менять таки стремно

   ado

21 — 22.09.10 — 16:26

(18) У тебя тип реквизита неопределено или справочник неопределенного вида?

   mdx

22 — 22.09.10 — 16:27

в Модуле СФ есть назначения типа, может слетает при проведении?? но с другой стороны там есть не одно назначение и они таки уживаются.
Тип реквизита Неопределенный

   ado

23 — 22.09.10 — 16:27

(20) В конфе тип реквизита менять не надо. Там может не только номенклатура храниться, но и, например, материалы.

   mdx

24 — 22.09.10 — 16:29

так и есть.материалы хранятся.

   mdx

25 — 22.09.10 — 16:29

как жить дальше? =(

   МихаилМ

26 — 22.09.10 — 16:30

(0)

смените профессию.

Вы 3 года задаете вопросы по 7.7

так и не разобрались в простом.

   mdx

27 — 22.09.10 — 16:30

уже не знаю как извернуться. врядли играет роль что это из обработки делается над выбранным доком…

   vS

28 — 22.09.10 — 16:31

(25) смотреть как в типовой сделано, до тебя же оно работало? :)

   Ёпрст

29 — 22.09.10 — 16:31

(0)
1.назначать тип нужно для каждой строки документа
2.Искать по коду/наименованию/сам элемент, не надо, он и так есть всегда ссылкой, как докосн.Номенклатура

   mdx

30 — 22.09.10 — 16:32

2 Епрст3 а вот это крайне конструктивно.сейчас опробую для строки

   mdx

31 — 22.09.10 — 16:35

всем спасибо. решено. Епрст3 Отдельное спасибо.

   palpetrovich

32 — 22.09.10 — 16:39

занавес :))

   vS

33 — 22.09.10 — 16:47

всего то 30 постов…. и ни разу не заглянуть в типовую….

   ado

34 — 22.09.10 — 16:48

(29) Думаешь, (7) было не в цикле по строкам?

(30) Упс … да, мне еще телепата прокачивать нужно.

Назначить тип для реквизита неопределенного типа.

Синтаксис

Метод НазначитьТип() имеет следующий синтаксис:

НазначитьТип(ИмяРеквизита, ИмяТипа, [Длина], [Точность])

А также альтернативный англоязычный синтаксис:

SetType(FieldName, TypeName, [Length], [Precision])

Параметры

Описание параметров метода НазначитьТип():

Имя параметра Тип Описание
ИмяРеквизита Строка наименование реквизита неопределенного типа, как он задан в конфигураторе.
ИмяТипа Строка имя типа, которое необходимо присвоить реквизиту. Например:
Строка,
Число,
Справочник.Товары,
Документ.ПриходнаяНакладная
Длина Число допустимая длина значения строкового или числового типа
Точность Число допустимая точность значения числового типа
Жирным шрифтом выделены обязательные параметры

Описание

Метод НазначитьТип() назначает тип для реквизита неопределенного типа. Только после этого реквизиту можно присвоить значение нужного типа (в противном случае, поле останется пустым)Реквизит неопределенного типа в 1с 7.7

Пример использования

Пример кода с использованием метода НазначитьТип():

Товар = СоздатьОбъект("Справочник.Товары");
//создаем новый элемент справочника
Товар.Новый();

//неправильно:
Товар.ДопЗначение = 1;
Сообщить(Товар.ДопЗначение);
//рузльтат:
// <>

//правильно:
Товар.НазначитьТип("ДопЗначение", "Число", 1);
Товар.ДопЗначение = 1;
Сообщить(Товар.ДопЗначение);
//Результат:
// 1

Поделиться страницей в соц.сетях

0

01.08.2012 — 18:27


Пытаюсь изучать 1С 8.2.
В моем документе ПКО есть реквизит КоррСчет (счет кредита проводки), при выборе которого нужно установить типы значения для реквизитов Субконто1, Субконто2, Субконто3 (аналитика КоррСчета, тип значения «Неопределенный» или как это в восьмерке называется). В семерке это делалось просто:

НазначитьТип(«Субконто1»,КоррСчет.ВидСубконто(1));

А как это сделать в восьмерке?

1

01.08.2012 — 18:59

хм.. я когда у меня давным давно возник такоцй вопрос в клюшках — позырил в документе «бухсправка» как там субконто назначаются — почему бы аналогичным макаром не посмотреть как это сделано в снеговике?

2

01.08.2012 — 19:22

1) Первым делом, так и попытался. Но фирма 1С в типовой бухгалтерии идет другим путем. Не дает такой свободы пользователям в формировании проводок в документах. Там шагг вправо, шаг влево — расстрел. Короче, не нашел я подобного простого примера. Те что нашел, для меня пока сильно сложные.
Вот например есть в док. ПриходныйКассовыйОрдер в модуле формы процедура СчетУчетаПриИзменении(). Она отправляет в глобальный модуль РаботаСДиалогами.ПриВыбореСчетаВТабличномПоле(). А там уже черт ногу сломит. Я так и не разобрался.
Может посоветуете какую нибудь простую конфигурацию, в которой можно было бы смотреть примеры кода?

3

01.08.2012 — 19:31

2-Birmingem >Для начала раздели понятия Реквизит и ЭлеметФормы. Затем посмотри в СП какие есть свойства и методы у твоего ЭлементаФормы. И задача очень легко решится.

4

01.08.2012 — 19:51

Самый простой способ:
Реквизит = Справочники.НужныйСправочник.ПустаяСсылка();

Если нужно ограничить типы при интерактивном заполнении реквизита, то так:
МассивТипов = Новый Массив;
МассивТипов.Добавить(Тип(«СправочникСсылка.Какойто Справочник»));
МассивТипов.Добавить(Тип(«ДокументСсылка.КакойтоДо кумент»));
ЭлементыФормы.ТвойРеквизит.ОграничениеТипа = Новый ОписаниеТипов (МассивТипов);

5

07.08.2012 — 15:01

Наваял такой код. Оцените пожалуйста. Что то сложновато получилось. Больше чем 3 строки на семерке :)
Наверняка можно улучшить, подскажите как?

Для к=1 По 3 Цикл
Если КоррСчет.ВидыСубконто.Количество()>=к Тогда
ТипСубк = КоррСчет.ВидыСубконто[к-1].ВидСубконто.ТипЗначения; ЭлементыФормы.Найти(«Субконто»+к).ВыбиратьТип = ложь;
Если ТипСубк.ПривестиЗначение(ЭлементыФормы.Найти(«Субк онто»+к).Значение<>ЭлементыФормы.Найти(«Субконто»+ к).Значение Тогда ЭлементыФормы.Найти(«Субконто»+к).Значение = ТипСубк.ПривестиЗначение(ЭлементыФормы.Найти(«Субк онто»+к).Значение);
КонецЕсли;
Иначе ЭлементыФормы.Найти(«Субконто»+к).Значение = «»;
КонецЕсли;
КонецЦикла;

6

07.08.2012 — 15:51

Для Каждого ВидСубконто Из СчетБ.ВидыСубконто Цикл

СтрТЧ=Субконто.Добавить();
СтрТЧ.ВидСубконто=ВидСубконто.ВидСубконто.ТипЗначе ния.ПривестиЗначение().Метаданные().Имя;
Если Найти(ВидСубконто.ВидСубконто.ТипЗначения,»Справоч ник»)>0 тогда
СтрТЧ.Значение=Справочники[ВидСубконто.ВидСубконто.ТипЗначения.ПривестиЗначен ие().Метаданные().Имя].ПустаяСсылка();
иначе
СтрТЧ.Значение=Перечисления[ВидСубконто.ВидСубконто.ТипЗначения.ПривестиЗначен ие().Метаданные().Имя].ПустаяСсылка();
КонецЕсли;
СтрТЧ.ТолькоЧтение=Истина;

КонецЦикла;

7

07.08.2012 — 17:36

2-Birmingem > «Не дает такой свободы пользователям в формировании проводок в документах» враки. Нажми на кнопку «Дт/Кт» под полными правами (или правами ГБ) и дивись на флаг «Ручная корректировка». Только особо бухгалтерам не распространяйся :)

8

07.08.2012 — 17:39

6-Zurab > субконто составных типов? не, не слышал…

9

07.08.2012 — 17:43

5-Birmingem >
Для к=1 По 3 Цикл
логичнее заменить на Для Каждого (или предварительно читать максимальное значение количества субконто из метаданных)
+ если тип значения субконто не составной — для поля ввода ВыбиратьТип = Ложь, в противном случае выбирать тип всё же уместно

10

07.08.2012 — 21:21

(8) :))

Содержание

  • 1 Как назначить конкретный тип элементу управления, который связан с реквизитом формы, имеющим составной тип?
  • 2 Какие существуют особенности работы с составными типами данных?
    • 2.1 1) Сторона элемента формы.
    • 2.2 2) Сторона источника данных.
    • 2.3 Добавление от ezh (особенности при работе с элементами в табличном поле):
  • 3 Как организовать выбор значений из списка, открывающегося под элементом формы?
  • 4 Как открыть форму элемента справочника?
  • 5 Как редактировать записи списка в диалоге и в списке и переключаться между этими способами?

Как назначить конкретный тип элементу управления, который связан с реквизитом формы, имеющим составной тип?

Источник: http://v8.1c.ru/predpriyatie/typical_problems_Form.htm#18

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

 ПолеВвода1 = Справочники.ФизическиеЛица.ПустаяСсылка();

Однако если в этом случае в поле ввода нажать кнопку очистки, снова будет предложен выбор типа значения из двух возможных типов. Избежать этого можно двумя способами:

Во-первых, можно запретить выбор типа в поле ввода (свойство ВыбиратьТип). В этом случае нажатие на кнопку очистки не будет приводить к сбросу типа в поле ввода.

Во-вторых, можно использовать свойство поля ввода ОграничениеТипа, задающее возможные типы данных, которые могут быть введены в поле ввода, и приводить значение соответствующего реквизита к нужному типу:

 Массив = Новый Массив();
 Массив.Добавить(Тип("СправочникСсылка.ФизическиеЛица"));
 НашеОписание = Новый ОписаниеТипов(Массив);

 ЭлементыФормы.ПолеВвода1.ОграничениеТипа = НашеОписание;
 ПолеВвода1 = НашеОписание.ПривестиЗначение(ПолеВвода1);

Какие существуют особенности работы с составными типами данных?

Источник: http://itland.ru/forum/index.php?showtopic=2577

Вопрос: Какие существуют особенности работы с составными типами данных?

Ответ

Этот вопрос имеет два стороны:

1) Сторона элемента формы.

Для элемента формы мы можем установить только ограничение на типы которые можно выбрать.

Т.е. с помощью кода:

 МассивТипов=Новый Массив();
 МассивТипов.Добавить(Тип("СправочникСсылка.Контрагенты"));
 ЭлементыФормы.ПолеВвода1.ОграничениеТипа=Новый ОписаниеТипов(МассивТипов);

Мы ограничиваем возможный типы только одним «СправочникСсылка.Контрагенты».

НО это не действует на значение которое хранится в источнике данных.

Поэтому если реквизит который связан с «ПолеВвода1» имеет «составной» тип, например Любая ссылка,
он будет неопределенного типа даже после «ЭлементыФормы.ПолеВвода1.ОграничениеТипа=Новый ОписаниеТипов(МассивТипов);»

2) Сторона источника данных.

Здесь ограничение на тип накладывается либо в конфигураторе, либо в момент создания этого элемента из языка.

Но если у реквизита установлен «составной» тип значение реквизита будет неопределенно до тех пор, пока ему не будет присвоено значение конкретного типа.

Присвоить конкретное значение можно либо из языка, либо выбрав это значение в форме.

Из выше описанного можно сделать вывод:

  • Если у реквизита установлен «Составной» тип данных, то даже при ограничении возможных типов у элемента формы до одного возможного, у пользователя будет запрошен тип который нужно будет присвоить реквизиту.
  • Если мы хотим оградить пользователя от лишних движений, т.е. выбора единственно возможного типа, нам нужно предварительно установить тип реквизита.

Сделать это можно следующим образом:

//"Значение1" это реквизит связанный с "ПолеВвода1".
Значение1 = ЭлементыФормы.ПолеВвода1.ОграничениеТипа.ПривестиЗначение(Значение1);

Добавление от ezh (особенности при работе с элементами в табличном поле):

1.

Вместо этого:

ЭлементыФормы.ПолеВвода1.ОграничениеТипа=Новый ОписаниеТипов(МассивТипов);

Пишем это:

ЭлементыФормы.ИмяТабличнойЧасти.Колонки.ИмяКолонки.ЭлементУправления.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов);

2.

Вместо этого:

Значение1 = ЭлементыФормы.ПолеВвода1.ОграничениеТипа.ПривестиЗначение(Значение1);

Пишем это:

ЭлементыФормы.ИмяТабличнойЧасти.ТекущаяСтрока.ИмяКолонки = ПривестиЗначение(ЭлементыФормы.ИмяТабличнойЧасти.ТекущаяСтрока.ИмяКолонки);

// можно так, а можно как в примере ниже...

Вот работающий пример:

 МассивТипов = Новый Массив();
 МассивТипов.Добавить(Тип("ПеречислениеСсылка."+Элемент.Значение));
 ОписаниеТипов = Новый ОписаниеТипов(МассивТипов);
 
 ЭлементыФормы.ТабличнаяЧасть1.Колонки.ЗначениеПеречисления.ЭлементУправления.ОграничениеТипа = ОписаниеТипов;
 // ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока.ЗначениеПеречисления = ОписаниеТипов.ПривестиЗначение(ЭлементыФормы.ТабличнаяЧасть1.ТекущаяСтрока.ЗначениеПеречисления);
 ЭлементыФормы.ТабличнаяЧасть1.Колонки.ЗначениеПеречисления.ЭлементУправления.Значение = ОписаниеТипов.ПривестиЗначение(ЭлементыФормы.ТабличнаяЧасть1.Колонки.ЗначениеПеречисления.ЭлементУправления.Значение);

Как организовать выбор значений из списка, открывающегося под элементом формы?

Источник: http://v8.1c.ru/predpriyatie/typical_problems_Form.htm#19

Для этого следует использовать методы формы ВыбратьИзСписка() или ВыбратьИзМеню().

Метод ВыбратьИзСписка() позволяет открыть выпадающий список для интерактивного выбора одного из элементов, причем список будет расположен около переданного элемента формы или около активной области формы (если элемент формы не передан).

Например, следующий код позволяет открыть выпадающий список под полем ввода «ПолеВводаКонтрагент» для выбора одного из контрагентов:

СписокВыбора = Новый СписокЗначений; 

СписокВыбора.Добавить(Справочники.Контрагенты.НайтиПоКоду("Ю0039")); 
СписокВыбора.Добавить(Справочники.Контрагенты.НайтиПоКоду("Ю0040")); 

ВыбранноеЗначение = ВыбратьИзСписка(СписокВыбора, ЭлементыФормы.ПолеВводаКонтрагент); 

Если ВыбранноеЗначение <> Неопределено Тогда 
	ПолеВводаКонтрагент = ВыбранноеЗначение.Значение; 
КонецЕсли;

Метод ВыбратьИзМеню() работает аналогично методу ВыбратьИзСписка() за исключением того, что для выбора открывается не выпадающий список, а меню.

Например, следующий код позволяет открыть меню для интерактивного выбора одного из действий, которые необходимо выполнить для контрагента, выбранного в поле ввода «ПолеВводаКонтрагент»:

СписокВыбора = Новый СписокЗначений; 

СписокВыбора.Добавить("Загрузка", "Загрузить информацию"); 
СписокВыбора.Добавить("Выгрузка", "Выгрузить данные"); 

ВыбранноеЗначение = ВыбратьИзМеню(СписокВыбора, ЭлементыФормы.ПолеВводаКонтрагент); 

Если ВыбранноеЗначение.Значение = "Загрузка" Тогда 
	ЗагрузитьИнформациюКонтрагента(ПолеВводаКонтрагент); 

ИначеЕсли ВыбранноеЗначение.Значение = "Выгрузка" Тогда 
	ВыгрузитьДанныеКонтрагента(ПолеВводаКонтрагент); 
КонецЕсли;

Как открыть форму элемента справочника?

ссЭлемент = ...
форма = ссЭлемент.ПолучитьФорму();
форма.Открыть();

Как редактировать записи списка в диалоге и в списке и переключаться между этими способами?

Оказывается, надо

  • в свойствах (alt-enter) объекта метаданных установить «Способ редактирования»=»Обоими способами»
  • после этого в в свойствах табличного поля списка появляется флаг «Использование/ИзменятьСпособРедактирования» и выбор «Способ редактирования = В списке/В диалоге»
  • в свойствах табличного поля списка установить появившийся флаг «Использование/ИзменятьСпособРедактирования»
  • после этого появляется команда «Редактировать в диалоге» и ее можно вставить в командную панель
  • если включено автозаполнение командной панели, эта кнопка появится автоматически

большое спасибо!!! но… :dfbsdfbsdf: ((

документы и реквизиты я вытаскиваю немного другим способом. но это думаю, нетак важно.
почему-то никак не работает функция типа

»  Результат = Реквизит.Тип;  » или » ПривестиЗначение «. каждый раз «значение не является значением объектного типа»…

вот я примерно так пытаюсь сделать:

//строю таблицу значений куда помещаю все виды документов и список значений куда помещаю все реквизиты…
Процедура ОпределитьСписокОбъектовЗаполнения()
   ТаблицаОбъектовДляЗаполнения = Новый ТаблицаЗначений;
   ТаблицаОбъектовДляЗаполнения.Колонки.Добавить(«ОбъектЗаполнения»);
   ТаблицаОбъектовДляЗаполнения.Колонки.Добавить(«ИмяОбъектаЗаполнения»);
   ТаблицаОбъектовДляЗаполнения.Колонки.Добавить(«ПредставлениеОбъектаЗаполнения»);
   ТаблицаОбъектовДляЗаполнения.Колонки.Добавить(«СписокРеквизитов»);

      СписокОбъектовДляЗаполнения = Новый СписокЗначений;
      Для каждого ТекДокумент Из Метаданные.Документы Цикл

            Если ТекДокумент.Реквизиты.Количество() = 0 Тогда
         Продолжить;
      КонецЕсли;
      НоваяСтрока = ТаблицаОбъектовДляЗаполнения.Добавить();
      НоваяСтрока.ОбъектЗаполнения             = Документы[ТекДокумент.Имя].ПустаяСсылка();
      НоваяСтрока.ИмяОбъектаЗаполнения          = ТекДокумент.Имя;
      НоваяСтрока.ПредставлениеОбъектаЗаполнения    = ТекДокумент.Синоним;

            СписокРеквизитов = Новый СписокЗначений;
      Для каждого ТекРеквизит Из ТекДокумент.Реквизиты
         Цикл
         СписокРеквизитов.Добавить(ТекРеквизит.Имя, ТекРеквизит.Синоним);
      КонецЦикла;
      НоваяСтрока.СписокРеквизитов = СписокРеквизитов;
      СписокОбъектовДляЗаполнения.Добавить(ТекДокумент.Имя, ТекДокумент.Синоним);
   КонецЦикла;
КонецПроцедуры

Процедура ПриОткрытии()
    ОпределитьСписокОбъектовЗаполнения();
КонецПроцедуры

Процедура ФормируемыеДокументыПредставлениеОбъектаНачалоВыбора(Элемент, СтандартнаяОбработка)
   ТекДанные = ЭлементыФормы.ФормируемыеДокументы.ТекущиеДанные;
   СтрокаТаблицы = ТаблицаОбъектовДляЗаполнения.Найти(ТекДанные.СсылкаОбъекта, «ОбъектЗаполнения»);
   Если НЕ СтрокаТаблицы = Неопределено Тогда
      ТекИмяОбъекта = СтрокаТаблицы.ИмяОбъектаЗаполнения;
   Иначе
      ТекИмяОбъекта = «»;
   КонецЕсли;

      ВыбЭлемент = СписокОбъектовДляЗаполнения.НайтиПоЗначению(ТекИмяОбъекта);
   ВыбранноеЗначение = СписокОбъектовДляЗаполнения.ВыбратьЭлемент(«Выберите вид документа», ВыбЭлемент);
   Если ВыбранноеЗначение = Неопределено Тогда
      Возврат;
   КонецЕсли;
   Элемент.Значение = ВыбранноеЗначение;
   ТекДанные.СсылкаОбъекта = Документы[ВыбранноеЗначение.Значение].ПустаяСсылка();
   СтрокаТаблицы = ТаблицаОбъектовДляЗаполнения.Найти(ТекДанные.СсылкаОбъекта, «ОбъектЗаполнения»);
      Если СтрокаТаблицы = Неопределено Тогда
      ТекДанные.РеквизитИмя = «»;
      ТекДанные.РеквизитПредставление = «»;
      Возврат;
   КонецЕсли;     
   СтрокаТаблицы = ТаблицаОбъектовДляЗаполнения.Найти(ТекДанные.СсылкаОбъекта, «ОбъектЗаполнения»);
   СписокРеквизитов = СтрокаТаблицы.СписокРеквизитов;
   ТекРеквизит = СписокРеквизитов.НайтиПоЗначению(ТекДанные.РеквизитИмя);
   Если ТекРеквизит = Неопределено Тогда
      ТекДанные.РеквизитИмя = «»;
      ТекДанные.РеквизитПредставление = «»;
   Иначе
      ТекДанные.РеквизитИмя = ТекРеквизит.Значение;
      ТекДанные.РеквизитПредставление = ТекРеквизит;
   КонецЕсли;
КонецПроцедуры

Процедура СодержаниеДокументовРеквизитПредставлениеНачалоВыбора(Элемент, СтандартнаяОбработка)
   ТекСтрока = ЭлементыФормы.ФормируемыеДокументы.ТекущиеДанные;
   СтрокаТаблицы = ТаблицаОбъектовДляЗаполнения.Найти(ТекСтрока.СсылкаОбъекта, «ОбъектЗаполнения»);
   Если НЕ СтрокаТаблицы = Неопределено Тогда
      РезультатВыбора = ВыбратьИзСписка(СтрокаТаблицы.СписокРеквизитов, Элемент);
      Если РезультатВыбора <> Неопределено Тогда
         Элемент.Значение = РезультатВыбора;
         ЗначениеРеквизита = РезультатВыбора.Значение;
      КонецЕсли;
   КонецЕсли;

//вот тут конечно ошибка!


//ТипРезультата = РезультатВыбора.Тип;
//ТекущиеДанные.ЗначениеРеквизита = ПолучитьТипРеквизита(ЭлементыФормы.ФормируемыеДокументы.ТекущиеДанные.ПредставлениеОбъекта,ТекущиеДанные.РеквизитПредставление).ПривестиЗначение(ТекущиеДанные.ЗначениеРеквизита);

        КонецПроцедуры

Процедура СодержаниеДокументовПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
   ТС = ЭлементыФормы.ФормируемыеДокументы.ТекущаяСтрока;
   ПредставлениеОбъекта=ТС.ПредставлениеОбъекта;
   Элемент.ТекущаяСтрока.ПредставлениеОбъекта = ПредставлениеОбъекта;
КонецПроцедуры

Процедура ПанельПриСменеСтраницы(Элемент, ТекущаяСтраница)
   Если ЭлементыФормы.Панель.ТекущаяСтраница = ЭлементыФормы.Панель.Страницы.СодержаниеДокументов  Тогда
      ТекДанные = ЭлементыФормы.ФормируемыеДокументы.ТекущаяСтрока;
      Если НЕ ТекДанные = Неопределено Тогда
            ПредставлениеОбъекта = ТекДанные.ПредставлениеОбъекта;
            СсылкаОбъекта = ТекДанные.СсылкаОбъекта;

            ЭлементОтбор = ЭлементыФормы.СодержаниеДокументов.ОтборСтрок;
            Отбор = ЭлементОтбор.ПредставлениеОбъекта;
            Отбор.ВидСравнения  =  ВидСравнения.Равно;
            Отбор.Значение      =  ПредставлениеОбъекта;
            Отбор.Использование = Истина;   
         КонецЕсли;
      КонецЕсли;
КонецПроцедуры

Р.S. прошу прощения, что так некрасиво. не нашла, как вставить листинг кода как в конфигураторе(

Понравилась статья? Поделить с друзьями:
  • Программно добавить реквизит в обработку 1с
  • Приставы зао на мосфильмовской время работы
  • Программно заполнить реквизиты обработки 1с
  • Приставы петродворцового района часы работы
  • Приставы серебристый бульвар 9 время работы