Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/313: Рейтинг темы: голосов - 313, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 18
1
1C 8.x (тонкий)

Ошибка при указании ПутьКДанным в программно созданной таблице

10.08.2016, 13:34. Показов 62273. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Переделываю форму документа КорректировкаЗаписейРегистров под управляемое приложение. Если вручную из реквизитов на форму документа перетащить нужное движение по регистру никаких проблем не возникает: создается таблица, добавляются колонки. Для таблицы регистра бухгалтерии Хозрасчетный свойство ПутьКДанным заполняется значением "Объект.Движения.Хозрасчетный". Но если я программно создаю таблицу и пытаюсь присвоить этому свойству это же значение,
1C
1
2
НоваяТЧ = Элементы.Добавить("Таблица"+СтрокаТаблицыРегистров.Имя,Тип("ТаблицаФормы"), НоваяСтраница); //НоваяСтраница - элем. формы на котором создаю таблицу
НоваяТЧ.ПутьКДанным = "Объект.Движения.Хозрасчетный";
то выскакивает "ошибка при установке значения атрибута контекста (ПутьКДанным)" по причине Недопустимое значение. Из-за чего тут ошибка?

Пробовал привязывать к созданной таблице табличную часть документа ТаблицаРегистровНакопления - свойству ПутьКДанным присвоил значение "Объект.ТаблицаРегистровНакопления", потом программно же создал колонки таблице, указал ПутьКДанным для них и все отработало без нареканий.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.08.2016, 13:34
Ответы с готовыми решениями:

Вывод картинок в программно созданной таблице
Есть форма документа. В зависимости от выбранных регистров на форме программно создаются вкладки, а...

Ошибка при создании поля таблицы и указании расположения поля в таблице
Пытаюсь создать поле с указанием его расположения в таблице. Пока безрезультатно ALTER TABLE AAA...

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

Переключать ПутьКДанным программно
Добрый день. Не пойму как реализовать динамическое отображение табличной части ТаблицыЗначений....

7
Модератор
Эксперт 1С
3786 / 2965 / 590
Регистрация: 10.03.2011
Сообщений: 11,671
Записей в блоге: 1
11.08.2016, 01:57 2
По моему Движения это свойство типа ДокументОбъект и оно не конвертируется на клиента

Добавлено через 13 минут
И программно получить доступ на форме к свойству движения не получиться ибо они ни где не хранятся.

Добавлено через 1 минуту
Нужно создавать свой НаборЗаписей (реквизит формы) устанавливать отбор и к нему привязывать ТаблицуФормы

Добавлено через 58 секунд
Примерчик
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
&НаСервере
Процедура СоздатьРеквизитыФормыНаборовЗаписейРегистров()
 
    ДобавляемыеРеквизиты = Новый Массив;
    УдаляемыеРеквизиты   = Новый Массив;
    
    Для каждого СтрокаРегистра Из СписокРегистров Цикл
        
        ИмяРеквизита = СтрокаРегистра.ИмяРегистра + "НаборЗаписей";
        ТипРеквизита  = Новый ОписаниеТипов(СтрокаРегистра.ВидРегистра + "НаборЗаписей." + СтрокаРегистра.ИмяРегистра);
        НовыйРеквизит = Новый РеквизитФормы(ИмяРеквизита, ТипРеквизита, , , Истина);
        ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
        
    КонецЦикла;
    
    Если ДобавляемыеРеквизиты.Количество() > 0 Тогда
        ИзменитьРеквизиты(ДобавляемыеРеквизиты, УдаляемыеРеквизиты);
    КонецЕсли;
 
КонецПроцедуры
 
&НаСервере
Процедура АктивироватьНаборыЗаписей()
    Для Каждого СтрокаРегистра Из СписокРегистров Цикл 
        ИмяРеквизита = СтрокаРегистра.ИмяРегистра + "НаборЗаписей";
        НаборЗаписей = РеквизитФормыВЗначение(ИмяРеквизита);
        НаборЗаписей.Отбор.Регистратор.Установить(Документ);
        НаборЗаписей.Прочитать();
        ЗначениеВРеквизитФормы(НаборЗаписей, ИмяРеквизита);
    КонецЦикла;
КонецПроцедуры
0
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 18
11.08.2016, 10:56  [ТС] 3
Цитата Сообщение от Dethmontt Посмотреть сообщение
Движения это свойство типа ДокументОбъект и оно не конвертируется на клиента
Это так, но я же не с этим свойством связываю таблицу. Тип свойства Движения - КоллекцияДвижений. Содержит эта коллекция наборы записей регистров. С одним из таких наборов я и пытаюсь связать таблицу, ведь наборы вполне себе конвертируются на клиенте.

Добавлено через 7 минут
Цитата Сообщение от Dethmontt Посмотреть сообщение
Нужно создавать свой НаборЗаписей (реквизит формы) устанавливать отбор и к нему привязывать ТаблицуФормы
Как вариант я тоже думал так сделать, но хотелось бы как-то напрямую к данным, чтобы потом не заморачиваться с обработкой добавления/удаления/изменения записей. В обычном приложении именно напрямую к данным и идет привязка, вот и в управляемом надеялся сделать также.

Добавлено через 19 минут
Цитата Сообщение от Dethmontt Посмотреть сообщение
И программно получить доступ на форме к свойству движения не получиться ибо они ни где не хранятся.
Вот тут я может и не до конца понял вашу мысль, но движения по конкретной номенклатуре хранятся в документе, форму которого я и пытаюсь открыть.
0
Модератор
Эксперт 1С
3786 / 2965 / 590
Регистрация: 10.03.2011
Сообщений: 11,671
Записей в блоге: 1
11.08.2016, 11:01 4
Gectar, форма и документ это разные сущности!

Добавлено через 2 минуты
Как появляется реквизит ОБЪЕКТ в форме документа

1. На сервере происходит чтение из БД документа (ДокументОбъект)
2. Свойства ДокументОбъект,а копируются в реквизит Объект формы
3. ДокументОбъект уничтожается

Добавлено через 49 секунд
Цитата Сообщение от Gectar Посмотреть сообщение
Как вариант я тоже думал так сделать, но хотелось бы как-то напрямую к данным, чтобы потом не заморачиваться с обработкой добавления/удаления/изменения записей.
Придется именно так и сохранение тоже придется делать самому
1
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 18
11.08.2016, 11:11  [ТС] 5
Я может сейчас и ступлю с этим вопросом, но почему же тогда все работает при ручном перетаскивании того же самого набора записей регистра из движений на форму - таблица создается, колонки добавляются, ПутьКДанным прописывается, работет все чин чинарем и не нужно никаких промежуточных реквизитов?
0
Модератор
Эксперт 1С
3786 / 2965 / 590
Регистрация: 10.03.2011
Сообщений: 11,671
Записей в блоге: 1
11.08.2016, 11:25 6
Цитата Сообщение от Gectar Посмотреть сообщение
работет все чин чинарем и не нужно никаких промежуточных реквизитов?
потому что платформа все делает за НАС многе оскрывая от наших глазок =)))
0
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 18
25.08.2016, 17:38  [ТС] 7
Оказалось такие сложности совершенно ни к чему, как в общем-то с самого начала и думал. Нужно было просто в настройках реквизитов поставить галочку "Использовать всегда"
Миниатюры
Ошибка при указании ПутьКДанным в программно созданной таблице  
0
0 / 0 / 0
Регистрация: 10.08.2016
Сообщений: 18
25.08.2016, 17:40  [ТС] 8
Тогда приведенный в самом начале код работает без проблем.
0
25.08.2016, 17:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.08.2016, 17:40
Помогаю со студенческими работами здесь

Выполнить функцию при нажатии программно созданной кнопки
Здрям! Из двух файлов считываю значения в лэйблы и в названия кнопок. Как теперь при нажатии на...

Ошибка при указании свойства
Помогите разобраться с переменной $this в классе а именно почему если в методе указать свойство то...

Ошибка при указании конкретного значения
Задача заключается в том, чтобы для всего, что обозначено булевым, как "Услуга" при попытке задать...

Ошибка при указании точности для спецификатора %f в scanf
Почему указание точности для спецификации преобразования %f (к примеру %.2f) в строке управления...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru