1C Регистр

1. _7445_ 01.02.19 12:42 Сейчас в теме
Здравствуйте. Я очень плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. Создал новый регистр накопления под именам Закупки. Все нормально работает но в документе поступление не могу смотреть "Результат проведения документа". Выдают ошибку "{Обработка.КорректировкаДвижений.Форма.ОсновнаяФорма(108)}: Ошибка при установке значения атрибута контекста (Данные)
ПолеРегистра.Данные = ДокументОбъект.Ссылка;
по причине:
Неправильный путь к данным"

Как исправится с этим ?
Спасибо всем за ранее.
Вот кусок кода который есть ошибка:
Процедура ЗаполнитьСтраницу(Страница)
	
	//Перем Первый_элемент, Граница_первого_элемента, Второй_элемент, Граница_второго_элемента;
	
	СтрокаТаблицыРегистров = Регистры.Найти(Страница.Имя, "Имя");
	Если СтрокаТаблицыРегистров = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Если СтрокаТаблицыРегистров.Отображение И (НЕ СтрокаТаблицыРегистров.Отрисован) Тогда
		
		// Расположим на странице командную панель
		КоманднаяПанельРегистра = ЭлементыФормы.Добавить(Тип("КоманднаяПанель"), ("КоманднаяПанель" + СтрокаТаблицыРегистров.Имя), Истина, ЭлементыФормы.ОсновнаяПанель);
		КоманднаяПанельРегистра.Верх = 6;
		КоманднаяПанельРегистра.Лево = 6;
		КоманднаяПанельРегистра.Ширина = ЭлементыФормы.ОсновнаяПанель.Ширина - 12 - 2;
		КоманднаяПанельРегистра.Высота = 24;
		
		КоманднаяПанельРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Низ,КоманднаяПанельРегистра,ГраницаЭлементаУправления.Верх);
		КоманднаяПанельРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Право,ЭлементыФормы.ОсновнаяПанель,ГраницаЭлементаУправления.Право);
		
		// Расположим на странице табличное поле
		ПолеРегистра = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), СтрокаТаблицыРегистров.Имя, Истина, ЭлементыФормы.ОсновнаяПанель);
		
ВОТ ЗДЕСЬ		ПолеРегистра.Данные = СтрокаТаблицыРегистров.Имя;
		ПолеРегистра.Значение.Отбор.Регистратор.Значение = ДокументОбъект.Ссылка;
		ПолеРегистра.Значение.Отбор.Регистратор.Использование = Истина;
		
		ПолеРегистра.Видимость = ложь;
		ПолеРегистра.Верх = 30;
		ПолеРегистра.Лево = 6;
		ПолеРегистра.Высота = ЭлементыФормы.ОсновнаяПанель.Высота - 30 - 12 - 20;
		ПолеРегистра.Ширина = ЭлементыФормы.ОсновнаяПанель.Ширина - 12 - 2;
		ПолеРегистра.Видимость = истина;
	
		ПолеРегистра.ТолькоПросмотр = Ложь;
		ПолеРегистра.ИзменятьПорядокСтрок = Истина;
		ПолеРегистра.ИзменятьСоставСтрок = Истина;
		
		ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ЭлементыФормы.ОсновнаяПанель,ГраницаЭлементаУправления.Низ);
		ПолеРегистра.УстановитьПривязку(ГраницаЭлементаУправления.Право,ЭлементыФормы.ОсновнаяПанель,ГраницаЭлементаУправления.Право);
		
		ПолеРегистра.СоздатьКолонки();
		
		Если СтрокаТаблицыРегистров.ТипРегистра = "РегистрНакопления" Тогда
			Если Метаданные.РегистрыНакопления[СтрокаТаблицыРегистров.Имя].ВидРегистра = Метаданные.СвойстваОбъектов.ВидРегистраНакопления.Остатки Тогда
				КолонкаВидДвижения = ПолеРегистра.Колонки.Вставить(1, "Вид движения");
				КолонкаВидДвижения.Имя = "ВидДвиженияРегистраНакопления";
				КолонкаВидДвижения.УстановитьЭлементУправления(Тип("ПолеВвода"));
				КолонкаВидДвижения.Данные = "ВидДвижения";
				КолонкаВидДвижения.ЭлементУправления.КнопкаВыбора = Истина;
				КолонкаВидДвижения.ЭлементУправления.ВыбиратьТип = Ложь;
			КонецЕсли;
		КонецЕсли;
		
		ПолеРегистра.Колонки.Регистратор.Видимость = Ложь;
		
		Если СтрокаТаблицыРегистров.ТипРегистра = "РегистрСведений" Тогда
			Если НЕ Метаданные.РегистрыСведений[СтрокаТаблицыРегистров.Имя].ПериодичностьРегистраСведений = Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
				ПолеРегистра.Колонки.Период.Видимость      = Ложь;
			КонецЕсли;
		Иначе
			ПолеРегистра.Колонки.Период.Видимость      = Ложь;
		КонецЕсли;
		
		ПолеРегистра.Колонки.НомерСтроки.Видимость = Ложь;
		
		КоманднаяПанельРегистра.АвтоЗаполнение = Истина;
		КоманднаяПанельРегистра.Кнопки.Добавить("Разделитель" + СтрокаТаблицыРегистров.Имя);
		Кнопка = КоманднаяПанельРегистра.Кнопки.Добавить(СтрокаТаблицыРегистров.Имя, ТипКнопкиКоманднойПанели.Действие, , Новый Действие("ОткрытьСправкуРегистра"));
		Кнопка.Отображение = ОтображениеКнопкиКоманднойПанели.Картинка;
		Кнопка.Картинка    = БиблиотекаКартинок.Справка;
		Кнопка.Подсказка   = "Открыть справку";
		
		СтрокаТаблицыРегистров.Отрисован = Истина;
		
		Если КоличествоВидимыхСтраниц > 5 Тогда
			//Инициализируем изменение размера табличного поля по установленным привязкам
			ПолеРегистра.Высота = ПолеРегистра.Высота - 5;
		КонецЕсли;
	КонецЕсли;
		
	Если СтрокаТаблицыРегистров.Отображение И (НЕ СтрокаТаблицыРегистров.Прочитан) Тогда
		ЭлементыФормы[СтрокаТаблицыРегистров.Имя].Значение.Прочитать();
		СтрокаТаблицыРегистров.Прочитан = Истина;
	КонецЕсли;
	
	Если СтрокаТаблицыРегистров.Отображение И СтрокаТаблицыРегистров.Отрисован Тогда
		ЭлементыФормы[СтрокаТаблицыРегистров.Имя].ТолькоПросмотр = НЕ РучнаяКорректировка;
		ЭлементыФормы["КоманднаяПанель" + СтрокаТаблицыРегистров.Имя].ИсточникДействий = ЭлементыФормы[СтрокаТаблицыРегистров.Имя];
	КонецЕсли;
	
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
9. SedovSU@mail.ru 298 01.02.19 13:35 Сейчас в теме
Так у вас регистр накопления тогда пишите про регистр накопления

ПолеРегистра.Данные = СтрокаТаблицыРегистров.Имя;
ПолеРегистра.ТипЗначения = Новый ОписаниеТипов("РегистрНакопленияСписок." + СтрокаТаблицыРегистров.Имя);
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. SedovSU@mail.ru 298 01.02.19 13:08 Сейчас в теме
Могу предположить что сперва нужно установить тип значения а потом путь к данным

ПолеРегистра.ТипЗначения = ......;
ПолеРегистра.Данные = СтрокаТаблицыРегистров.Имя;
3. SedovSU@mail.ru 298 01.02.19 13:13 Сейчас в теме
Вернее будет установить нужно не тип а свойство "Значение"

ПолеРегистра.Значение = ......;
ПолеРегистра.Данные = СтрокаТаблицыРегистров.Имя;
4. _7445_ 01.02.19 13:17 Сейчас в теме
(3)
спасибо за вниманию.
Но с кодом как эта делать
Можете поможет
5. SedovSU@mail.ru 298 01.02.19 13:19 Сейчас в теме
(4) В данном поле Значение - нужно указать тип значения. Какой у вас тип? или он может быть любым и вы заранее не знаете?
6. SedovSU@mail.ru 298 01.02.19 13:22 Сейчас в теме
Попробуйте так написать

ПолеРегистра.Значение = Тип("РегистрСведенийСписок." + СтрокаТаблицыРегистров.Имя);
ПолеРегистра.Данные = СтрокаТаблицыРегистров.Имя;
7. _7445_ 01.02.19 13:25 Сейчас в теме
(6)
ПолеРегистра.Значение = Тип("РегистрСведенийСписок." + СтрокаТаблицыРегистров.Имя);
ПолеРегистра.Данные = СтрокаТаблицыРегистров.Имя;



Выдают ошибку
{Обработка.КорректировкаДвижений.Форма.ОсновнаяФорма(107)}: Тип не определен (РегистрСведенийСписок.Закупки)
ПолеРегистра.Значение = Тип("РегистрСведенийСписок." + СтрокаТаблицыРегистров.Имя);
8. SedovSU@mail.ru 298 01.02.19 13:34 Сейчас в теме
(7) Воттак напишите

	ПолеРегистра.Данные = СтрокаТаблицыРегистров.Имя;
ПолеРегистра.ТипЗначения = Новый ОписаниеТипов("РегистрСведенийСписок." + СтрокаТаблицыРегистров.Имя);


Не много не правильно вам указал - нужно указать тип значения все таки и все будет хорошо.
9. SedovSU@mail.ru 298 01.02.19 13:35 Сейчас в теме
Так у вас регистр накопления тогда пишите про регистр накопления

ПолеРегистра.Данные = СтрокаТаблицыРегистров.Имя;
ПолеРегистра.ТипЗначения = Новый ОписаниеТипов("РегистрНакопленияСписок." + СтрокаТаблицыРегистров.Имя);
10. SedovSU@mail.ru 298 01.02.19 13:36 Сейчас в теме
(9) Вот так точно должно работать
11. _7445_ 01.02.19 13:45 Сейчас в теме
(9)
ПолеРегистра.ТипЗначения = Новый ОписаниеТипов("РегистрНакопленияСписок." + СтрокаТаблицыРегистров.Имя);


Спасибо вам огромное
12. SedovSU@mail.ru 298 01.02.19 13:46 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот